李艷君 張海軍 潘偉民
(新疆師范大學計算機科學技術學院 烏魯木齊 830054)
盡管當前情報學界并未對謠言進行明確的定義與聲明,但大部分研究均認為謠言是在網絡空間、社交圈等信息環境中,傳遞于用戶之間,并受到公眾關注的虛假信息[1]。新浪微博作為發展火熱的網絡交流工具之一,它的內容不受限制,任何人通過成功申請賬號,就可以發表自己的所見所聞,新鮮事件,這樣謠言就很容易被發酵,使其成為熱點事件。熱點事件一旦出現,就會在微博迅速蔓延,然而網民的年齡、背景差異大,謠言傳播時部分群眾并不能很好地辨別,再加上從眾心里,謠言擴散變得更加容易,它們的出現,給人們難免會帶來恐慌,尤其是部分老人,更加偏向相信一些謠言,給人們身心健康帶來不必要的困擾。所以對新浪微博進行謠言檢測研究具有非常重要的現實意義。
目前基于用戶行為特征的謠言檢測主要從機器學習方法和深度學習方法兩方面來進行謠言檢測。在機器學習方面,通過分析提取用戶行為特征及用戶信息特征,采用貝葉斯[2]、決策樹[3~5]、支持向量機[6]、隱馬爾可夫模型[7]等來進行謠言檢測。而在深度學習方面,主要采用的方法有循環神經網絡RNN,卷積神經網絡CNN,長短時記憶網絡LSTM,注意力機制等方法。如Ma[2]等將一個微博事件使用兩種不同的文本表示法,即詞袋模型和神經網絡語言模型,并提出一種基于神經網絡的模型學習文本的特征表示來進行謠言檢測。Chen等[9],利用用戶評論中提取的特征,循環神經網絡結合注意力機制,提高了謠言檢測準確率。Ruchansky 等[10]提出一種CSI(capture,core,integrate)模型,采用RNN方法捕捉用戶行為進行分類。劉政等[11]提出了基于卷積神經網絡的謠言檢測方法,準確率較之前研究提升了很多。Li[12]等使用共享的長短期記憶(LSTM)將用戶可信度信息整合到謠言檢測層中,將注意力機制并在謠言檢測過程中,能得到很好的分類效果。廖祥文等[13]采用GRU 網絡來進行謠言檢測,將微博文本按照時間段分割,加入了局部用戶信息和文本特征信息從而提高了準確率。
以上各種基于用戶行為的謠言檢測,雖然都能取得很好的效果,但對日益增長的謠言檢測的需求而言,現有的基于用戶行為特征的謠言檢測方法還存在一些不足,主要表現在兩方面:一方面是在前人基于用戶的行為特征進行檢測謠言時,沒有留意句子之間關系的處理,本文通過ERNIE 方法預訓練處理句子之間的關系,來增強句子之間的關系。另一方面是準確率的提高??紤]到用戶的行為特征,提出UDUC算法來提高謠言檢測的準確率。
本文主要選取用戶行為特征作為主要參數,結合用戶信息特征與微博文本特征達到謠言檢測的目的。從眾多用戶行為特征中選取了準確率不小于78%的4 個效果相對比較明顯的特征。同時選取了效果比較好的3 個用戶信息特征。將用戶行為特征和用戶信息特征以及微博文本特征組合在一起,對微博謠言信息進行檢測,來提升謠言檢測的效果。選擇的微博中用戶行為特征主要有:主動發布微博(發布)、轉發微博帖子(轉發)、微博帖子點贊(點贊)、評論微博帖子(評論)等行為。選擇的用戶信息特征有用戶的昵稱(昵稱),用戶的簡介(簡介),用戶在微博的認證(認證)等其他重要的用戶信息,具體如表1所示。

表1 用戶特征表
為了提升謠言檢測的準確率,通過分析微博數據集中的用戶行為特征和用戶信息特征,以及微博文本內容,查閱國內外相關的謠言檢測方法,提出應用ERNIE 模型和DPCNN 模型,將兩個模型相互融合,微調整模型的結構,使其提升檢測的效率與準確率。模型結構圖如圖1所示。

圖1 基于用戶行為特征的微博謠言檢測模型
大體結構分為三層,分別為預訓練數據層,特征提取層,分類層,最后輸出結果。首先將微博文本序列向量化,使用ERNIE 預訓練處理好的數據集,作為模型的輸入,之后使用DPCNN 處理用戶信息和文本特征,最后鏈接全連接層,輸出分類的結果進而實現微博謠言檢測。
2.2.1 預訓練數據層
預訓練數據層主要應用ERNIE 模型。ERNIE模型通過連續學習獲取詞和句子之間的語義關系,通過語法級別預訓練任務,來更好地處理句子之間的關系。
構建詞法級別預訓練任務中的知識掩碼任務,用來獲取微博文本中的語義信息。構建關系預測任務來預測微博文本中的關鍵詞,增強獲取微博文本中關鍵詞的能力。構建語法級別的預訓練任務,來獲取訓練數據中的語法信息。微博文本段落中不同句子之間的關系可以通過句子們的重排序任務使預訓練的模型學習到。這個過程就相當于一個多分類任務,如式(1)所示,一個n 分類任務,將微博文本隨機分成i 段,以此來判斷句子之間的關系。
構建三分類任務來判斷句子對之間的位置關系(包括相鄰的句子、同一個微博文本中非相鄰的句子、不是同一個微博文本中的句子)這3 種類別的關系,以便辨別句子之間的相關性,以此來更好地處理句子之間的關系。
2.2.2 特征提取層
特征提取層應用的是DPCNN 模型。DPCNN有4 個明顯的優勢來提取特征。第一個是用多尺寸卷積層進行卷積。第二個是將維度固定,對特征進行向下采樣。第三個就是采用了等長卷積。第四個是應用了殘差結構,幫助解決梯度消失和梯度爆炸問題,使訓練效果更好。
假設輸入固定的序列長度為l,步長為s,卷積核大小為n,當輸入序列長度不足時,兩端各填補f個零,那么輸出序列p為
選擇等長卷積,在每個等長卷積后使用大小是3和步長是2的池化層。目的是把微博文本的長度壓縮為原來的一半。之前是只能感知到2 個詞(PAD、以前)的長度的信息,經過該池化層后就能感知到4 個詞(PAD、以前、有、吃到)長度的信息。以此來更好地處理特征。
2.2.3 分類層
將特征提取層得到的輸出結果輸入Softmax層,分類輸出結果S,判定該微博是否為謠言。
其中,Relu 為線性修正單元激活函數,W 為得到的權重矩陣,h為輸入的信息,b為偏置值。
應用經典的2016 年Ma[14]所提供的公開數據集中的信息,其中包含的用戶行為特征有,發布微博,轉發微博,點贊微博,認證等,還包括用戶的信息如用戶的昵稱,簡介,描述以及文本內容,用字典提取出需要的特征。首先去掉停用詞和特殊字符,之后按照7∶2∶1 的比例,將數據集分為訓練集,測試集和驗證集。其中謠言事件為2313 件,非謠言事件為2351件,共計微博總數為3805656條。
實驗中處理的微博文本數據,用ERNIE 模型進行處理,句子長度設置為140。DPCNN 中的過濾器長度采用3,步長設置為2,dropout 設置為0.8,卷積核的數量設置為250,隱藏層的數量設置為768。輸入的長度設置為256,如果數量不夠時,采用0 填充。并且訓練任務和測試任務以及驗證任務的比例設置為7∶2∶1。最后通過Softmax 層進行劃分。本文中的評價指標就采用常用的準確率(P)見式(4)、召回率(R)見式(5)以及F1 值(F1)見式(6)。
其中,Tr表示正確識別謠言的數量;Fr表示未能正確識別謠言的數量;Fn表示沒能識別出來是否是謠言的數量。
3.3.1 用戶行為特征的參數選擇
對不同的用戶行為特征進行實驗分析,數據集中所包含的用戶特征有:轉發數量、用戶ID、粉絲數量、轉發微博文本、用戶描述、用戶簡介、所在城市、省份、朋友數量、用戶所在地、粉絲數量、驗證與否、原始微博文本、圖片、狀態、創建時間、昵稱、性別、評論數量、用戶名等一系列特征。通過實驗最終選取準確率在78%之上的有效的用戶行為特征有:發布微博的文本、轉發微博的文本、用戶的昵稱、用戶的簡介、用戶的微博認證、用戶點贊和用戶評論等行為。這些特征都可以從數據集中直接獲取。
3.3.2 特征有效性的驗證
為了證明選取的特征是有效的,使用上節提到的選取有效的特征來驗證模型加入特征是對提高謠言檢測的效率有幫助。首先,將每個特征分別加入到模型中進行訓練,檢測結果為謠言的特征昵稱得到的準確率為79%,簡介得到的準確率為81.2%,認證結果為84.5%,發布結果為87.7%,轉發準確率最高為89.8%,點贊為82.2%,評論的準確率為83%,得到的所有結果,采用常用的評價指標:準確率P、召回率R 以及F1 值。其中T 表示分類結果為謠言,所有的實驗結果如表2所示。

表2 特征驗證結果表
從表2 可以看出,本文驗證的特征分別可以得到很好的檢測效果。其中轉發的特征最有效,準確率89.8%,F1 值90%,從表中可以明確的看出選取的各個特征在融合之后,對提高檢測的準確率是有效的。
為了進一步驗證特征的有效性,分別對不同的特征進行融合,作對比實驗。由于昵稱、簡介、認證三個特征在上面的實驗中效果還是不盡如人意,但是三個特征結合在一起的結果是達到預期目標的,所以將三個特征作為固定特征,再加上剩下的用戶行為特征,分別做不同的組合實驗,來進一步驗證特征的有效性。
首先固定特征加上發布特征,得到的準確率為0.796,固定特征加上轉發特征得到的準確率為0.801,固定特征加上用戶點贊特征得到的準確率為0.786,固定特征加上評論特征得到的準確率為0.831。固定特征加上發布與轉發兩個特征得到的準確率為0.873,依此類推,再依次加上點贊和評論兩個特征,得到的準確率分別為,0.886,0.901。詳細的數據信息如圖2所示。

圖2 固定特征與不同特征組合的結果
通過圖中的數據說明,加入單個的特征提升的效果不明顯,甚至要低,如圖中所示點贊的用戶行為特征對比不加入特征的準確率(0.798)低0.012,只有特征相互融合兩個或兩個以上,可以有更加明顯的提高。如圖2 所示,發布與轉發特征的融合準確率提升了0.075,轉發發布和點贊的效果提升了0.088,本文所選出的所有特征融合之后得到的結果提升了0.103,所以用戶行為特征對謠言檢測的準確率提升是有所幫助的。
3.3.3 不同模型的分類結果對比
1)模型加入特征與否的比較
本文首先只用微博文本進行分類,將得到的結果與加入用戶行為特征進行分類的實驗作對比來驗證特征的有效性,在不加入特征的情況下,得到的準確率為79.82%、召回率80.35%以及F1 為80.08%,得到的結果不盡如人意。由上節可知,所有將選擇出來的特征組合之后來驗證該條微博是謠言的分類結果,兩項結果對比如表3所示。

表3 模型分類結果(%)
由表3 可知,模型加上用戶行為特征后召回率為90.2%,F1 值為90.15%,準確率為90.10%,所以提出的模型有效,分別比不加入特征的召回率,F1和準確率提高了9.85%,10.07%,10.28%。并且根據上一節得到的結果可知,所有特征的組合比每個單獨的特征和部分組合特征的效果更好。
2)與其他實驗模型的比較
為了驗證謠言的分類結果是有效的,采用RNN模型[14],LSTM模型[9],GRU模型[13]和本文提出的模型作對比。其中RNN 模型是首先被用到謠言檢測中的深度學習模型,并且與機器學習方法比較效果提升的很多,用該典型模型得到的實驗結果,更加有說服力。LSTM 模型是RNN 模型的升級版,解決的RNN 的記憶力問題,在謠言檢測方面應用與RNN 相比較更加廣泛。而GRU 模型又是LSTM模型的變體,應用起來更加便捷,本文的模型與這些應用廣泛的模型相比較更具有說服力,其實驗結果如圖4所示。
從圖3 中可以看出,RDUC 方法的分類效果的準確率高于其他,主要是因為ERNIE 和DPCNN 兩個模型的結合,可以雙重解決文本長距離依賴的關系問題,ERNIE 還可以連續學習,縮短處理數據的時間。DPCNN 緩解梯度消失的問題同時也加快了特征的傳遞。從圖中可以看出,模型得到的結果是最好的,相比于RNN 模型,準確率提高了8.5%;相比于LSTM 模型,準確率提高了5.5%;相比于GRU模型,準確率提高了3%,可見本文提出的模型是有優勢的。但是該模型處理實時數據時性能需要進一步優化提升,接下來的工作會重點集中在這一部分,來更好地完善模型。

圖3 不同模型的實驗結果對比圖
本文提出了基于用戶行為特征的微博謠言檢測方法,主要使用用戶行為特征作為主要參數,應用ERNIE 和DPCNN 兩個模型的相互結合,結合ERNIE 模型的優點高效的處理微博文本的上下文信息。結合DPCNN 的優點解決文本的長距離依賴問題,更進一步的提高模型的準確率。通過對比實驗表明,本文所提出的RDUC 方法其模型的準確率達到了90.1%,比其他模型效果更好一些,證明了模型的有效性。
本文目前得到較好的結果,但還是有提升的空間,在數據處理方面主要應用的是過去發生的謠言事件,沒有實時的謠言信息,不能保證達到實時檢測謠言的效果。因此,接下來的工作是結合用戶行為特征希望找到更加合適的方法來實現高準確率的實時謠言檢測。