原福永,劉宏陽,王 領,馮凱東,黃國言
(燕山大學 信息科學與工程學院,河北 秦皇島 066004)
E-mail:hyliu767289@qq.com
隨著互聯網規模的不斷增長,在線評論的數量和影響力也在不斷的增加,尤其是在電商領域.例如,截止到2018年的第4季度,美國的點評網站Yelp已經擁有1.77億條評論.據統計,在美國有82%的互聯網用戶在購物之前會閱讀評論,并且如果這些用戶確信自己會有好的體驗時,68%的用戶愿意為同樣的產品或服務多付15%的錢.面對如此巨大的利益,商家可能會鼓勵用戶撰寫相關商品的好評或者雇傭水軍對其競爭者的產品撰寫差評,給對方造成不良的影響.文中垃圾評論是指一些沒有價值的評論,主要包括虛假的評論和無關的評論.針對上述的影響,如何有效的檢測出垃圾評論是一個急需解決的問題.
前人在垃圾評論檢測上的工作主要集中在基于文本本身進行垃圾評論的檢測,這也是目前較為常見的檢測方法.通過對文本進行語法分析,例如結合詞袋特征[1];對文本進行語義分析,例如語義相似性計算[2];對文本的文體及元數據進行分析,例如結合元數據特征[3]等.雖然這些方法能夠較好的應用于垃圾評論的檢測,但是大多數方法在提取評論文本的特征時忽略了其上下文的信息,不能較好的挖掘其中的有效信息,同時在只考慮評論文本的情況下,準確率有待于進一步提高.
針對上述問題,本文在考慮評論文本的基礎上,引入了評論者特征以及評論商品的特征,提出了一種融合多特征的垃圾評論檢測模型.本文的主要貢獻包括:
1)在使用卷積神經網絡處理評論文本時,融入了全局-局部注意力機制,局部注意力用于在卷積層之前選擇具有信息性的關鍵詞,全局注意力用于忽略評論的噪音和不相關的詞匯并捕捉全局的特征.
2)使用融入注意力機制的卷積神經網絡處理評論文本,構建評論文本特征提取模型;使用卷積神經網絡處理商品信息,構建商品特征提取模型;使用普通神經網絡處理評論者信息,構建評論者特征提取模型.
3)將三個模型融合,進一步給出垃圾評論檢測模型.
本文其余部分的組織如下:第2章主要分析了與本文內容有關的相關工作.第3章給出了本文的方法與模型.第4章設計了實驗并給出結果分析.第5章總結并展望未來的工作.
卷積神經網絡在處理文本方面,具有提取復雜特征的優越性,越來越多的被用于自然語言處理,比如文本分類[4],情感分析[5]等.2014年,Kim[6]首次提出了使用卷積神經網絡處理文本,證明了其在多個自然語言處理任務中都具有一定的優越性.Thien等人[7]在處理文本時避開了傳統方法中復雜的特征提取工程,將卷積神經網絡應用到實體關系中,自動從句子中學習特征.Facebook的Alexis等人[8]構建了一個深度卷積神經網絡模型,使其能夠直接在文本的字符級別進行操作,通過實驗證明該模型在多個文本分類任務上都取得了重大的突破.而垃圾評論檢測就屬于一種文本分類問題.
在使用注意力機制處理文本方面,基于注意力機制的神經網絡已經成功的應用在多個領域當中,比如機器翻譯,文本分類等.Bahdanau等人[9]將注意力機制用到了神經網絡機器翻譯上,很好的解決了神經網絡在翻譯時可能會丟失必要信息的問題.Wan等人[10]提出了一種多層網絡注意力模型,該模型可以進一步利用文本術語之間的間接關系,獲得更精準的信息.Seo等人[11]提出一種全局-局部注意力與卷積神經網絡相結合的方法實現了推薦系統領域中的可解釋推薦.
在垃圾評論檢測方面,Jindal等人[12]首先使用了監督學習的方法來研究垃圾評論,其主要側重于使用自然語言處理從文本中提取評論特征.Li等人[13]提出了一種分類框架,他們認為現有的監督學習算法只適用于一個特定的領域,并嚴重依賴特定的詞匯,為了解決該問題,他們嘗試通過創建跨域的數據集來提高算法對垃圾評論的理解.

圖1 垃圾評論檢測模型框架圖
綜上所述,單獨的使用卷積神經網絡在處理文本上已經有一定的成果,然而使用結合注意力機制的卷積神經網絡可以獲得更好的結果.本文在進行垃圾評論檢測時,除了使用該方法處理評論進行檢測以外,還結合了評論者和評論商品的特征,以提高檢測的準確性.本文提出的垃圾評論檢測模型框架如圖1所示.
本文提出的融合多特征的垃圾評論檢測模型結構如圖2所示.該結構由4部分組成,第1部分是商品特征提取模型,使用卷積神經網絡;第2部分是評論文本特征提取模型,使用融合全局-局部注意力機制的卷積神經網絡;第3部分是評論者特征提取模型,使用普通的神經網絡;第4部分是垃圾評論檢測模型,將3部分特征融合進行垃圾評論檢測.

圖2 融合多特征的垃圾評論檢測模型結構圖
3.1.1 詞嵌入
為了將評論文本輸入到模型中進行處理,需要對文本進行向量化表示,即將文本分割為單詞,并將每個單詞轉換為一個向量.同時,為了使每個詞向量能夠包含更多的信息,在此使用詞嵌入技術對文本處理.使用Dr表示評論文本,文本長度為T,先將文本中的每一個單詞用one-hot編碼方式的向量表示,即ei∈RS,S代表所有文本中單詞的總數.通過對每個單詞進行計算到一個詞嵌入向量xi=(x1,x2,…,xd),xi∈Rd,如式(1)所示,d代表詞嵌入的維度.We代表詞嵌入層中的權重,We∈Rd×T.
xi=Weei
(1)
3.1.2 局部注意力模型

(2)
(3)
其中參數矩陣的維度w代表滑動窗口的寬度,d代表滑動窗口的長度也是詞嵌入的維度.*運算符表示兩個矩陣中相對應的元素相乘,并將相乘后的結果相加.g()代表激活函數,在此使用sigmoid激活函數.得到代表每個單詞的注意力值,值越高則代表該單詞在文本中具有更高的信息性.將其與xi相乘構成具有注意力權重的詞向量表示,如公式(4)所示.
(4)

(5)
zLocal(j)=max(ZLocal(:,j))j∈[1,nLocal]
(6)
3.1.3 全局注意力模型

XGlobal=(x1,x2,…,xT)
(7)
(8)
其中,i∈[1,T].
由此得到使用全局注意力時每個單詞的注意力值,再與相應的詞嵌入向量相乘得到具有注意力權重的詞嵌入向量,如公式(9)所示.
(9)

(10)
(11)
其中,i∈[1,T-wf+1],j∈[1,nGlobal].g()代表Relu激活函數,最后使用最大池化,提取出較為顯著的特征,構成具有全局注意力的文本表示,如公式(12)所示.
zGlobal(j)=max(ZGlobal(:,j))j∈[1,nGlobal]
(12)
3.2.1 評論者特征提取模型
評論者的特征主要表現了評論者的個人信息.首先,將評論者的數據以向量化的形式表示,x=(x1,x2,x3,…,xi),為了使模型訓練時收斂更快,效果更理想,需對輸入的數據進行歸一化處理,如公式(13)、公式(14)、公式(15)所示.
(13)
(14)
x=(x-μ)/σ2
(15)
在歸一化后,將其輸入到神經網絡中進行特征的提取,該神經網絡由4個全連接層構成,1個輸入層,2個全連接層,1個輸出層,每一層的單元數用n[i]表示,如公式(16)所示.
(16)

3.2.2 商品特征提取模型

(17)
(18)

(19)
(20)

通過以上的三個特征提取模型,可以得到評論文本在局部注意力上的特征zLocal,在全局注意力上的特征zGlobal,評論者的特征zu,評論商品的特征zp.為了統一考慮這些特征,需對它們進行連結(concatenate)操作,如公式(21)所示,從而構成垃圾評論檢測模型的輸入.
zin=zLocal⊕zGlobal⊕zu⊕zp
(21)
其中,?表示連結操作,即將這些向量在一個維度上相連,構成一個新的向量.接下來將該向量輸入到神經網絡中,該神經網絡有一個輸入層(連結層),兩個全連接層和一個輸出層.最終通過神經網絡的計算,輸出層輸出該評論是否為垃圾評論,如公式(22)所示.
(22)

通過上文可知,本文提出的垃圾評論檢測模型是將評論特征提取模型、評論者特征提取模型、商品特征提取模型三個模型融合,并通過神經網絡的進一步訓練,得到最后的結果.該模型采用端到端的方式進行訓練,同時輸入評論的文本,評論者的信息以及評論商品的信息進行訓練,輸出的結果表示該評論是否是垃圾評論.
為了使實驗在真實的數據集上進行測試與對比,使用Python爬蟲程序爬取國外知名點名網站Yelp上的相關數據,在Yelp網站上官方認為有用的評論會展示給用戶,將垃圾的評論隱藏在網站的底部.本文中主要爬取了Yelp網站中關于飯店的信息,爬取的數據包括評論文本信息,評論者信息,評論商品信息,表1中展示了數據集中的基本信息.
表1 數據集基本信息
Table 1 Data set basic information

字段描 述實例評論評論者對飯店的評論First time to this restaurant very impressive……朋友個數評論者擁有的朋友個數20評論總數評論者的評論總數40照片數評論者上傳的照片總數40評分評論者對該飯店的評分2評論中有無照片評論者該評論中有無照片0(表示沒有照片)是否垃圾評論該評論是否是垃圾評論1(是垃圾評論)飯店標簽以標簽的形式描述該飯店Breakfast,Brunch,Burgers,Mexican
在本次的實驗中,共爬取了1200個飯店的32萬條數據,將這些數據隨機打亂,選取其中的30萬條作為訓練集,1萬條作為驗證集,1萬條作為測試集.
4.2.1 實驗數據處理
首先對得到的數據進行清洗,去除其中的空值和重復的值.接下來,去除評論文本和飯店標簽信息中的非英文詞匯以及非語言性詞匯,比如url地址,標點符號,最后得到輸入到模型中的評論文本Dr和標簽信息Dp.然后將評論者的特征信息按照文中的3.2.1部分進行數據的歸一化.
4.2.2 實驗評估指標
選擇準確率(accuracy),均方根誤差(rmse)作為本次實驗的評估標準.準確率能夠反應模型分類的準確性,均方根誤差能夠衡量預測值與真實值之間的偏差.準確率與均方根誤差的計算如公式(23)、公式(24)所示.
(23)
(24)
4.2.3 實驗參數設置
本實驗在詞嵌入層使用預先訓練的基于單詞語料庫統計的Glove詞嵌入,詞嵌入的維度選擇100,只考慮數據集中前60000個最常見的單詞.在局部注意力模型中,過濾器窗口大小為5,過濾器個數為200.在全局注意力模型中,過濾器窗口的大小取[3,5],兩類過濾器的個數分別為100.在模型融合后的全連接層中,為了防止過擬合,加入50%的dropout.使用Adam作為訓練的優化器.
本次實現了3個對比實驗與本文提出的模型進行比較.首先是Yao等人[14]提出的基于詞袋模型的樸素貝葉斯分類器并結合語義分析進行垃圾評論檢測的方法,該方法在檢測時也加入了評論文本特征,評論者特征,評論商品特征.同時為了驗證在垃圾評論檢測時加入外部特征的效果,實現了使用全局-局部注意力機制下的考慮評論文本特征的模型與本文提出的融合多特征的檢測模型進行對比.并且為了驗證使用注意力機制在評論文本處理上的優勢,本文實現了Kim[6]提出的使用基本的卷積神經網絡處理文本(TextCNN)的方法與具有全局-局部注意力機制的處理文本方法進行對比.
每個實驗的準確率與均方根誤差如表2所示.
表2 實驗評估結果
Table 2 Experimental evaluation result

方 法準確率均方根誤差本文方法0.86810.0951Yao等[14]方法0.7756 0.1873注意力機制處理文本(本模型中只考慮文本的部分)0.69050.2953Kim[6]方法0.63010.3542
首先,我們可以從評估結果中得出,進行垃圾評論檢測時,考慮外部特征能明顯的提高檢測的準確率,本文方法和Yao等人[14]的方法能達到86.81%和77.56%的準確率,明顯高于后兩種方法.
其次,在同樣考慮外部特征的情況下,本文的方法在表現最好時比Yao等人[14]的方法準確率高出9%左右,Yao等人[14]的方法在特征的提取上使用了人工的方法確定輸入的特征,并且在評論文本的處理中使用詞袋模型,只考慮文中單詞的頻率,忽略了評論文本中的上下文信息,而本文的方法通過端到端的訓練過程自動的提取輸入信息的特征,這也體現出了本文的方法在特征提取上的優越性.
同時,在本文中不考慮外部特征的情況下,使用全局-局部注意力機制處理文本得到的準確率比Kim[6]的方法高出了6%,由于在只使用卷積神經網絡提取上下文特征時會平等對待每個單詞,而在使用注意力機制后,每個單詞在提取時會具有一定的權重,全局注意力在提取上下文特征時能夠減少不太重要的單詞的影響,局部注意力在提取上下文特征時能夠更加關注具有信息性的詞匯,這也驗證了本文中使用全局-局部注意力機制提取評論文本的上下文特征是可行的.
本文提出了一種融合多特征的垃圾評論檢測模型,該模型在考慮評論文本的基礎之上,加入了評論者的的特征以及評論商品的特征,通過將三者的特征統一考慮進行垃圾評論的檢測.同時,在提取評論文本的特征時使用全局-局部注意力機制,使得在提取評論文本的特征時能夠更加關注關鍵性的信息,忽略文本中不必要的噪音,并且使用卷積神經網絡提取評論商品的信息,使用具有全連接層的神經網絡提取評論者的特征.本文通過爬取真實的數據,對提出的模型進行測試與驗證并取得不錯的效果,本文的模型在垃圾評論檢測上的準確率高達86.81%,與其他的方法相比有著較大的提高,能夠較好的提取特征信息.
接下來,將考慮進一步提升模型對評論文本特征提取的能力,并且結合更多的外部特征進行垃圾評論的檢測,比如時間信息.同時,也會考慮對模型進行擴充和改進將其應用于垃圾評論者的檢測等相關領域.