陳宇峰
(蘭州大學 數學與統計學院,甘肅 蘭州 730000)
信息化時代,互聯網逐漸成為人們獲取信息的重要渠道,出現了大量帶有用戶主觀情感、語義豐富的短文本。面對還未接觸或者不夠了解的服務與產品,多數用戶習慣于通過互聯網獲取有關信息,來自互聯網的評價極大影響著用戶的最終決策與選擇。如用戶在有關平臺上預訂酒店時,在其他條件合適的情況下往往會先參考酒店已入住者提供的評論,并根據評論做出是否預定該酒店的決定。因為互聯網評價的這一作用,大量虛假評價也頻繁出現在有關平臺,而虛假的產品與服務評論不僅可能誤導消費者的最終決策,還會對商家的信用產生較大影響。因此,高效識別網絡的虛假評論具有重要的社會意義與經濟價值[2]。
在互聯網上發布虛假評論成本較低,普通用戶對于虛假評論的識別能力較差,通常很難識別出帶有欺騙性質的虛假評論,因此相關研究大多以虛假評論為實驗研究對象。
虛假評論文本的檢測與識別方法很多,包括無監督學習、半監督學習和有監督學習,深度學習模型在虛假評論識別研究得到應用。深度學習模型識別主要分為基于內容的虛假評論文本識別與基于文本特征的虛假評論識別兩種。Yan等提出的神經網絡模型對于虛假評論信息檢測的準確率達到85%;陶晶晶提出的基于并聯方式的混合神經網絡識別模型,在對虛假商品評論數據檢測中達到90.3%的準確率。
本文基于酒店英文評價數據集deceptive-opinionspam-corpus,利用Doc2Vec 將文本向量化后作為特征集,結合TF-IDF 方法,使用CNN-LSTM 模型和遷移學習方法,構建了一個虛假英文評論分類模型,并在數據集deceptiveopinion-spam-corpus 上進行對比實驗。實驗結果表明,該模型對虛假評論的檢測達到93.1%的準確率。
deceptive-opinion-spam-corpus 數據集是一個只有1 600 條評價的中小型數據集,包括對20 家芝加哥酒店真實和虛假的在線評論。deceptive-opinion-spam-corpus 數據集包含800條來自Mechanical Turk的虛假評價和800條來自TripAdvisor 與Expedia 的真實評價,其中正面評價與負面評價在真實評價與虛假評價中的占比均為1∶1,如圖1所示。
本文對deceptive-opinion-spam-corpus 數據集的英文評論文本進行了數據預處理,預處理后的英文評論文本中不包含任何標點符號、特殊字符以及阿拉伯數字。

Fig.1 Distribution of dataset data圖1 數據集中數據的分布
本文使用基準方法為傳統的Logistic 回歸算法、樸素貝葉斯分類算法以及一種能夠有效檢測虛假文本的卷積神經網絡模型,簡稱CNN1。CNN1 由三層卷積神經網絡組成,每一層卷積神經網絡都包含一層卷積層和最大池化層。Logistic 回歸是一種廣義的線性回歸分析模型,是一種用于解決二分類問題的機器學習方法;樸素貝葉斯分類模型是一種快捷簡單的機器學習分類算法,常為文本分類問題提供快速粗糙的基本方案,模型的數學基礎是貝葉斯定理;卷積神經網絡在很多領域表現優秀,可有效提取評論特征并進行識別。
對deceptive-opinion-spam-corpus 數據集進行數據預處理后,應用上述3 種算法,取訓練集與測試集的比例為8∶2,對數據集中酒店評論文本的真實性進行檢測并驗證。
最終結果如圖2 所示。Logistic 回歸算法的準確率score_1 為84.017 8%;樸素貝葉斯分類模型的準確率score_2 為79.910 7%;CNN1 的平均準確率score_3 為78.561 0%。

Fig.2 Experimental results of benchmark method圖2 基準方法實驗結果
2.3.1 數據預處理及特征提取
首先對數據集deceptive-opinion-spam-corpus 的文本與標簽數據進行預處理,再利用doc2vec 對文本數據進行特征提取并利用TF-IDF 方法將評論數據向量化。
Doc2vec 是基于Word2vec 模型提出的可以保留次序語義的語義模型,該模型在Word2vec 模型基礎上增加了一個段落標識。Doc2Vec 能將句子或段落轉化為固定長度的向量,且充分考慮了詞序對語句或文檔信息的影響,能很好結合上下文語境,保留語序信息。因此,Doc2vec 常用于處理短文本的自然語言處理問題。TF-IDF 模型是一類應用廣泛的加權技術,經常被用來進行信息檢索和數據挖掘。TF-IDF 模型的核心思想是,若某個詞匯在文本出現概率較大,而該詞匯在其他文本中出現概率較小,則此詞匯具有更好的類別判別性能和分類泛用性。
數據預處理和特征提取方式如下:①將標簽數據向量化;②對文本數據進行預處理,包括刪除特殊字符和數字,將文本中的詞語轉化為詞干形式等;③將數據集按比例隨機劃分為訓練集、測試集和驗證集;④將訓練集中的文本數據利用doc2vec 方法進行特征提取;⑤利用TF-IDF 模型將數據集賦予權重并向量化。
2.3.2 基于CNN-LSTM 的模型
卷積神經網絡(Convolutional Neural Networks,CNN)是一種專門用來處理具有類似網絡結構數據的神經網絡,其在圖像處理上很優秀,不僅運行速度快、效率高,而且準確率高。其工作原理是首先通過卷積層進行圖像特征提取,然后通過激活函數層使得特征提取達到一個非線性效果,從而使特征提取結果更好。經過多層卷積以及多層激活函數層后,通過池化層對提取出來的特征進行壓縮。最后通過全連接層,對之前提取和處理過的特征進行連接,最終得到屬于各個類別的概率值。而在文本分類領域中,卷積神經網絡可以通過多個不同大小的卷積核實現對輸入文檔內容的特征提取。
長短期記憶網絡(Long Short-Term Memory,LSTM)是對循環神經網絡(Recurrent Neural Network,RNN)的改進,是為解決一般的RNN 存在的長期依賴問題而專門設計的。它在RNN 基礎上對Cell 中的運算方式進行了改進,使得神經網絡在訓練和推斷過程中具有一定的長時依賴性,不僅無需在學習過程中保存冗長的上下文信息,還可有效降低梯度消失的風險。因此,LSTM 模型多用于時間序列分析與自然語言處理等研究。
本文使用的CNN-LSTM 模型是將CNN 模型與LSTM 模型等結合并運用在自然語言處理研究中。CNN-LSTM 模型結合了CNN 和LSTM 這兩種不同的深度學習模型的優點,在某些深度學習問題中,相比于單獨使用CNN 模型或LSTM 模型能更有效地提高模型的準確率。
2.3.3 CNN-LSTM 與遷移學習模型
卷積神經網絡的參數訓練需要大量的標記樣本數據,但本文的酒店評價樣本規模不大,因此決定引入遷移學習方法,借助已經訓練好的模型權重進一步學習。
GloVe 是一種無監督學習算法,用于獲取單詞的向量表示,模型得到的向量表示展示了詞向量空間的線性子結構。GloVe 模型是在一個全局詞—詞共生矩陣的非零項上訓練的,該矩陣列出在同一作者給定語料庫中詞與詞共同出現的頻率。GloVe 模型本質上是一個帶有加權最小二乘目標的對數雙線性模型,該模型背后的主要直覺是一個簡單的觀察,即單詞共同出現的概率可能存在某些編碼上的潛在意義,如考慮目標詞ice 和steam 與詞匯表中各種探測詞的共現概率。表1 為來自60 億單詞語料庫的一些實際概率。

Table1 Co-occurrence probability of ice and steam表1 ice 與steam 的共現概率
glove.6B.300d 模型利用常規的GloVe 模型訓練得到40 000個常用英文詞向量,每個單詞的對應詞向量均為300 維。本文利用GloVe 模型訓練得到glove.6B.300d 詞向量,在CNN-LSTM 模型中結合glove.6B.300d 英文詞向量模型,實現對deceptive-opinion-spam-corpus 數據集的遷移學習。通過遷移學習,一方面縮短了模型訓練時間,另一方面有效增強了模型的泛化能力。
此外,由于deceptive-opinion-spam-corpus 數據集數據量較小,在模型構建完成后,利用10 折分層交叉驗證對模型進行更加客觀的評估,確保驗證數據中每一類數據所占比例與原數據集中每一類數據所占比例相近,以避免極端數據選取情況下導致的實驗結果失真,更加客觀地評估模型對于訓練集之外數據的匹配程度。
在Window10 環境下,利用python 作為編程語言,以TensorFlow 作為后端,基于Keras 構造CNN-LSTM 模型。此模型共計4 段卷積網絡,每一段卷積網絡由一層卷積層和一層池化層構成。4 層卷積層的卷積核數分別為128、32、32、32。每層卷積網絡后均為一個2×2 的最大池化層。為防止模型過擬合,在每層卷積層與池化層后加入參數為0.1~0.3 之間的Dropout 層,以增強模型泛化能力。通過4 段卷積神經網絡后,將結果輸入雙向LSTM 模型中,最后進入一個全連接層(Dense)。模型結構如圖3 所示。

Fig.3 CNN-LSTM model structure圖3 CNN-LSTM 模型結構
將此CNN-LSTM 模型運用于deceptive-opinion-spamcorpus 數據集,訓練數據與測試數據的數量比為8∶2,損失函數選取binary crossentropy 函數,激活函數選取softmax 函數,優化方法選取adaptive moment estimation算法。deceptive-opinion-spam-corpus 數據集中的英文評論數據經過處理后得到的形式如圖4 所示。

Fig.4 Example of original data and its corresponding eigenvector圖4 原始數據與其對應的特征向量示例
經過40 輪次迭代訓練,模型訓練過程的準確率與損失函數變化如圖5 所示。由測試集準確率曲線和測試集損失曲線可以看出,模型在第25 輪迭代訓練之后逐漸開始過擬合。最終CNN-LSTM 模型在測試集上得到的最高分類準確率為86.5%,在訓練的第23 輪得到。

Fig.5 CNN-LSTM model training curve圖5 CNN-LSTM 模型訓練曲線(彩圖掃OSID 碼可見,下同)
在CNN-LSTM 模型基礎上,利用GloVe 模型訓練得到300 維英文詞向量模型glove.6B.300d,將其進行遷移學習,再在結合CNN-LSTM 模型在deceptive-opinion-spam-corpus 數據集上進行實驗。迭代輪次設置為40 輪,損失函數、激活函數、優化方法均與前述模型相同。最后利用10 折分層交叉驗證來對此模型的分類效果進行客觀評估。
CNN-LSTM 與遷移學習結合的模型在測試集上的準確率變化曲線如圖6 所示。其中兩條實線為10 折分層交叉驗證的驗證準確率(val_acc)迭代曲線在每一迭代輪次中的最大值(最小值)所連成的曲線,虛線為10 折分層交叉驗證在每一迭代輪次中的驗證準確率平均值曲線。其中,平均驗證準確率的最大值為93.1%,在迭代第25 輪時得到。所有訓練的最大驗證準確率為94.9%,在第25 輪K 值為7時取得。
通過實驗得到數據見表2。由表2 及上文數據可知,在基于酒店英文評論數據集deceptive-opinion-spam-corpus的真假評論分類任務中,本文提出的CNN-LSTM 與遷移學習模型有著較好的分類效果。其在deceptive-opinionspam-corpus 數據集的平均驗證準確率可達93.10%,最高準確率可達94.9%,平均準確率明顯好于其他模型。此外,對于CNN-LSTM 模型進行遷移學習后的準確率提升了約7%。

Fig.6 Model training iteration data圖6 模型訓練迭代數據

Table 2 Comparison of algorithm experimental results表2 算法實驗結果對比 (%)
將模型參數保存,對整個deceptive-opinion-spam-corpus 數據集上的評論數據進行分類,并隨機提取兩條模型分類錯誤的文本,如圖7 所示,其中(1)為虛假評論、(2)為真實評論。隨機采訪13 名受訪者,在不告知任何信息情況下,僅有4 名受訪者對于(1)與(2)的真實性判斷全部正確。因此,單從文字表達上普通讀者也難以判斷(1)、(2)兩條評論的真實性。

Fig.7 Original comment of wrong judgment of the model圖7 模型判斷錯誤的評論原文
本文利用酒店英文評論數據集deceptive-opinionspam-corpus 作為實驗數據集,在傳統的CNN-LSTM 模型上進行改進。利用GloVe 模型的遷移學習方法,有效提高了虛假英文評論的識別能力,分類精度最高可達93%~94%。相比于經典的Logistic 回歸算法和樸素貝葉斯分類算法以及CNN1算法,其分類準確率提升了16.52%~18.50%。由此得出結論,在虛假文本檢測問題上,采用深度學習方法比傳統方法有著更高的準確率,采用CNN-LSTM 與遷移學習相結合的模型能夠進一步提高檢測準確率。同時,對于其它類型的英文短文本分類問題也可嘗試使用CNNLSTM 模型并結合GloVe 模型進行遷移學習。但由于互聯網中短文本資源數量龐大且內容極為復雜多樣,因此針對該領域的可用數據集少。此外,由于深度學習模型自身的特性,一般的深度學習模型跨領域可移植性差,導致其無法精準地處理多樣化的任務與問題。因此,在實際應用中,采用遷移學習的方法仍存在提升空間,如何將小樣本學習和遷移學習方法應用于短文本情感傾向分析值得后續進一步探討。