陶朝杰,楊 進
(上海理工大學 理學院, 上海 200093)
近幾年,互聯(lián)網(wǎng)經(jīng)濟不斷繁榮,支付手段也在不斷優(yōu)化,越來越多的人選擇在網(wǎng)上購物消費.為了尋求性價比更高的商品和服務,或者反饋個人觀點以及使用情況,消費者愈加關注線上平臺的相關評論.海量的評論逐漸成為能夠影響商品銷售業(yè)績和用戶購買決策的重要因素.正面積極的評論有助于提高商品的聲譽,間接提升銷售總量;反之,負面消極的評論會降低該商品的競爭力,造成經(jīng)濟損失.因此,有些商家為了追求更高的利潤,開始雇傭網(wǎng)絡水軍發(fā)布一些虛假評論來鼓吹自己的產(chǎn)品,或是貶低競爭者的產(chǎn)品.這些虛假評論會誤導消費者,造成自由市場的混亂.于是,識別和過濾虛假評論具有重要的現(xiàn)實意義.
根據(jù)前人的研究[1],虛假評論通常分成3類:不真實評論,只關注品牌評論和無關評論.其中,不真實評論是指與產(chǎn)品實際情況不相符的評論.只關注品牌評論是只針對品牌、制造商或者銷售商而非產(chǎn)品本身的評論.無關評論包括廣告和無意義評論(比如問答和隨機文本).后兩類評論雖然令人厭煩,但普通用戶輕易就能識別.第一類評論卻因其隱蔽性和多樣性等特點難以分辨,因此具有較高的研究價值.
Jindal等人[1]于2008年提出虛假評論識別問題,他們基于評論者信息、評論文本以及商品特征建立模型,用以區(qū)分復制觀點(虛假評論)和非復制觀點(真實評論).Ott等人[2]從心理學和語言學角度出發(fā),提出了一種虛假評論檢測方法.宋海霞等人[3]借助評論者的行為特性提出了一種自適應聚類的虛假評論檢測方法.Mukherjee等人[4]發(fā)現(xiàn)近些年虛假評論發(fā)布者們通常以群組的形式出現(xiàn),于是提出了一種基于群組結構、發(fā)布內(nèi)筒以及行為特征判斷虛假評論者的方法.Peng等人[5]在心理學方法的啟發(fā)下,提出了一種基于情感分析的虛假評論識別方法.
樣本類別不平衡不僅嚴重影響分類器的性能,而且對模型的評價指標也提出了要求.例如,在一個不平衡度為99的問題中,直接將全部樣本歸為大類.一方面,學習算法在最小化誤差訓練時可以獲得1%的低錯誤率,這往往導致算法過于重視大類,而忽略了小類.另一方面,雖然分類明顯不合理,但其效果可以達到99%的準確率,于是需要選擇不受類別影響的評價指標,本文采用AUC值評價模型分類效果.
以往研究中通常采用過采樣或欠采樣方法解決類別不平衡問題.欠采樣方法通常截取部分大類樣本進行訓練,可能會造成部分信息的丟失.過采樣方法則通過重復小類樣本或者利用特定算法構造新樣本來平衡數(shù)據(jù),這會放大噪聲,容易造成過擬合.文獻[7]提出的BalanceCascade算法是一種欠采樣算法,但其利用級聯(lián)策略不斷刪減大類樣本,最后集成所有基分類器,在整體上利用全部樣本數(shù)據(jù),彌補了欠采樣的固有缺陷.
考慮GBDT模型作為基分類器以滿足集成學習中子模型“好而不同”的要求.一方面,GBDT作為一種強化的提升樹模型,具有較強的學習能力和泛化能力.另一方面,樹模型是樣本擾動不穩(wěn)定模型,能構造多樣的基分類器.于是,本文提出了一種基于BalanceCascade-GBDT算法的類別不平衡虛假評論識別方法.在實驗中,收集來自拉斯維加斯地區(qū)餐飲行業(yè)的評論,根據(jù)虛假評論的特點構造多維特征,訓練BalanceCascade-GBDT模型,然后與邏輯回歸、隨機森林和神經(jīng)網(wǎng)絡模型得進行對比,實驗結果表明,該方法具有更高的AUC值.
虛假評論識別實質(zhì)上是一個分類問題,為了得到精度更高的分類結果,需要構造強分類器,而提升樹模型在該類問題中效果顯著。GBDT[8](Gradient Boosting Decision Tree,梯度提升決策樹)由Jerome Friedman于1999年提出.該算法使用了加法模型和前向分步算法,是一種優(yōu)秀的Boosting算法,多用于預測,適當調(diào)整也可用于分類.不同于傳統(tǒng)的Adaboost算法利用前一輪迭代中弱學習器的誤差率來更新訓練樣本權重,GBDT的算法思想是在每次迭代中通過擬合殘差構建CART回歸樹模型.Friedman提出使用損失函數(shù)的負梯度來代替殘差,稱為偽殘差.GBDT算法是最優(yōu)秀機器學習算法之一,適用于幾乎所有線性或非線性回歸問題,廣泛應用于各個領域,特別在金融方面已經(jīng)有許多成功案例.GBDT的具體流程如下.
輸入:訓練數(shù)據(jù)集T={(x1,y1),(x2,y2),…,(xN,yN)},損失函數(shù)為L(y,f(x))=(y-f(x))2
輸出:回歸樹F(x)
1)初始化弱學習器,由于損失函數(shù)為平方損失,因此該節(jié)點的平均值為最小化損失函數(shù)的常數(shù)值.
(1)
2)對m=1,2,…,M,有
對i=1,2,…,N,計算偽殘差,即負梯度
(2)
將所得的偽殘差作為樣本值,生成新的訓練數(shù)據(jù){(x1,rm1),(x2,rm2),…,(xN,rmN)},而后構建新回歸樹fm(x),其對應的葉子節(jié)點區(qū)域為Rjm,j=1,2,…,J,其中J為回歸樹的葉子節(jié)點個數(shù).
對j=1,2,…,J,通過線性搜索,計算最佳擬合值
(3)
其中,K表示第m棵樹第j個節(jié)點的樣本數(shù)量.
3)得到最終學習器
(4)
虛假評論識別過程中真實評論和虛假評論的樣本數(shù)量不平衡會在一定程度上影響模型的分類效果。BalanceCascade算法受到級聯(lián)結構啟發(fā),可用于解決上述問題.該算法是一種欠采樣算法,從大類中隨機采樣與小類數(shù)量相等的樣本集,與全部小類組合成訓練樣本子集.此外,通過在每次迭代中刪除部分被正確分類的大類樣本使數(shù)據(jù)趨于平衡.于是,隨著越來越多易分類的大類數(shù)據(jù)被剔除,剩下的多是與小類樣本特征相近的.這樣一方面能夠解決欠采樣帶來的信息缺失問題,另一方面也可以更加關注難分的樣本,挖掘其中的內(nèi)在規(guī)律.算法流程如下.
輸入:小類樣本集P,大類樣本集N,其中|P|<|N|;從N中采樣的子集個數(shù)T,迭代次數(shù)si;訓練AdaBoost集成學習器Hi.
步驟2Repeat
步驟3i?i+1
步驟4對N隨機采樣得到子集Ni,其中|Ni|=|P|.
步驟5由P和Ni訓練AdaBoost集成學習器Hi,其中弱學習器hi,j的個數(shù)為si,相應權重為αi,j.該集成學習器的閾值為θi.公式如下
(5)
步驟6調(diào)節(jié)閾值θi使得Hi的假正率為f.
步驟7去除N中被Hi正確分類的全部樣本.
步驟8Untili=T
步驟9輸出:集成學習器
(6)
BalanceCascade-GBDT模型主要分成4個步驟:a)產(chǎn)生樣本訓練集;b)訓練基分類器;c)更新大類樣本;d)基分類器集成.模型的整體結構如圖1所示.
圖1 基于BalanceCascade-GBDT算法的類別不平衡虛假評論識別模型整體結構
給定一個小類樣本集P和大類樣本集N,利用欠采樣方法從N中隨機不放回地采樣子集Ni,其中|Ni|=|P|.該樣本集與全部小類樣本組合成類別平衡的訓練樣本子集Ti.
集成學習的核心是訓練“好而不同”的基學習器,即準確率高且多樣化的基學習器.考慮到GBDT是基于提升樹模型設計的,而提升樹被認為是性能最好的機器學習算法之一,在許多應用場景中都取得了顯著的分類效果[9].此外,GBDT作為一種樹模型,相較于樸素貝葉斯和支持向量機等樣本擾動穩(wěn)定模型,是一種樣本擾動不穩(wěn)定模型,即不同的訓練樣本集可以得到明顯不同的基分類器,滿足多樣性要求.
基于訓練樣本集Ti,通過貝葉斯參數(shù)尋優(yōu)方法設置算法學習率、最大迭代次數(shù)、特征采樣比等超參數(shù),訓練得到性能優(yōu)異的GBDT基分類器Hi.
Hi被訓練后,如果樣本x∈Ni被Hi正確地歸為大類,那么可以合理推測x在Ni中有一定的冗余[7].因此,可以從Ni中刪除一些被正確分類的樣本.
算法通過設置誤報率f在一定程度上控制所刪除樣本的比例,并調(diào)節(jié)閾值θi使得f在Hi中得到反映,然后將調(diào)整后的GBDT模型對大類樣本進行預測,刪除其中被正確分類的,最后得到新的大類樣本集Ni+1.
重復以上3個步驟,可以得到一組相異的GBDT基分類器,使用合適的集成方法將它們進行組合.本文通過對全部基分類器的預測概率采用簡單平均法,并設置閾值進行分類.
給定樣本x=(x1,x2,…,xn),xi∈Rm,集成模型有m個基分類器H1(x),H2(x),…,Hm(x),則對于樣本x,其集成輸出的結果為
(7)
虛假評論研究的一個重要難題是無法獲得標準的標注數(shù)據(jù)集.而進行人工標注具有主觀性,或多或少會存在誤差.本文利用爬蟲技術從美國版大眾點評網(wǎng)站Yelp上抓取拉斯維加斯地區(qū)餐飲行業(yè)的評論信息.該網(wǎng)站會利用自身的檢測系統(tǒng)過濾虛假評論,其中真實評論會顯示在主界面上,而虛假評論則隱藏在底部的折疊頁面中.通過上述方式,利用Yelp網(wǎng)站上的過濾系統(tǒng)對所有評論進行標注.
通過整理,從Yelp網(wǎng)站上共爬取12402條評論,以及508071條相關評論(包括255530條店鋪歷史評論和252541條用戶歷史評論).具體實驗數(shù)據(jù)如表1所示.
表1 實驗數(shù)據(jù)集
根據(jù)文獻[10]中整理的虛假評論特征,基于所爬取的數(shù)據(jù)建立多維特征模型,并將其分成評論文本特征和用戶行為特征.前者從評論文本的內(nèi)容,包括詞性,詞義以及語法角度對評論進行挖掘.后者通過用戶行為特征確定虛假評論用戶,間接判斷該評論的真實性.具體特征如表2所示.
表2 評論文本特征和用戶行為特征
由于支持向量機等分類模型是基于距離度量的,具有大變化范圍的特征可能會影響模型對小變化范圍特征的關注度,需要進行數(shù)據(jù)標準化處理.此外,標準化還能夠使最優(yōu)解的尋優(yōu)過程變得平緩,提高模型的收斂速度.本文使用兩種標準化方法對數(shù)據(jù)進行處理,其中神經(jīng)網(wǎng)絡模型使用Z-Score標準化,其他模型使用Min-Max標準化.它們的處理方法如下.
1)Z-Score標準化:
(8)
2)Min-Max標準化:
(9)
在類別不平衡問題中,準確率、精確率和召回率并不合適作為評價指標.本文使用AUC(Area Under Curve)作為評價指標.AUC是ROC曲線下與坐標軸圍成的面積,能有效評估模型性能,非常適用于該類問題.
為了驗證本文所提出的虛假評論識別模型的有效性,實驗使用上述的數(shù)據(jù)集和評價指標,與邏輯回歸模型(LR)、隨機森林模型(RF)、神經(jīng)網(wǎng)絡(ANN)模型進行比較.
上述所有的模型都需要設置超參數(shù).在機器學習算法中常用的搜索策略一般有4種:隨機搜索、貝葉斯搜索、網(wǎng)絡搜索和梯度搜索.本文選用貝葉斯搜索[11],該方法相較于其他方法更加穩(wěn)定高效.LR、RF、ANN和GBDT模型的參數(shù)尋優(yōu)范圍如表3所示,參數(shù)優(yōu)化過程如圖2所示.
迭代次數(shù)
表3 不同虛假評論識別模型的參數(shù)尋優(yōu)范圍
以AUC為評價指標,在Yelp評論數(shù)據(jù)上訓練模型,實驗結果如表4所示.
表4 不同模型的AUC對比
從表2中可以看出:1)本文所提出BalanceCascade-GBDT模型在對比實驗中AUC值最高,預測效果最好;2)兩種欠采樣方法的分類效果相較于單模型有很大的提升,表明在虛假評論模型訓練之前對樣本數(shù)據(jù)進行平衡很有必要;3)利用BalanceCascade算法處理類別不平衡問題,其模型的分類效果比簡單欠采樣好,這是因為該算法更充分地利用了全部樣本數(shù)據(jù).
關于多維特征在虛假評論識別中的作用,可以通過模型的特征權重進行觀察.其中特征重要性排序的前十位如圖3所示.
特征重要性
從圖中可以看出用戶評論頻率、評論長度、評級偏差和用戶粉絲數(shù)在識別虛假評論的過程中具有突出效果.
本文利用BalanceCascade-GBDT算法解決類別不平衡的虛假評論識別問題.該算法通過控制誤報率不斷刪減大類樣本,并在每層中利用欠采樣方法產(chǎn)生類別平衡的訓練樣本子集訓練基分類器,最后對這些基分類器進行集成.由于全部訓練樣本子集所包含的信息要比單個的多,因此該算法能在整體上利用全部數(shù)據(jù).至于GBDT則保證了基分類器的分類效果,特別在后期迭代中,當易分類的大類被剔除后,需要性能優(yōu)異的模型進行學習.實驗結果表明,本文提出的方法可獲得更高的AUC值.