馮茹嘉 張海軍 潘偉民
(新疆師范大學計算機科學技術學院 烏魯木齊 830000)
隨著網絡的迅速發(fā)展,各種社交軟件蓬勃發(fā)展。新浪微博作為一種共享、開放、便捷、及時的媒介,成為人們發(fā)布和傳播信息的重要渠道。新浪微博的月活躍用戶已達5.86億,用戶數量龐大且類型跨度較大,使其成為社會謠言傳播的主要渠道之一。謠言泛濫問題在微博上十分普遍,給人們的日常生活帶來了困擾,影響了社會的穩(wěn)定。因此,針對微博謠言的檢測具有重要的現實意義。
當前自動識別謠言的方法主要包括:1)基于機器學習的方法:通過構建分類器來對文本或多媒體內容進行分類,判斷其是否為謠言。2)基于社交網絡分析的方法:通過分析社交網絡中的信息傳播路徑和影響力,來判斷某個信息是否為謠言。3)基于自然語言處理的方法:通過對文本數據進行處理和分析,提取其中的特征和模式,來判斷其是否為謠言。4)基于知識圖譜的方法:通過構建知識圖譜,將已知的真實信息和謠言信息進行關聯和比較,從而判斷新出現的信息是否為謠言。5)基于深度學習的方法:通過利用深度神經網絡結構對文本、圖像等信息進行自動識別和分類,來判斷其是否為謠言。
本文提出了一種基于預訓練語言模型的早期微博謠言檢測方法。首先分別使用ELMO、BERT和XLNet的預訓練模型對謠言數據進行預訓練,然后將預訓練后的結果作為模型的初始參數,并利用Transformer 編碼器學習微博謠言數據的深層語義特征,最后通過softmax 函數得到謠言的分類結果,并比較三種預訓練方式在謠言檢測任務中的效果。
目前針對謠言檢測任務,大多數研究者將其視為一個二分類問題。謠言檢測方法經歷了基于傳統(tǒng)手工特征提取和基于深度神經網絡模型的兩個發(fā)展階段。
早期的謠言檢測工作主要側重于尋找高區(qū)分度的特征,基于特征選擇構建分類器。文獻[1]通過Twitter 數據提取四類特征,并進行特征選擇,之后基于選擇后的特征構建J48 決策樹分類器,最終模型的分類效果良好。Qazvinia[2]則通過提取用戶行為特征與深層文本語義特征相結合,使用貝葉斯分類器進行謠言分類。而Kwon 等[3]則強調了謠言數據中情感詞匯特征和時間特征的重要性,并構建了時間序列模型,最終在召回率上得到較大的提升。Yang[4]等基三方面特征:地理位置、用戶特征和內容特征,基于新浪微博數據集,利用支持向量機構建了謠言檢測模型,準確率為78.7%。
基于深度神經網絡模型的謠言檢測方法克服了手工特征提取的局限性,具備自動學習深層特征的能力。Ma 等[5]按照時間序列,對每一個事件下的微博進行建模,使用循環(huán)神經網絡,捕獲文本隱藏表示,實現了較好的分類性能。文獻[6]引入用戶行為特征,提出一種結合自動編碼器構建的循環(huán)神經網絡模型,提高了謠言檢測性能。Yu等[7]指出RNN 在謠言早期檢測方面的不足,并使用卷積神經網絡(CNN)構建謠言檢測模型,在早期檢測任務中表現出良好的效果。文獻[8]提出一種CNN+GRU 的謠言檢測模型,通過句向量化提取微博數據的局部和全局特征,實現了微博謠言檢測并取得了良好的識別性能。
早期的詞向量表示方法是一種靜態(tài)文本表示,僅將下游任務的首層初始化,而其余網絡結構仍需從零開始訓練,這種預訓練方法對深層語義信息的表達力不足,此外,傳統(tǒng)文本處理方法難以解決詞語歧義問題。相比之下,預訓練語言模型通過在多層網絡模型上進行預訓練,可以為下游任務的多層網絡模型提供更好的初始化。這不僅大大提高了模型的訓練速度,還使得深層語義信息的表達能力得到優(yōu)化。作為一種動態(tài)的學習詞向量方法,預訓練語言模型會根據上下文語境動態(tài)調整詞向量的表示,增強了詞向量表示的泛化能力,有效地解決了多義詞的詞向量表示問題。
本文通過多種預訓練語言模型對微博數據進行預訓練,并用以初始化下游的謠言檢測任務,同時學習微博數據淺層語義信息和深層語義信息,對歧詞進行準確的詞向量表示,加快謠言檢測模型的訓練速度,提高謠言檢測的精確率。

圖1 基于預訓練語言模型的早期微博謠言檢測方法流程圖
ELMO[9]屬于一種自回歸語言模型(autoregressive),通過兩次帶殘差的雙向LSTM 來構建文本表示,利用前向LSTM 捕捉上文詞義信息,后向LSTM捕捉下文詞義信息,消除了詞語歧義。對于由N個單詞組成的序列,預測第k 個詞的前項LSTM 模型預測概率可表示為
預測第k 個詞的后項LSTM 模型預測概率可表示為
優(yōu)化目標為最大化對數前向和后向的似然概率:
其中,Θx表示映射層的初始共享參數,和表示長短期記憶網絡前向和后向參數,ΘS表示softmax 層的參數。
對于第k個單詞在L層的雙向LSTM語言模型,共有2L+1個表征:
最終第k個單詞的通過ELMO模型得到的文本表示為
γtask是縮放系數,允許任務模型去縮放整個ELMO向量,是softmax標準化權重。
BERT[10]屬于一種自編碼語言模型(autoencoding),利用Transformer 編碼器實現了雙向信息融合,通過將多個Transformer Encoder 層層堆疊實現了BERT 模型的搭建。BERT 模型包含三個嵌入層:字嵌入、文本嵌入和位置嵌入,BERT 模型將三者的加和作為模型輸入,如式(6)所示:
其中,E 表示模型輸入,Esegment表示字向量,Eposition表示文本向量,Etoken表示位置向量。如圖2所示,一條謠言文本“喝高度白酒可預防新冠病毒”輸入后,經過三個嵌入層后,再將其作為Transformer的輸入向量。

圖2 BERT模型圖
BERT 作為一種預訓練語言模型,它使用大規(guī)模文本語料進行模型訓練,逐步優(yōu)化模型參數,使得模型輸出的文本語義表征更加契合自然語言的本質。為完成預訓練,BERT進行了兩個監(jiān)督任務:Masked LM和Next Sentence Prediction。
Masked LM 任務可以類比為完形填空問題,即在給定的句子中,隨機遮蓋一定比例的詞語,然后通過剩余的詞匯來預測被遮蓋的詞語。這個任務使得模型需要去理解上下文,從而更好地進行詞匯預測和語言生成。對于在句子中被覆蓋的詞匯,其中只有10%依舊保持原詞,10%替換為一個任意詞,剩余80%采用一個特殊符號[MASK]替換。這將賦予模型一定的糾錯能力,迫使模型在預測詞匯時更多地依賴于上下文信息。
Next Sentence Prediction 任務可以理解為段落重排序問題,通過給定一篇文章中的兩個句子,來預測是否為該文章中的前后兩句。在實際預訓練過程中,通過50%正確原始上下句和50%原始上句搭配隨機下句來學習句子間的關系。
BERT 模型通過聯合訓練上述兩個任務,進一步提高了模型在自然語言處理任務中的表現。通過聯合訓練這兩個任務,BERT 模型不僅能夠優(yōu)化模型輸出的詞向量表達能力,還能為下游任務提供更加準確的參數初始化,從而取得更好的性能。因此,BERT 模型目前被廣泛應用于各種自然語言處理任務中,并取得了非常顯著的效果。
XLNet[11]是一種泛化自回歸語言模型,它融合了自回歸語言模型和自編碼語言模型的優(yōu)點,并避免了它們各自的局限性。與傳統(tǒng)語言模型只能在一個方向上捕獲語義不同,XLNet 可以實現雙向語義理解,XLNet采用的是Permutation Language Model(PLM)方法,即將文本序列分解為若干排列序列,并在每個排列序列上執(zhí)行語言建模任務。具體而言,XLNet 先通過一個置換函數生成一個隨機的排列序列,然后利用該排列序列和其他信息來建立條件概率模型,對當前位置的單詞進行預測。這樣,每個位置都能夠利用整個序列的信息進行預測,從而消除了BERT 中的獨立性假設問題,使得模型能夠更好地捕捉序列中的雙向依賴關系,提高了模型的性能和泛化能力。
例如當給定一個謠言文本x={x1,x2,x3,x4},來預測x3時,使用一種序列語言建模目標,文本序列的排列方式應該有4!種,但為了減少時間消耗,實際只能隨機的采樣4!里的部分排列,比如:2→3→4→1,3→2→1→4,1→4→3→2,4→2→1→3。下面展示了分解方式為1→4→3→2的圖示。
如圖3 所示,當預測x3時可以充分利用到x1和x4的信息,而看不到x2的信息。當遍歷完上述4 種排列方式后,模型就能獲得所有的上下文信息,從而實現雙向語義的同時獲取。此外,需要注意的是,輸入依然是原始句子的順序,而序列的排列則通過Attention Mask 來實現。在編碼x3時僅讓它依賴于x1和x4的信息,而把x2的信息[masks]掉。

圖3 排列語言模型圖
最終優(yōu)化目標如式(7)所示:
其中,用zt表示第t個元素,z ≤t-1 表示z的第1 到第t-1個元素。z是集合ZT的其中一種排列方法,ZT表示所有排列方式的集合。
本文通過融合了多頭注意力機制(Multi-head self-Attention mechanism,MHA)的雙向GRU 網絡模型來實現微博謠言檢測。雙向GRU 網絡對學習句子序列特征有非常好的效果,多頭注意力機制可實現對全局范圍內的文本上下文深層語義特征的提取,因此,二者的結合有助于全面理解文本信息,從而更好地實現微博的謠言識別任務。
門控循環(huán)單元是循環(huán)神經網絡的一種變形,它加入了兩個門控信號:更新門和重置門。更新門判斷當前詞是否要帶入到下一個狀態(tài)中;重置門用來控制當前詞的是否被忽略,當重置門越小時,前一時刻的信息被忽略程度越大。
本文通過輸入特征向量的正序,利用前向層的GRU 神經網絡,得到前向的特征向量,輸入基本特征向量的逆序,利用后向層的GRU 神經網絡,得到后向的特征向量,將前向特征向量和后向的特征向量進行融合,得到文本特征向量;即為雙向GRU 網絡的隱藏層狀態(tài),如以下公式所示:
將長度為n 的微博文本詞向量表示為x={x1,x2,…,xn},xi為微博文本x 中的第i 個詞向量。自注意力機制是通過一系列加權計算,學習微博文本的內部依賴關系。構建Q(Query Vector)、K(Key Vector)、V(Value Vector)三個矩陣進行線性變換,獲取多組注意力值,然后將注意力值拼接輸出,如以下公式所示:
Q、K、V 分別表示查詢、鍵和值矩陣,用于將原始詞向量映射到子空間中,并用softmax 函數的歸一化處理,得到了最終的注意力數值。其中dk是querie和key的維度,除以的目的是防止梯度消失。
多頭注意力就是對輸入的Q、K和V進行h次線性映射,頭之間的參數不共享,每次Q、K、V 進行線性變換的參數W不一樣,再對線性映射后的結果進行加權計算,將h 個注意力結果連接并輸出,即為多頭注意力向量表示:
本文將雙向GRU 網絡輸出向量Ht作為多頭注意力機制的輸入向量,并與融合注意力機制的權重向量,實現謠言的分類,具體過程如下:
首先生成權重向量:
使用softmax 函數對權重矩陣做歸一化處理:
α=softmax(W) (15)
最終注意力值可表示為
A(Ht)=αHt(16)
最后,微博謠言文本特征向量可表示為
h*=tanh(A(Ht)) (17)
本實驗數據主要基于Ma 等[5]在2016 年公布的社交媒體謠言檢測數據集中的新浪微博數據,另外通過新浪微博API爬去了309條新型冠狀肺炎話題數據,共包含4973 個事件,其中謠言事件2622條,非謠言事件2351,每條數據均已標注,每個事件中又包含有若干條微博,總數據集共包含4050456條微博。
謠言檢測模型包含四個層次:嵌入層、雙向GRU 網絡層、多頭注意力機制層和輸出層,其中嵌入層與雙向GRU 網絡層遷移預訓練語言模型相應層的參數,采用Frozen和Fine-tuning的遷移學習方法。在Frozen 方法中,凍結預訓練層,不再更新參數,而在Fine-tuning 中,對預訓練層進行微調。而多頭注意力機制層和輸出層,都從頭訓練網絡參數。
采用tanh 函數作為激活函數,訓練序列長度batch_size 設為64。實驗基于Python 3.5 及其庫(Keras-gpu)軟件平臺實現,使用Adam 優(yōu)化器,學習率為0.001,迭代次數為20。
5.3.1 與傳統(tǒng)詞嵌入方法實驗結果對比
本實驗采用word2vec獲取詞向量,并作為BiGRU-MHA 模型的輸入向量,以此作為對比實驗,對比預訓練語言模型對謠言檢測任務的效果。分別與ELMO+BiGRU-MHA 模型、Bert+BiGRU-MHA 模型和XLNet+BiGRU-MHA模型做實驗對比,對比結果如表1所示。

表1 傳統(tǒng)詞嵌入方法的實驗結果對比表
通過與傳統(tǒng)詞嵌入方法相比,加入預訓練模型后有了更強大的語義表示,能捕捉更豐富的語義信息,對于長距離依賴以及多義詞的理解和表達更有效;預訓練模型為每個詞生成基于上下文的嵌入向量,而word2vec 產生靜態(tài)詞向量,不能區(qū)分同一單詞在不同上下文中的意義;通過在大規(guī)模語料庫上進行預訓練,模型能夠學到通用的語言知識,結合少量標注數據進行微調,可以在特定任務中取得較好的性能。
5.3.2 與基準方法的實驗結果對比
本文選取了在當前謠言檢測任務中具有代表性 的 四 種 方 法:DTC 模 型[1]、SVM-RBF 模 型[3]、GRU-2 模型[5]和CAMI 模型[7],作為本文的對比基準實驗,實驗結果如表2所示[17]。

表2 與基準方法的實驗結果對比表
SVM-RBF和DTC模型是基于傳統(tǒng)的機器學習構建分類器的方法,從表2 中可以看出,預訓練模型能自動從文本中抽取豐富的特征,而傳統(tǒng)機器學習方法通常依賴手工設計的特征或淺層次特征表示;此外,預訓練模型通常具有更好的長文本處理能力。例如,BERT 使用Transformer 結構,對長距離依賴關系的捕捉更有效。GRU-2 和CAMI 模型是基于神經網絡的方法,由表2 數據可知,與通用深度神經網絡相比,預訓練模型更容易實現端到端訓練,直接從輸入文本到分類結果進行優(yōu)化,減少了中間環(huán)節(jié)的不匹配問題,并且預訓練模型在大量無標簽數據上進行預訓練,捕獲了豐富的語言知識,從而在特定任務上具有很好的起點和優(yōu)勢。
而本文所提出的三個謠言檢測方法,均不遜于基準方法,甚至效果更佳,因此可以證明在深度神經網絡的基礎上加入預訓練語言模型將使得模型性能更優(yōu)。
本文使用了三種預訓練語言模型對謠言檢測數據分別進行了預訓練,為了驗證它對早期謠言檢測實驗結果的影響,本文選擇了GRU-2 模型作為對比實驗,設置了一系列的檢測截止日期,并且在測試過程中只使用從謠言初始散播時間到相應截止時間的微博數據。
圖4展示了本文所提出的三種方法與GRU-2模型在不同截止日期下的謠言識別性能。ELMO+BiGRU-MHA 模型、Bert+BiGRU-MHA 模型和XLNet+BiGRU-MHA 模型均可以在較短的時間內達到較高的精度,而GRU-2模型大約在48h后才能達到較好的效果。此外,XLNet+BiGRU-MHA 模型的F1 值在任何階段都處于領先地位。由此可說明,預訓練語言模型對早期謠言檢測起到重大作用,對于更早的識別謠言從而遏制謠言散播有實用效果。

圖4 早期謠言檢測性能圖
本文提出了一種基于預訓練語言模型的微博謠言檢測方法,該方法選用了ELMO、BERT 和XLNet 對微博數據進行預訓練,提高了模型的訓練速度,增強了詞向量表示的泛化能力,優(yōu)化了深層語義信息的表達能力,解決了一詞多義情況的詞向量表示問題。采用了BiGRU-MHA 模型對下游任務進行學習,該模型能夠有效地捕捉句子中的語義信息,包括上下文關系和語境信息,多頭注意力機制能夠讓模型自動學習哪些部分是重要的,并加強對相關信息的關注;BiGRU模型能夠處理句子中的前后關系,從而更好地把握句子的含義;模型能夠同時考慮不同層級的信息,提高了模型的準確性和魯棒性。
在未來工作中,由于許多謠言具有圖片加文本或視頻加文本的形式,大大提升了謠言的煽動性,本文將考慮加入多模態(tài)的數據對模型進行測試,以此增強模型的適應性。