呂 海,王 琢
(沈陽(yáng)理工大學(xué) 信息科學(xué)與工程學(xué)院,沈陽(yáng) 110159)
隨著互聯(lián)網(wǎng)時(shí)代到來和移動(dòng)終端設(shè)備的普及,中國(guó)互聯(lián)網(wǎng)購(gòu)物領(lǐng)域出現(xiàn)了很多網(wǎng)上購(gòu)物平臺(tái),隨之出現(xiàn)的網(wǎng)上評(píng)論系統(tǒng)可讓已經(jīng)購(gòu)買商品的用戶以評(píng)論的形式把使用感受表達(dá)出來,給其他對(duì)該商品有購(gòu)買欲望的用戶做為選購(gòu)商品的參考。因此,購(gòu)物平臺(tái)上的大量商家通過招募虛假評(píng)論寫手來對(duì)自家商品發(fā)表好評(píng),同時(shí),也對(duì)競(jìng)爭(zhēng)商家的商品發(fā)表差評(píng)。此外,網(wǎng)上評(píng)論系統(tǒng)對(duì)虛假評(píng)論寫手發(fā)表的虛假評(píng)論沒有嚴(yán)格的檢測(cè)措施,導(dǎo)致虛假評(píng)論泛濫。這種受利益驅(qū)使故意發(fā)表虛假評(píng)論的行為叫做評(píng)論欺詐[1]。
虛假評(píng)論的問題自從出現(xiàn)以后,引起了相關(guān)學(xué)者的高度關(guān)注,大量的虛假評(píng)論檢測(cè)方法也被提出,現(xiàn)階段對(duì)虛假評(píng)論檢測(cè)有很多學(xué)者進(jìn)行了詳細(xì)的研究[2-3],但這些檢測(cè)方法對(duì)虛假評(píng)論檢測(cè)并沒有取得很好的效果。以前學(xué)者們對(duì)虛假評(píng)論檢測(cè)的研究都是基于離線方式,這種方式通過檢測(cè)虛假評(píng)論數(shù)據(jù)集的歷史數(shù)據(jù),達(dá)到發(fā)現(xiàn)虛假評(píng)論欺詐活動(dòng)的目的。此方式運(yùn)行虛假評(píng)論檢測(cè)算法時(shí)間過長(zhǎng),而且評(píng)論數(shù)據(jù)集的歷史數(shù)據(jù)對(duì)當(dāng)前正在發(fā)生的虛假評(píng)論數(shù)據(jù)來說時(shí)效性很差。因此,最近有學(xué)者提出在線檢測(cè)方式,在線檢測(cè)的方式是對(duì)正在發(fā)生的虛假評(píng)論欺詐活動(dòng)進(jìn)行檢測(cè)。這種檢測(cè)方式通過對(duì)評(píng)論數(shù)據(jù)進(jìn)行實(shí)時(shí)更新,每次只檢測(cè)離當(dāng)前時(shí)間最近一部分的評(píng)論數(shù)據(jù),可以使消費(fèi)者受到虛假評(píng)論的影響降到最低?;谠诰€檢測(cè)的方式是虛假評(píng)論檢測(cè)領(lǐng)域中一個(gè)重要的研究方向,Junting Ye等[4]提出了使用指示性信號(hào)來對(duì)虛假評(píng)論進(jìn)行在線檢測(cè),該算法的輸入為單個(gè)產(chǎn)品的所有評(píng)論數(shù)據(jù),輸出為根據(jù)單個(gè)產(chǎn)品的評(píng)論數(shù)據(jù)計(jì)算得到的指示性信號(hào)時(shí)間序列;通過觀察指示性信號(hào)在時(shí)間序列上的變化來對(duì)虛假評(píng)論欺詐活動(dòng)的爆發(fā)進(jìn)行在線檢測(cè)。這種算法的缺點(diǎn)是只能對(duì)單個(gè)產(chǎn)品的評(píng)論數(shù)據(jù)進(jìn)行在線檢測(cè),不能對(duì)多個(gè)產(chǎn)品混合的評(píng)論數(shù)據(jù)進(jìn)行在線檢測(cè),也不能對(duì)虛假評(píng)論人進(jìn)行有效的篩選。
本文提出一種新的在線產(chǎn)品虛假評(píng)論檢測(cè)算法。該算法分為四個(gè)部分:(1)使用時(shí)間窗口提取時(shí)間序列上的評(píng)論數(shù)據(jù),將評(píng)論數(shù)據(jù)生成二部圖結(jié)構(gòu),然后轉(zhuǎn)化為評(píng)論人圖結(jié)構(gòu),最后計(jì)算評(píng)論人圖中評(píng)論人之間的權(quán)重,得到帶權(quán)評(píng)論人圖;通過時(shí)間窗口在時(shí)間序列上不斷滑動(dòng)生成動(dòng)態(tài)帶權(quán)評(píng)論人圖。(2)使用SCAN算法[5]對(duì)時(shí)間窗口內(nèi)的帶權(quán)評(píng)論人圖進(jìn)行圖聚類,得到候選虛假評(píng)論人群組。(3)計(jì)算候選虛假評(píng)論人群組的欺詐特征。(4)使用SVM算法[6]對(duì)群組欺詐特征訓(xùn)練分類器。
時(shí)間窗口:數(shù)據(jù)集隨著時(shí)間的變化不斷進(jìn)行更新,每個(gè)時(shí)間單位都會(huì)有新的數(shù)據(jù)加入數(shù)據(jù)集,可以把這些不斷加入數(shù)據(jù)集的數(shù)據(jù)以時(shí)間窗口為間隔,在時(shí)間序列上分成小的數(shù)據(jù)集,對(duì)時(shí)間窗口內(nèi)的數(shù)據(jù)進(jìn)行實(shí)時(shí)挖掘。即把歷史數(shù)據(jù)丟棄,只使用離現(xiàn)在時(shí)間較近時(shí)間窗口內(nèi)的數(shù)據(jù)集。為維護(hù)時(shí)間窗口內(nèi)的數(shù)據(jù),需要對(duì)時(shí)間窗口進(jìn)行滑動(dòng)處理,使時(shí)間窗口隨著時(shí)間序列的滑動(dòng)丟棄掉最遠(yuǎn)時(shí)間的數(shù)據(jù),添加最近時(shí)間的數(shù)據(jù)。
SCAN算法:SCAN算法是基于DBSCAN算法改進(jìn)而來的社交網(wǎng)絡(luò)聚類算法。該算法的主要思想是在考慮圖中節(jié)點(diǎn)之間的關(guān)系時(shí),把節(jié)點(diǎn)之間是否直接相連考慮在內(nèi),聚類條件是以節(jié)點(diǎn)之間共有的鄰居為標(biāo)準(zhǔn)。
SVM算法:支持向量機(jī)(Support Vector Machines)是一種有監(jiān)督學(xué)習(xí)的二分類模型。SVM算法通過尋找一個(gè)超平面對(duì)正負(fù)樣本分割來訓(xùn)練分類器,分割的原則是樣本到超平面的幾何間隔最大化,最終將問題轉(zhuǎn)化為一個(gè)凸二次規(guī)劃來求解。
使用時(shí)間窗口對(duì)時(shí)間序列上的評(píng)論數(shù)據(jù)進(jìn)行分割,時(shí)間窗口包含兩個(gè)參數(shù),第一個(gè)是時(shí)間窗口長(zhǎng)度(t),第二個(gè)是時(shí)間窗口滑動(dòng)步長(zhǎng)(Δ)。根據(jù)時(shí)間窗口內(nèi)的評(píng)論數(shù)據(jù)生成二部圖,然后將二部圖中評(píng)論人和產(chǎn)品的關(guān)系轉(zhuǎn)化為評(píng)論人與評(píng)論人的關(guān)系,即評(píng)論人圖。在評(píng)論人圖中設(shè)置權(quán)重來描述評(píng)論人之間關(guān)系的緊密度。對(duì)評(píng)論人圖中任意兩個(gè)有邊相連的評(píng)論人進(jìn)行計(jì)算,評(píng)論人i和j都對(duì)同一個(gè)產(chǎn)品k發(fā)表過評(píng)論,然后用這兩個(gè)評(píng)論人對(duì)產(chǎn)品k的評(píng)論信息計(jì)算時(shí)間緊密度(TimeSim)和評(píng)分緊密度(RatingSim)。通過時(shí)間緊密度和評(píng)分緊密度求出評(píng)論人i和j對(duì)產(chǎn)品k的緊密度(Tightness)。具體見公式(1)~(3)所示。
(1)
(2)
(3)
通過評(píng)論人i和j共同評(píng)論過產(chǎn)品的緊密度(Tightness)和杰卡德相似度,計(jì)算評(píng)論人i和j之間的權(quán)重(W)。具體見公式(4)所示。
(4)
式中Pi、Pj分別表示評(píng)論人i、j評(píng)論過所有產(chǎn)品的集合。
通過公式(4)得到評(píng)論人圖中評(píng)論人之間邊的權(quán)重(W)后,設(shè)置一個(gè)W的閾值(δ),如果W≥δ,則保留評(píng)論人之間的邊;如果W<δ,則去掉評(píng)論人之間的邊。
通過以上操作可以在時(shí)間窗口內(nèi)得到一個(gè)“靜態(tài)”的帶權(quán)評(píng)論人圖。對(duì)時(shí)間窗口進(jìn)行滑動(dòng),使時(shí)間窗口內(nèi)評(píng)論數(shù)據(jù)不斷發(fā)生變化,從而使帶權(quán)評(píng)論人圖由“靜態(tài)”變成“動(dòng)態(tài)”。
在時(shí)間窗口內(nèi)的帶權(quán)評(píng)論人圖由靜態(tài)變成動(dòng)態(tài)之前,需要先從評(píng)論人圖中找到評(píng)論人之間的密集區(qū)域。本文使用SCAN算法挖掘出評(píng)論人圖中密集的部分,稱之為候選虛假評(píng)論人群組。而在時(shí)間序列中,對(duì)于前后兩個(gè)相連時(shí)間窗口重疊范圍內(nèi)生成的候選虛假評(píng)論人群組,如果前后時(shí)間窗口內(nèi)生成的候選虛假評(píng)論人群組重復(fù)度(overlap)大于等于0.8,則刪除前面時(shí)間窗口重疊范圍內(nèi)的候選虛假評(píng)論人群組,保留后面時(shí)間窗口重疊范圍內(nèi)的候選虛假評(píng)論人群組,反之,則都保留。具體公式見式(5)所示。
(5)
式中:VT(g)1表示前一個(gè)時(shí)間窗口內(nèi)評(píng)論人群組的評(píng)論;VT(g)2表示后一個(gè)時(shí)間窗口內(nèi)評(píng)論人群組的評(píng)論。
(1)評(píng)分相似度CDR
CDR(g)=avgri,rj∈Rge-|ψri-ψrj|2
(6)
式中:ri、rj分別表示評(píng)論人i、j的評(píng)論;ψri、ψrj分別表示評(píng)論人i、j評(píng)論的評(píng)分;Rg表示評(píng)論人群組中全部評(píng)論人的集合。
(2)時(shí)間相似度CDT
CDT(g)=avgri,rj∈Rge-|tri-trj|2
(7)
式中tri、trj分別表示評(píng)論人i、j評(píng)論的時(shí)間。
(3)文本長(zhǎng)度相似度CDC
(8)
式中:Lri、Lrj分別表示評(píng)論人i、j評(píng)論的文本長(zhǎng)度。
(4)文本余弦相似度CDCS
CDCS(g)=avgri,rj∈Rgcos(φri,φrj)
(9)
式中φri、φrj分別表示評(píng)論人i、j評(píng)論文本內(nèi)容。
(5)文本杰卡德相似度CDJS
CDJS(g)=avgri,rj∈RgJaccard(φri,φrj)
(10)
使用SVM算法對(duì)訓(xùn)練數(shù)據(jù)集時(shí)間窗口內(nèi)的評(píng)論人群組特征訓(xùn)練分類器。將評(píng)論人群組中作弊度(μ)大于等于0.2的評(píng)論人群組特征定義為作弊群組,反之,定義為非作弊群組。具體公式見式(11)所示。
(11)
式中:spam(V)表示作弊評(píng)論;all(V)表示全部評(píng)論。
實(shí)驗(yàn)數(shù)據(jù)集為Yelp評(píng)論數(shù)據(jù)集,該數(shù)據(jù)集是在Yelp.com站點(diǎn)上分享的已經(jīng)標(biāo)注過的評(píng)論數(shù)據(jù)集,是紐約地區(qū)所有酒店評(píng)論數(shù)據(jù)。評(píng)論數(shù)據(jù)集有評(píng)論人ID、產(chǎn)品ID、評(píng)論評(píng)分、評(píng)論標(biāo)注、評(píng)論日期和評(píng)論文本信息。本文從中選取一部分作為實(shí)驗(yàn)數(shù)據(jù)集。表1中顯示了數(shù)據(jù)集的一些統(tǒng)計(jì)信息。
表1 數(shù)據(jù)集的統(tǒng)計(jì)結(jié)果
本文使用適合對(duì)于二分類問題進(jìn)行度量的正確率、精確率和召回率作為度量指標(biāo)。實(shí)驗(yàn)中的在線檢測(cè)是對(duì)正在發(fā)生的虛假評(píng)論欺詐活動(dòng)進(jìn)行檢測(cè),即對(duì)當(dāng)前時(shí)間戳所屬時(shí)間窗口長(zhǎng)度(t)范圍內(nèi)的評(píng)論人群組特征數(shù)據(jù)進(jìn)行檢測(cè);并以當(dāng)前時(shí)間戳向后推移,推移距離為時(shí)間窗口滑動(dòng)步長(zhǎng)(Δ)。因?yàn)閷?duì)單個(gè)“當(dāng)前”時(shí)間窗口進(jìn)行檢測(cè)結(jié)果并不能衡量算法的穩(wěn)定性,同時(shí)隨著時(shí)間的變化,需要不斷檢測(cè)“當(dāng)前”時(shí)間窗口(即正在發(fā)生的虛假評(píng)論活動(dòng))。因此,實(shí)驗(yàn)中計(jì)算的正確率、精確率、召回率和F1值為檢測(cè)所有“當(dāng)前”時(shí)間窗口結(jié)果的平均值。
首先對(duì)評(píng)論數(shù)據(jù)集進(jìn)行預(yù)處理,將評(píng)論人ID、產(chǎn)品ID和評(píng)論人評(píng)分從字符型轉(zhuǎn)換為整型,將評(píng)論日期轉(zhuǎn)換為時(shí)間戳。其次,以評(píng)論數(shù)據(jù)的時(shí)間戳為基準(zhǔn)建立一個(gè)時(shí)間序列,設(shè)置好時(shí)間窗口長(zhǎng)度(t)和時(shí)間窗口滑動(dòng)步長(zhǎng)(Δ)。通過參數(shù)得到時(shí)間窗口內(nèi)的評(píng)論數(shù)據(jù),將評(píng)論數(shù)據(jù)生成二部圖結(jié)構(gòu),然后轉(zhuǎn)化為評(píng)論人圖結(jié)構(gòu)并利用公式(1)~(4)計(jì)算評(píng)論人之間邊的權(quán)重,同時(shí)設(shè)置一個(gè)權(quán)重閾值(δ),帶權(quán)評(píng)論人圖中大于等于δ的邊保留,反之則刪除。使用SCAN算法對(duì)帶權(quán)評(píng)論人圖進(jìn)行圖聚類,得到評(píng)論人群組,同時(shí)利用公式(5)刪除重復(fù)的評(píng)論人群組。利用欺詐特征公式(6)~(10)計(jì)算評(píng)論人群組特征。利用公式(11)對(duì)時(shí)間窗口內(nèi)的評(píng)論人群組標(biāo)注。將實(shí)驗(yàn)數(shù)據(jù)集所得到的評(píng)論人群組特征數(shù)據(jù)分為兩部分,2012年評(píng)論人群組特征數(shù)據(jù)為訓(xùn)練數(shù)據(jù)集,2013年和2014年評(píng)論人群組特征數(shù)據(jù)為檢測(cè)數(shù)據(jù)集。用SVM算法對(duì)2012年評(píng)論人群組特征訓(xùn)練分類器,并對(duì)2013年和2014年的評(píng)論人群組特征數(shù)據(jù)進(jìn)行在線檢測(cè)。
本文對(duì)所提出算法的時(shí)效性進(jìn)行分析,在實(shí)驗(yàn)中以檢測(cè)數(shù)據(jù)集2013年第一個(gè)時(shí)間戳為開始時(shí)間戳(固定值),選擇不同的結(jié)束時(shí)間戳,來對(duì)檢測(cè)數(shù)據(jù)集時(shí)間序列范圍內(nèi)時(shí)間窗口生成的評(píng)論人群組特征數(shù)據(jù)進(jìn)行檢測(cè)。表2為檢測(cè)數(shù)據(jù)時(shí)間范圍表。
表2 檢測(cè)數(shù)據(jù)時(shí)間范圍設(shè)置表 %
從表2中的實(shí)驗(yàn)結(jié)果可以分析出,隨著檢測(cè)數(shù)據(jù)時(shí)間范圍的變大,正確率和精確率先出現(xiàn)不穩(wěn)定性波動(dòng)后降低,而召回率則先降低后增加,F1值則出現(xiàn)波動(dòng)性降低。本文所提出的算法對(duì)時(shí)間范圍是1個(gè)月的檢測(cè)數(shù)據(jù)進(jìn)行在線檢測(cè),可以使度量指標(biāo)達(dá)到整體最優(yōu);時(shí)間范圍是4個(gè)月的檢測(cè)數(shù)據(jù)可以保持較高的正確率;而隨著時(shí)間范圍的不斷變大,除召回率外各項(xiàng)度量指標(biāo)均出現(xiàn)不同程度的下降。
對(duì)算法參數(shù)進(jìn)行分析,每次只更改其中一個(gè)參數(shù)值來比較該參數(shù)對(duì)算法度量指標(biāo)的影響,從而將參數(shù)調(diào)整到一個(gè)最優(yōu)值。
時(shí)間窗口長(zhǎng)度參數(shù)(t)用于控制時(shí)間窗口的大小。表3為t參數(shù)設(shè)置表。通過觀察表3 中的參數(shù)和度量指標(biāo)可以發(fā)現(xiàn),當(dāng)參數(shù)t取不同的值時(shí),正確率、精確率和F1值先降低后增加,而召回率則先增加后降低。由此得知,參數(shù)t對(duì)全部度量指標(biāo)有一定影響。
表3 數(shù)據(jù)集中的t參數(shù)設(shè)置表 %
時(shí)間窗口滑動(dòng)步長(zhǎng)參數(shù)(Δ)用于控制時(shí)間窗口的滑動(dòng)速度。表4為Δ參數(shù)設(shè)置表。通過觀察表4中的參數(shù)和度量指標(biāo)可以發(fā)現(xiàn),當(dāng)參數(shù)Δ取不同值時(shí),正確率和精確率先增加后降低,而召回率和F1值則先降低后增加。由此得知,參數(shù)Δ對(duì)正確率和召回率有一定影響,但對(duì)精確率和F1值影響很小。
表4 數(shù)據(jù)集中的Δ參數(shù)設(shè)置表 %
評(píng)論人圖中權(quán)重閾值(δ)用于篩選評(píng)論人圖中評(píng)論人之間關(guān)系的緊密度。表5為δ參數(shù)設(shè)置表。通過觀察表5中的參數(shù)和度量指標(biāo)可以發(fā)現(xiàn),當(dāng)參數(shù)δ取不同的值時(shí),全部度量指標(biāo)均出現(xiàn)反復(fù)劇烈波動(dòng)。當(dāng)δ取值0.5時(shí),正確率和精確率效果最好,但是召回率和F1值效果最差;當(dāng)δ取值0.8時(shí),召回率效果最好,但正確率和精確率效果最差。由此得知,參數(shù)δ對(duì)算法有很大影響,且對(duì)不同的度量指標(biāo)存在互斥關(guān)系。
表5 數(shù)據(jù)集中的δ參數(shù)設(shè)置表 %
整體來看,本文算法中三個(gè)參數(shù)對(duì)全部度量指標(biāo)均有不同程度的影響,參數(shù)δ對(duì)算法的影響最大。
本文提出的在線產(chǎn)品虛假評(píng)論檢測(cè)算法,考慮了評(píng)論數(shù)據(jù)集的實(shí)時(shí)性,與其它的離線虛假評(píng)論檢測(cè)算法相比,忽略了歷史評(píng)論數(shù)據(jù),用最近一段時(shí)間的評(píng)論數(shù)據(jù)對(duì)正在發(fā)生的虛假評(píng)論欺詐活動(dòng)進(jìn)行檢測(cè),及時(shí)的對(duì)虛假評(píng)論預(yù)警。同時(shí),該算法也取得了較高的精確率和召回率,對(duì)虛假評(píng)論檢測(cè)領(lǐng)域有應(yīng)用價(jià)值。但也存在一些不足,如使用的欺詐特征過少,需要增加新的欺詐特征來提高算法的度量指標(biāo)。