第三章、 研究方法
3.2 研究架構
3.2.1 資料蒐集
本研究欲針對Instagram 店家的評論進行情緒分析計算,根據 MENU 美食誌的排名計算方式(如表 2),選出十種近兩年的 Top10 餐 飲排行榜(圖 8 & 附錄一),包括義大利麵、牛肉麵、滷肉飯、咖哩料 理、港式餐廳、韓式炸雞、韓式料理、牛排、鐵板燒、冰品,作為本 研究的店家評論分析資料來源。
圖 8. MENU 美食誌牛肉麵排行榜前三名範例(2019)
排名標準 於某一時間區段蒐集MENU 美食誌 App 內的用戶打卡 數,打卡數愈多的店家,排名愈前面,以此標準排出第一 名至第十名的商家。依照不同餐飲主題,平均獲得的打卡 數有所不同。
表 2. MENU 美食誌的排行計算方式(2019,2020)
3.2.1.2 Instagram 評論者資訊擷取
在Instagram 社群中可分為一般帳戶以及商業帳戶,一般帳戶可於 自己的個人資訊頁面(如圖 9)中查看總共發布過幾篇貼文、有幾位追蹤
者(粉絲數)、正在追蹤其他帳戶的追蹤中數量、個人自我簡介、精選 動態(將影片匯集成一個短影片)以及曾經發布過的貼文資訊或是被別 人標記的貼文資訊,至於商業帳戶則是需要另外申請將一般帳戶轉換 為商業帳戶,相較一般帳戶新增查看洞察報告的功能,一般帳戶的貼 文僅可看見多少人按讚過此則貼文(若為影片則為觀看數量)、貼文內 文、留言內文、留言數量(如圖 10),商業帳戶的洞察報告則可以觀察 到每篇貼文的按讚數、留言數、分享數、多少人收藏這則貼文的收藏 數、多少人因為觀看這則貼文而點進個人資訊頁面查看的商業檔案瀏 覽次數、多少不重複的Instagram 用戶看見此則貼文的觸及人數(如圖 11),然而因為商業帳戶的數據僅限發文者本人觀看,因此無法作為本 研究的資料分析來源。
圖 9. Instagram 個人資訊頁面(Caitlin,2019)
圖 10. 貼文資訊(Caitlin,2019)
圖 11. 貼文洞察報告(Caitlin,2019)
因此本研究依據網路爬蟲套件selenium 以及瀏覽器擴充套件 webscraper 爬取評論者貼文內容,以及評論者個人資訊(表 3.),利用這 些數值作為ad hoc 模型之餐飲評分機制的權重以及機器學習分類法的 特徵值。
評論者個人資訊 貼文資訊
1 Account Instagram 帳號 1 Contents 內文 2 Posts 貼文數 2 Likes 按讚數 3 Followers 粉絲數
4 Following 追蹤中數量
表 3. 本研究擷取評論者與貼文資訊
3.2.2 Ad hoc 模型與機器學習分類演算法
本研究提出的餐飲評分機制,分為ad hoc 模型與機器學習分類演算 法。在文獻探討中提及社群影響力結合情緒分數對於排名預測存在一定程 度上之關係,因此本研究嘗試先以現有情緒辭典antusd 辭典(Shih-Ming, 2016)、emoji 辭典(Kralj Novak 等人, 2015),透過影響力權重調整情緒分析 後的評分計算排名,測試排名結果是否擬合menu 美食誌排名,再以 ad hoc 模型結合現有情緒辭典antusd 辭典(Shih-Ming, 2016)、emoji 辭典(Kralj Novak 等人, 2015)以及本研究人工標記情緒詞彙,設計排名計算公式後測 試排名結果。機器學習分類演算法則是以同為Instagram 資料的評論者個人 資料與貼文資訊作為特徵值,預測餐廳排名。因此此小節將先在3.2.2.1 討 論影響力權重制定方式、3.2.2.2 說明情緒分析方法如何將用戶評論轉為用 戶評分、3.2.2.3 說明 ad hoc 方式的排名計算過程,接著在 3.2.2.4 敘述機器 學習分類演算法的排名預測過程。
3.2.2.1 影響力權重
本研究參考Ling Hang Yew 等人(2018)、陳佳雯(2017)的影響力計 算方式之後,由於Ling Hang Yew 等人(2018)的 Instagram 用戶影響力 計算方式需考慮用戶的貼文觸及數(Reach),然而本研究無法取得此觸 及數(Reach),因觸及數只有用戶自己將帳戶轉為商業帳號後才可自行
查看,並不公開給其他人觀看(2020, INSTAGRAM),無法於本研究中 實作,因此本研究以直觀而言,按讚數可直接代表一篇貼文被多少人 審閱過,而被正面影響表達贊同之意,因此本研究將按讚數視為影響 力大小的代表,作為後續情緒分數的調整權重。
3.2.2.2 評分計算
在過去的情緒分析方法中程序大致相同,而本研究將參考Kaviya 等人(2017)的研究將評論轉成情緒分數,以下為 Kaviya 等人(2017)的 計算過程:
圖 12. 情緒分數計算流程 (Kaviya 等人(2017))
Kaviya 等人(2017)依照字典法選取情緒詞,再依照情緒詞的情緒 分數(如圖 13)加總,搭配情緒程度副詞加權情緒分數,最終每則評論 會產生一個情緒分數(如圖 14),而依據游和正、黃挺豪、陳信希的研 究(2012)中提及,部分詞彙會因為領域的不同而由非情緒詞彙轉變成 情緒詞彙,例如,”鼎泰豐”詞彙原本不帶有情緒程度,但是在餐飲領
域卻可能帶有正面情緒,因此本研究將會測試是否額外加入人工標記 的餐飲領域詞彙,可以更加準確的預測評論的情緒分數。
圖 13. 情緒詞的情緒分數(Kaviya 等人(2017))
圖 14. 評論的情緒分數(Kaviya 等人(2017))
具備評論的情緒分數以及評論者的影響力之後,即可依照評論者 的影響力調整評論者的評分權重,實作結果將於第四章詳細描述。
3.2.2.3 Ad hoc 模型
本研究欲先嘗試僅利用兩個現有情緒辭典進行情緒分析法搭配權 重概念調整評分,測試排名結果是否趨近於menu 美食誌排行榜,然 而考慮到單一則評論情緒分數加總可能過大,故亦測試正規化後的結 果,且考慮評論數過多可能會造成總評分過高,亦需測試不同平均方 式,而僅利用情緒分析方法搭配權重計算出店家總評分的公式如下:
店家總評分 = (∑ ((各情緒詞彙的情緒分數加總)
𝑖 ∗ (評論按讚數)
𝑖)
𝑛
𝑖
)
÷ 𝑛
註:n: 評論數量, i: 評論 ID
公式一、情緒分析結合權重
再嘗試以ad hoc 方式,結合兩個現有情緒辭典與人工標記情緒詞彙,
找出彼此結合可讓排名預測效果最好的最佳參數組合,而因為antusd 辭典(Shih-Ming, 2016)之情緒詞彙的情緒分數數值區間落於[-1,1]、
emoji 辭典(Kralj Novak 等人, 2015)又是以另一種方式計算出情緒詞的 情緒分數,以及本研究人工標記情緒詞嘗試將其情緒分數數值區間設 置於[-10,10],擴增情緒詞之間的情緒程度差異,故利用 ad hoc 方式結 合三種不同型態的情緒詞之情緒分數,計算店家總評分,其公式如 下:
店家總評分 = (∑((𝑤1∗ antusd 辭典情緒分數 + 𝑤2∗ emoji 辭典情緒分數
𝑛
𝑖
+ 𝑤3∗ 本研究標記情緒詞情緒分數)𝑖 ∗ (評論按讚數)𝑖)) ÷ 𝑛
註:n: 評論數量, i: 評論 ID, 𝑤1, 𝑤2, 𝑤3: 模型參數 公式二、ad hoc 模型
最後依據各間店家的總評分進行排序,計算排名結果,而 ad hoc 的目 標函式即是找到一組最佳模型參數,使各店家的預測排名與 menu 美食 誌實際排名差距最小化。
3.2.2.4 機器學習分類演算法
根據過去研究可用於預測排名的演算法,包括深度學習模型 tf-ranking、分類演算法:線性回歸、決策樹、隨機森林等,其中分類演 算法曾被廣州帷策智能科技有限公司執行長江穎,實作於第五屆《歌 手》電視節目的決賽排名預測(江穎, 2017)八名預測結果中冠軍預測正 確,四位排名預測誤差一名,其餘預測誤差皆在四名內,而三種分類 演算法中又以隨機森林的預測準確率最高。因此,本研究將參考江穎
(2017)的做法,利用隨機森林演算法預測餐廳排名。 的排名,意即符合大眾心中的排名,本研究採用均方誤差MSE(Mean Square Error)(公式一)與一致序列對比率評分 FCP(Fraction of Concordant Pairs) (公式 二),計算餐飲評分機制的新排名與 MENU 美食誌排名之間的 MSE 與 FCP,MSE 代
公式一、均方誤差(Mean Square Error)
𝑛𝑐𝑢 = |{(𝑖, 𝑗)|(𝑟̂𝑢,𝑖 > 𝑟̂𝑢,𝑗 & 𝑟𝑢,𝑖 > 𝑟𝑢,𝑗)𝑜𝑟(𝑟̂𝑢,𝑖 == 𝑟̂𝑢,𝑗 & 𝑟𝑢,𝑖 == 𝑟𝑢,𝑗)}|
註:u: 排名各名次的所有𝑝𝑎𝑖𝑟組合, i, j:預測排名的數目 𝑛𝑐𝑢: 相對排名一致的𝑝𝑎𝑖𝑟組合, 𝑛𝑑𝑢: 相對排名不一致的𝑝𝑎𝑖𝑟組合 𝑟̂𝑢,𝑖: 第𝑖個項目的預測排名, 𝑟𝑢,𝑖: 第𝑖個項目的實際排名
𝑛𝑐: 相對排名一致的𝑝𝑎𝑖𝑟數量, 𝑛𝑑: 相對排名不一致的𝑝𝑎𝑖𝑟數量
公式二、一致序列對比率評分(Fraction of Concordant Pairs)
此外,機器學習分類演算法的排名驗證方式,除了將預測排名結果與實際 排名計算 MSE 之外,也採用 Macro Average,將第一名至第十名視為第一類至 第十類別,分別計算第一類別至第十類別的精度(precision)、召回率
(recall)、F1 分數,將十類別的精度(precision)、召回率(recall)、F1 分數 個別平均後,意即計算十次 F1/precision/recall,再分別取平均,即為 Macro Average 下的精度(precision)、召回率(recall)、F1 分數。(Rachid, 2018)
第四章、研究結果
本章將逐步說明利用ad hoc 方式和機器學習分類演算法預測排名的實作過 程,並進一步分析與探討造成各式餐飲種類排名差異的可能原因,在第一節,
將對抓取的資料進行初步分析介紹,在第二節敘述ad hoc 方式和機器學習分類 法預測排名的過程與排名結果驗證,在第三節中,針對不同餐飲種類的排名結 果進行排名差異分析,最後於第四節中進行本章小結。
4.1 資料爬取與分析
為了爬取Instagram 用戶對商家的評論與用戶個人資訊,首先,根據欲分析 商家的打卡地點,蒐集用戶在此打卡地點的文章,利用網路爬蟲套件Selenium 先行爬取此打卡地點的文章網址(如範例圖 15),存於 HackMD(2020),再利用 google chrome 擴充套件 webscraper 前往各網址內爬取貼文文章與用戶個人資 訊,然而,考慮到時間因素,目標是從過去的文章預測MENU 美食誌的商家排 名,因此爬取的貼文時間,限制於MENU 美食誌公開發布商家排名之日期(詳 見附錄一)前的 Instagram 文章,最後爬取的範例結果呈現於圖 16 中。
圖 15. Instagram 用戶於富宏牛肉麵打卡的文章網址
圖 16. Instagram 用戶對於富宏牛肉麵的評論與個人資訊
有鑑於Dai 等人(2018)研究中提及評分匯總(rating aggregation)問題,長 久累計的評分會導致評分結果無法反映店家的真正品質,因此本研究爬取的貼 文時間,僅限MENU 美食誌公開發布商家排名的前數個月內之文章,且因為本 研究之目的為預測MENU 美食誌的排行榜,故僅考慮 MENU 美食誌發布排行 榜之前的Instagram 用戶評論資料。
然而,如何挑選前數個月內之文章,本研究嘗試三種方式,第一種方法為 將挑選評論的時間區段(time window)設為一致六個月並蒐集六個月內的全部評 論,根據各店家於每月獲得的文章數量分布(圖 17)來看,每個店家六個月內獲 得的評論總數不一,甚至相差極大,有些店家僅獲得100 篇內的評論,有些店 家卻獲得600 篇以上的評論數量;第二種方法則是將挑選評論的時間區段(time window)設為一致六個月,但每間店家隨機挑選固定數量的評論;第三種方式一 樣是將挑選評論的時間區段(time window)設為一致,但依時間順序挑選最接近 menu 美食誌公布排行榜之時間點前的數篇評論,且各店家挑選固定數量的評 論。最終測試結果以第三種方法的排名結果較為準確,測試方式則是依據
然而,如何挑選前數個月內之文章,本研究嘗試三種方式,第一種方法為 將挑選評論的時間區段(time window)設為一致六個月並蒐集六個月內的全部評 論,根據各店家於每月獲得的文章數量分布(圖 17)來看,每個店家六個月內獲 得的評論總數不一,甚至相差極大,有些店家僅獲得100 篇內的評論,有些店 家卻獲得600 篇以上的評論數量;第二種方法則是將挑選評論的時間區段(time window)設為一致六個月,但每間店家隨機挑選固定數量的評論;第三種方式一 樣是將挑選評論的時間區段(time window)設為一致,但依時間順序挑選最接近 menu 美食誌公布排行榜之時間點前的數篇評論,且各店家挑選固定數量的評 論。最終測試結果以第三種方法的排名結果較為準確,測試方式則是依據