分析全球最大美食點(diǎn)評(píng)網(wǎng)站萬(wàn)家餐廳數(shù)據(jù) 尋找餐廳經(jīng)營(yíng)成功的秘密
作者|Jiaxu Luo, Charles Leung, Danli Zeng, Samriddhi Shakya
翻譯校對(duì)|吳小雯 Francis 姜范波 寒小陽(yáng)
摘要
各位美食愛(ài)好者對(duì)于Yelp應(yīng)該比“大眾點(diǎn)評(píng)”更加熟悉。這家美食評(píng)論起家的網(wǎng)站是被全球公認(rèn)的“美食攻略提供者”,它是利用大眾經(jīng)驗(yàn)和點(diǎn)評(píng)的最好例子之一,而其中的大量評(píng)價(jià)數(shù)據(jù)和排名機(jī)制也因此“操控”了很多家大小餐廳的生死。
開(kāi)一家自己的餐廳,對(duì)小企業(yè)主們而言是一件很令人膽怯的活——開(kāi)始經(jīng)營(yíng)的前三年中,60%的餐廳會(huì)經(jīng)營(yíng)失敗。對(duì)于很多業(yè)主,Yelp曝光率是決定他們能否挺過(guò)前三年經(jīng)營(yíng)的關(guān)鍵因素。
本文來(lái)自NYC數(shù)據(jù)科學(xué)學(xué)院舉辦的為期12周全日制的數(shù)據(jù)科學(xué)訓(xùn)練營(yíng),該文章基于他們最后的畢業(yè)設(shè)計(jì)。
該畢業(yè)設(shè)計(jì)的目的是:確定出能在Yelp中取得高評(píng)分的關(guān)鍵屬性和特征。結(jié)合數(shù)據(jù)可視化和機(jī)器學(xué)習(xí)算法,我們識(shí)別出高商業(yè)評(píng)分的影響屬性和特征。我們也利用自然語(yǔ)言處理從用戶(hù)評(píng)價(jià)中提煉出有價(jià)值的信息。喜歡奇思妙想的我們五個(gè)人,利用R Shiny 構(gòu)建應(yīng)用程序來(lái)幫助業(yè)主們通過(guò)以下三種方式進(jìn)入該市場(chǎng):
1.地圖:針對(duì)經(jīng)營(yíng)成功的餐廳進(jìn)行地理位置分析
2.主題模型:針對(duì)不同類(lèi)別的餐廳進(jìn)行差評(píng)分析
3.美食廊:對(duì)好評(píng)如潮的菜系種類(lèi)進(jìn)行分析
簡(jiǎn)介
康奈爾大學(xué)的研究表明,27%新餐廳會(huì)在第一年倒閉,而將近有60%的餐廳會(huì)在三年內(nèi)倒閉。無(wú)法經(jīng)營(yíng)成功的一個(gè)關(guān)鍵性阻礙是Yelp曝光率不足。經(jīng)營(yíng)良好的餐廳,顧客會(huì)定期光臨,會(huì)有較高評(píng)分和點(diǎn)評(píng)數(shù)量,這樣會(huì)提高餐廳在搜索排名中的位置,為任何倒霉事保留緩沖空間。
Yelp中的餐廳排名是被全球公認(rèn)的,它是利用大眾經(jīng)驗(yàn)和點(diǎn)評(píng)的最好例子之一。我們想要尋求的答案是——影響餐廳經(jīng)營(yíng)成功的關(guān)鍵特征是什么?我們相信從Yelp提供的與評(píng)分相關(guān)的官方數(shù)據(jù)中,一定能找出可識(shí)別的重要特征。
這些關(guān)鍵特征可以是商家經(jīng)營(yíng)的固有屬性,例如開(kāi)業(yè)時(shí)間,環(huán)境吵鬧程度,也可以是客戶(hù)的主觀(guān)因素。通過(guò)數(shù)據(jù)可視化和預(yù)測(cè)模型,我們探索出在Yelp中取得高分的關(guān)鍵特征。我們通過(guò)基于隱狄利克雷分布(Latent Dirichlet Allocation)的主題模型算法處理客戶(hù)評(píng)價(jià)內(nèi)容。我們的最終作品,匯總了我們的各種發(fā)現(xiàn),以R Shiny應(yīng)用——YelpQuest的形式進(jìn)行呈現(xiàn)。
數(shù)據(jù)處理
我們應(yīng)用的數(shù)據(jù)源來(lái)自于Yelp 2016 Dataset Challenge,它提供的數(shù)據(jù)表有:業(yè)務(wù)表(businesss),評(píng)價(jià)表(reviews),小貼士表(tips,更簡(jiǎn)短的評(píng)價(jià)),用戶(hù)信息表(user information)和簽到表(check-ins)。其中業(yè)務(wù)表(business table)中列出了餐廳的名稱(chēng),地理位置,營(yíng)業(yè)時(shí)間,菜系類(lèi)別,平均星級(jí)評(píng)分,評(píng)價(jià)數(shù)量和其他與經(jīng)營(yíng)相關(guān)的一系列因素,如:吵鬧程度,預(yù)訂政策。評(píng)價(jià)表(review table)中列出餐廳星級(jí)評(píng)分,評(píng)價(jià)內(nèi)容,評(píng)價(jià)時(shí)間,和該評(píng)價(jià)獲得的支持率。我們限制采樣數(shù)據(jù)集的范圍在美國(guó)鳳凰城(Phoenix)的大都市區(qū)域,然后通過(guò)類(lèi)別過(guò)濾業(yè)務(wù)表(business)數(shù)據(jù),僅保留餐廳和評(píng)價(jià)數(shù)據(jù)。從餐廳中獲取到的評(píng)價(jià)文本會(huì)構(gòu)成該項(xiàng)目的語(yǔ)料庫(kù)。
挑戰(zhàn)
- 關(guān)于預(yù)測(cè),雖然只有9427家餐廳為樣本,但特征的數(shù)量是十分龐大的。我們擁有的數(shù)據(jù)不足以充分支持結(jié)論。特征簡(jiǎn)化或者選擇一個(gè)相對(duì)復(fù)雜的模型是有必要的。
- 對(duì)于不同菜系的餐廳,好評(píng)/差評(píng) 的標(biāo)準(zhǔn)是不同的。僅通過(guò)評(píng)價(jià)星級(jí)無(wú)法完全捕捉客戶(hù)的觀(guān)點(diǎn)。例如,快餐店的評(píng)分一般都很低;因此,4星評(píng)分的快餐店比4星評(píng)分的意大利餐廳更出色。
業(yè)務(wù)表(Business Table)
- 從業(yè)務(wù)表文件中查找出餐廳
- 創(chuàng)建只包括餐廳(restaurants)的業(yè)務(wù)子表文件
- 創(chuàng)建包括評(píng)價(jià),簽到、小貼士的子表文件
- 從評(píng)價(jià),簽到和小貼士子文件中進(jìn)行數(shù)據(jù)總結(jié)(例如:每個(gè)餐廳的簽到/小貼士/評(píng)價(jià)總數(shù)量),并創(chuàng)建包括業(yè)務(wù)ID和求和字段的概況數(shù)據(jù)文件,該文件可以追加到餐廳(restaurants)文件中
- 合并概況數(shù)據(jù)到業(yè)務(wù)餐廳(restaurants)數(shù)據(jù)中,并形成最終的模型數(shù)據(jù)集
評(píng)價(jià)表(Reviews Table)
- 根據(jù)餐廳分類(lèi)得到平均分,判斷各餐廳是高于還是低于平均分(例如,在分類(lèi)平均值中,泰式:4.5星,快餐店:3.5星)
- 基于餐廳類(lèi)別平均分,創(chuàng)建好評(píng)的數(shù)據(jù)子集
- 基于餐廳類(lèi)別平均分,創(chuàng)建差評(píng)的數(shù)據(jù)子集
- 連接從步驟2到步驟3得到的兩個(gè)子集
- 從步驟4創(chuàng)建頂級(jí)菜肴的評(píng)價(jià)子集,對(duì)好評(píng)和差評(píng)的數(shù)據(jù)集根據(jù)評(píng)價(jià)進(jìn)行主題建模。
探索性數(shù)據(jù)分析
通過(guò)探索性分析,我們首先想要檢測(cè)自己那些先入為主的觀(guān)點(diǎn)。當(dāng)我們想到5星餐廳時(shí),我們不會(huì)想到是快餐店或者披薩店。我們想到的是富麗堂皇的歐洲菜,如意大利菜或法國(guó)菜。通過(guò)菜系進(jìn)行分類(lèi)計(jì)算評(píng)分平均值,我們得到了以下的信息圖表,例如:泰式或希臘菜系會(huì)有很高的評(píng)分,而自助餐,快餐和雞翅店會(huì)有較低的評(píng)分。這些數(shù)據(jù)似乎能支持我們的假設(shè):餐廳的評(píng)分跟特定的菜系類(lèi)別有關(guān)。
與此同時(shí),當(dāng)我們想象5星評(píng)分的餐廳時(shí),一般不會(huì)想到路邊的便宜小餐廳。為檢測(cè)人均消費(fèi)對(duì)餐廳評(píng)分的影響,我們繪制了以下Mosaic圖。你看到的是關(guān)于價(jià)格范圍和評(píng)分水平的卡方檢驗(yàn)(它給出了一個(gè)很顯著的P值 2.2e-16)。
Mosaic圖使用顏色作為比較各價(jià)格范圍和星級(jí)評(píng)分組合下,觀(guān)測(cè)值與期待值的差別(譯注:如圖所示,橫向?yàn)樾羌?jí)評(píng)分,分為9組,縱向?yàn)閮r(jià)格范圍,分為4組。如果價(jià)格范圍對(duì)星級(jí)評(píng)分沒(méi)有影響,則各價(jià)格段的星級(jí)評(píng)分頻率分布是均一的(即期待值),應(yīng)顯示為白色,而本例中多處顯示為紅色或藍(lán)色,表示價(jià)格范圍對(duì)星級(jí)評(píng)分有影響)。藍(lán)顏色表示,相對(duì)于預(yù)期結(jié)果,實(shí)際上有更多的觀(guān)測(cè)值,而紅色卻有更少的觀(guān)測(cè)值。在本案例中,我們可以觀(guān)察到,價(jià)格和星級(jí)評(píng)分不是完全獨(dú)立的,該結(jié)果可通過(guò)χ2檢測(cè)得到證實(shí)。
預(yù)測(cè)模型
為從數(shù)據(jù)中確定出關(guān)鍵的影響特征,我們決定使用基于樹(shù)的模型。相對(duì)于觀(guān)察到的大量屬性和特征,我們的數(shù)據(jù)表顯得很稀疏?;跇?shù)的模型可以解決稀疏性問(wèn)題,特別是XGBoost更為出色。我們選擇了三種不同的模型:隨機(jī)森林,XgBoost和梯度增強(qiáng)樹(shù)。下圖展示了基于XGBoost的結(jié)果,因?yàn)樗哂懈叩姆€(wěn)定性。
首先我們將所有的有效屬性作為預(yù)測(cè)因子進(jìn)行建模,擬合到了一個(gè)R square =0.936的模型。根據(jù)特征重要性的圖示我們可以得出一個(gè)很強(qiáng)的影響因子——用戶(hù)平均評(píng)價(jià)星級(jí)。然而,該信息并不是什么遠(yuǎn)見(jiàn)卓識(shí);總體的商業(yè)評(píng)分是所有用戶(hù)評(píng)分的平均值,因此顯而易見(jiàn)該因素在圖表中會(huì)很顯著。我們決定移除所有跟評(píng)價(jià)相關(guān)的因素后,再重新運(yùn)行XGBoost:
第二次運(yùn)行時(shí),R square 明顯地下降到0.318,去除評(píng)價(jià)相關(guān)的因素后,我們無(wú)法很好的進(jìn)行評(píng)分預(yù)測(cè)。這次試驗(yàn)中,地理位置,用餐人數(shù),人均消費(fèi)是重要的預(yù)測(cè)因子。
主題建模
預(yù)處理
建立任何模型之前,我們都需要預(yù)處理點(diǎn)評(píng)文本:
- 刪除常用的停用詞,例如“在”,“和”,“但是”等等。。。
- 刪除標(biāo)點(diǎn),規(guī)避非字符號(hào)
- 刪除數(shù)字
- 刪除無(wú)法寫(xiě)出的符號(hào)
- 去除空白符號(hào)
- 將文本轉(zhuǎn)換為小寫(xiě)字母
- 把文本分詞為二元詞和三元詞(n-gram語(yǔ)言模型中的bigrams和trigrams)
由于一些詞匯與其他詞匯連用時(shí)會(huì)改變其原有的意思,我們決定將點(diǎn)評(píng)文本分詞為二元詞組和三元詞組(2或3字的組合) 。例如,如果將 “不好” 分成 “不” 和 “好” 兩個(gè)單詞,那么分析過(guò)程就會(huì)出錯(cuò)。
LDA(主題模型)和數(shù)據(jù)可視化
為了理解點(diǎn)評(píng)數(shù)據(jù)中的關(guān)鍵主題,我們使用LDA主題建模算法來(lái)提取每個(gè)類(lèi)別和每個(gè)評(píng)級(jí)中的20項(xiàng)關(guān)鍵主題。我們使用R語(yǔ)言擴(kuò)展包 “LDAvis” 來(lái)進(jìn)行交互式主題模型的可視化, 并且回答了這些問(wèn)題:
1.每項(xiàng)關(guān)鍵主題都是什么意思?
2.這些關(guān)鍵主題普遍性怎么樣?
3.這些關(guān)鍵主題是如何相互關(guān)聯(lián)?
上圖右側(cè)結(jié)果是LDAvis對(duì)第一個(gè)問(wèn)題的回答。在這張條形圖中,y軸是詞條,x軸是出現(xiàn)次數(shù),你可以看出點(diǎn)評(píng)內(nèi)容中特定詞條在各主題內(nèi)的出現(xiàn)次數(shù)。我們采用一種特殊的度量標(biāo)準(zhǔn) -- 顯著性(saliency) -- 來(lái)確定一項(xiàng)主題中最重要的詞條。顯著性就是詞條在單個(gè)主題中出現(xiàn)頻率相對(duì)其在整個(gè)點(diǎn)評(píng)文本中出現(xiàn)頻率的比例。排列越靠前的詞條也就越獨(dú)特,相對(duì)于這項(xiàng)主題也就更重要。
上圖左側(cè)LDAvis的結(jié)果圖叫做主題間距模型。它為主題模型提供全局視圖,并且回答了后兩個(gè)問(wèn)題 -- 每個(gè)主題圓的直徑代表每項(xiàng)主題的普遍性;詹森 - 香農(nóng)離散度計(jì)算出主題間的相互距離,(詹森 - 香農(nóng)離散度是測(cè)算兩個(gè)概率分布間相似性的流行方法),然后再按比例調(diào)整每?jī)蓚€(gè)主題的間距。要點(diǎn)在于,兩個(gè)氣泡越是靠近彼此,它們就越相似。一圖勝千言,因此我們將它納入了我們的應(yīng)用程序。
應(yīng)用程序
我們的最終產(chǎn)品為R Shiny應(yīng)用程序,包含以下幾項(xiàng)功能:
- 地圖:餐廳成功的地理位置分析
- 主題建模:理解指定類(lèi)別市場(chǎng)中的差評(píng)
- 料理畫(huà)廊:理解好評(píng)中頻繁出現(xiàn)的料理主題
我們的主要用戶(hù)將是想要開(kāi)餐廳或擴(kuò)展餐廳的小企業(yè)主。
通過(guò)地圖,用戶(hù)可以找出開(kāi)餐廳最好的地方,或是鳥(niǎo)瞰餐廳間的競(jìng)爭(zhēng)狀況。亞利桑那州的一張互動(dòng)地圖顯示出了這些餐廳,它們被分為某類(lèi)餐廳中 “高于同類(lèi)平均水平” 和 “低于同類(lèi)平均水平” 兩組。用戶(hù)通過(guò)點(diǎn)擊地圖上的標(biāo)記就能獲得有關(guān)餐館的具體信息?,F(xiàn)在假設(shè)用戶(hù)希望開(kāi)一家意大利餐廳:
標(biāo)識(shí)出地圖上的大型片區(qū)
在地圖上,人們普遍喜歡意大利食品的最大片區(qū)就很可能是開(kāi)餐廳的好地點(diǎn)。
還有就是主題模型功能。
以前如果想要了解其他餐館的負(fù)面點(diǎn)評(píng),唯一方法就是閱讀每一頁(yè)點(diǎn)評(píng)。而主題模型是迅速匯總信息的最快方式。用戶(hù)可以快速探索不同的主題氣泡,并基于點(diǎn)評(píng)中詞條的出現(xiàn)頻率找出問(wèn)題。例如,如果時(shí)間是一個(gè)很重要的問(wèn)題,那么用戶(hù)在開(kāi)餐廳時(shí)就可以利用這一點(diǎn)。
最后是菜單畫(huà)廊功能。
畫(huà)廊可以顯示出最受好評(píng)的食物。用戶(hù)可以通過(guò)了解最流行的詞條來(lái)建立自己餐廳的菜單。
通過(guò)使用預(yù)測(cè)模型和探索式數(shù)據(jù)分析(EDA),我們確定了要納入應(yīng)用程序YelpQuest中作為預(yù)測(cè)因子和過(guò)濾器的關(guān)鍵特征。而基于差評(píng)和好評(píng)的主題模型使我們的產(chǎn)品有望幫助未來(lái)小企業(yè)主們的成長(zhǎng)和成功。
【本文是51CTO專(zhuān)欄機(jī)構(gòu)大數(shù)據(jù)文摘的原創(chuàng)譯文,微信公眾號(hào)“大數(shù)據(jù)文摘( id: BigDataDigest)”】