馮茹嘉 張海軍 潘偉民
(新疆師范大學(xué)計算機(jī)科學(xué)技術(shù)學(xué)院 烏魯木齊 830000)
隨著網(wǎng)絡(luò)的迅速發(fā)展,各種社交軟件蓬勃發(fā)展。新浪微博作為一種共享、開放、便捷、及時的媒介,成為人們發(fā)布和傳播信息的重要渠道。新浪微博的月活躍用戶已達(dá)5.86億,用戶數(shù)量龐大且類型跨度較大,使其成為社會謠言傳播的主要渠道之一。謠言泛濫問題在微博上十分普遍,給人們的日常生活帶來了困擾,影響了社會的穩(wěn)定。因此,針對微博謠言的檢測具有重要的現(xiàn)實意義。
當(dāng)前自動識別謠言的方法主要包括:1)基于機(jī)器學(xué)習(xí)的方法:通過構(gòu)建分類器來對文本或多媒體內(nèi)容進(jìn)行分類,判斷其是否為謠言。2)基于社交網(wǎng)絡(luò)分析的方法:通過分析社交網(wǎng)絡(luò)中的信息傳播路徑和影響力,來判斷某個信息是否為謠言。3)基于自然語言處理的方法:通過對文本數(shù)據(jù)進(jìn)行處理和分析,提取其中的特征和模式,來判斷其是否為謠言。4)基于知識圖譜的方法:通過構(gòu)建知識圖譜,將已知的真實信息和謠言信息進(jìn)行關(guān)聯(lián)和比較,從而判斷新出現(xiàn)的信息是否為謠言。5)基于深度學(xué)習(xí)的方法:通過利用深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對文本、圖像等信息進(jìn)行自動識別和分類,來判斷其是否為謠言。
本文提出了一種基于預(yù)訓(xùn)練語言模型的早期微博謠言檢測方法。首先分別使用ELMO、BERT和XLNet的預(yù)訓(xùn)練模型對謠言數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,然后將預(yù)訓(xùn)練后的結(jié)果作為模型的初始參數(shù),并利用Transformer 編碼器學(xué)習(xí)微博謠言數(shù)據(jù)的深層語義特征,最后通過softmax 函數(shù)得到謠言的分類結(jié)果,并比較三種預(yù)訓(xùn)練方式在謠言檢測任務(wù)中的效果。
目前針對謠言檢測任務(wù),大多數(shù)研究者將其視為一個二分類問題。謠言檢測方法經(jīng)歷了基于傳統(tǒng)手工特征提取和基于深度神經(jīng)網(wǎng)絡(luò)模型的兩個發(fā)展階段。
早期的謠言檢測工作主要側(cè)重于尋找高區(qū)分度的特征,基于特征選擇構(gòu)建分類器。文獻(xiàn)[1]通過Twitter 數(shù)據(jù)提取四類特征,并進(jìn)行特征選擇,之后基于選擇后的特征構(gòu)建J48 決策樹分類器,最終模型的分類效果良好。Qazvinia[2]則通過提取用戶行為特征與深層文本語義特征相結(jié)合,使用貝葉斯分類器進(jìn)行謠言分類。而Kwon 等[3]則強(qiáng)調(diào)了謠言數(shù)據(jù)中情感詞匯特征和時間特征的重要性,并構(gòu)建了時間序列模型,最終在召回率上得到較大的提升。Yang[4]等基三方面特征:地理位置、用戶特征和內(nèi)容特征,基于新浪微博數(shù)據(jù)集,利用支持向量機(jī)構(gòu)建了謠言檢測模型,準(zhǔn)確率為78.7%。
基于深度神經(jīng)網(wǎng)絡(luò)模型的謠言檢測方法克服了手工特征提取的局限性,具備自動學(xué)習(xí)深層特征的能力。Ma 等[5]按照時間序列,對每一個事件下的微博進(jìn)行建模,使用循環(huán)神經(jīng)網(wǎng)絡(luò),捕獲文本隱藏表示,實現(xiàn)了較好的分類性能。文獻(xiàn)[6]引入用戶行為特征,提出一種結(jié)合自動編碼器構(gòu)建的循環(huán)神經(jīng)網(wǎng)絡(luò)模型,提高了謠言檢測性能。Yu等[7]指出RNN 在謠言早期檢測方面的不足,并使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)構(gòu)建謠言檢測模型,在早期檢測任務(wù)中表現(xiàn)出良好的效果。文獻(xiàn)[8]提出一種CNN+GRU 的謠言檢測模型,通過句向量化提取微博數(shù)據(jù)的局部和全局特征,實現(xiàn)了微博謠言檢測并取得了良好的識別性能。
早期的詞向量表示方法是一種靜態(tài)文本表示,僅將下游任務(wù)的首層初始化,而其余網(wǎng)絡(luò)結(jié)構(gòu)仍需從零開始訓(xùn)練,這種預(yù)訓(xùn)練方法對深層語義信息的表達(dá)力不足,此外,傳統(tǒng)文本處理方法難以解決詞語歧義問題。相比之下,預(yù)訓(xùn)練語言模型通過在多層網(wǎng)絡(luò)模型上進(jìn)行預(yù)訓(xùn)練,可以為下游任務(wù)的多層網(wǎng)絡(luò)模型提供更好的初始化。這不僅大大提高了模型的訓(xùn)練速度,還使得深層語義信息的表達(dá)能力得到優(yōu)化。作為一種動態(tài)的學(xué)習(xí)詞向量方法,預(yù)訓(xùn)練語言模型會根據(jù)上下文語境動態(tài)調(diào)整詞向量的表示,增強(qiáng)了詞向量表示的泛化能力,有效地解決了多義詞的詞向量表示問題。
本文通過多種預(yù)訓(xùn)練語言模型對微博數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,并用以初始化下游的謠言檢測任務(wù),同時學(xué)習(xí)微博數(shù)據(jù)淺層語義信息和深層語義信息,對歧詞進(jìn)行準(zhǔn)確的詞向量表示,加快謠言檢測模型的訓(xùn)練速度,提高謠言檢測的精確率。
圖1 基于預(yù)訓(xùn)練語言模型的早期微博謠言檢測方法流程圖
ELMO[9]屬于一種自回歸語言模型(autoregressive),通過兩次帶殘差的雙向LSTM 來構(gòu)建文本表示,利用前向LSTM 捕捉上文詞義信息,后向LSTM捕捉下文詞義信息,消除了詞語歧義。對于由N個單詞組成的序列,預(yù)測第k 個詞的前項LSTM 模型預(yù)測概率可表示為
預(yù)測第k 個詞的后項LSTM 模型預(yù)測概率可表示為
優(yōu)化目標(biāo)為最大化對數(shù)前向和后向的似然概率:
其中,Θx表示映射層的初始共享參數(shù),和表示長短期記憶網(wǎng)絡(luò)前向和后向參數(shù),ΘS表示softmax 層的參數(shù)。
對于第k個單詞在L層的雙向LSTM語言模型,共有2L+1個表征:
最終第k個單詞的通過ELMO模型得到的文本表示為
γtask是縮放系數(shù),允許任務(wù)模型去縮放整個ELMO向量,是softmax標(biāo)準(zhǔn)化權(quán)重。
BERT[10]屬于一種自編碼語言模型(autoencoding),利用Transformer 編碼器實現(xiàn)了雙向信息融合,通過將多個Transformer Encoder 層層堆疊實現(xiàn)了BERT 模型的搭建。BERT 模型包含三個嵌入層:字嵌入、文本嵌入和位置嵌入,BERT 模型將三者的加和作為模型輸入,如式(6)所示:
其中,E 表示模型輸入,Esegment表示字向量,Eposition表示文本向量,Etoken表示位置向量。如圖2所示,一條謠言文本“喝高度白酒可預(yù)防新冠病毒”輸入后,經(jīng)過三個嵌入層后,再將其作為Transformer的輸入向量。
圖2 BERT模型圖
BERT 作為一種預(yù)訓(xùn)練語言模型,它使用大規(guī)模文本語料進(jìn)行模型訓(xùn)練,逐步優(yōu)化模型參數(shù),使得模型輸出的文本語義表征更加契合自然語言的本質(zhì)。為完成預(yù)訓(xùn)練,BERT進(jìn)行了兩個監(jiān)督任務(wù):Masked LM和Next Sentence Prediction。
Masked LM 任務(wù)可以類比為完形填空問題,即在給定的句子中,隨機(jī)遮蓋一定比例的詞語,然后通過剩余的詞匯來預(yù)測被遮蓋的詞語。這個任務(wù)使得模型需要去理解上下文,從而更好地進(jìn)行詞匯預(yù)測和語言生成。對于在句子中被覆蓋的詞匯,其中只有10%依舊保持原詞,10%替換為一個任意詞,剩余80%采用一個特殊符號[MASK]替換。這將賦予模型一定的糾錯能力,迫使模型在預(yù)測詞匯時更多地依賴于上下文信息。
Next Sentence Prediction 任務(wù)可以理解為段落重排序問題,通過給定一篇文章中的兩個句子,來預(yù)測是否為該文章中的前后兩句。在實際預(yù)訓(xùn)練過程中,通過50%正確原始上下句和50%原始上句搭配隨機(jī)下句來學(xué)習(xí)句子間的關(guān)系。
BERT 模型通過聯(lián)合訓(xùn)練上述兩個任務(wù),進(jìn)一步提高了模型在自然語言處理任務(wù)中的表現(xiàn)。通過聯(lián)合訓(xùn)練這兩個任務(wù),BERT 模型不僅能夠優(yōu)化模型輸出的詞向量表達(dá)能力,還能為下游任務(wù)提供更加準(zhǔn)確的參數(shù)初始化,從而取得更好的性能。因此,BERT 模型目前被廣泛應(yīng)用于各種自然語言處理任務(wù)中,并取得了非常顯著的效果。
XLNet[11]是一種泛化自回歸語言模型,它融合了自回歸語言模型和自編碼語言模型的優(yōu)點(diǎn),并避免了它們各自的局限性。與傳統(tǒng)語言模型只能在一個方向上捕獲語義不同,XLNet 可以實現(xiàn)雙向語義理解,XLNet采用的是Permutation Language Model(PLM)方法,即將文本序列分解為若干排列序列,并在每個排列序列上執(zhí)行語言建模任務(wù)。具體而言,XLNet 先通過一個置換函數(shù)生成一個隨機(jī)的排列序列,然后利用該排列序列和其他信息來建立條件概率模型,對當(dāng)前位置的單詞進(jìn)行預(yù)測。這樣,每個位置都能夠利用整個序列的信息進(jìn)行預(yù)測,從而消除了BERT 中的獨(dú)立性假設(shè)問題,使得模型能夠更好地捕捉序列中的雙向依賴關(guān)系,提高了模型的性能和泛化能力。
例如當(dāng)給定一個謠言文本x={x1,x2,x3,x4},來預(yù)測x3時,使用一種序列語言建模目標(biāo),文本序列的排列方式應(yīng)該有4!種,但為了減少時間消耗,實際只能隨機(jī)的采樣4!里的部分排列,比如:2→3→4→1,3→2→1→4,1→4→3→2,4→2→1→3。下面展示了分解方式為1→4→3→2的圖示。
如圖3 所示,當(dāng)預(yù)測x3時可以充分利用到x1和x4的信息,而看不到x2的信息。當(dāng)遍歷完上述4 種排列方式后,模型就能獲得所有的上下文信息,從而實現(xiàn)雙向語義的同時獲取。此外,需要注意的是,輸入依然是原始句子的順序,而序列的排列則通過Attention Mask 來實現(xiàn)。在編碼x3時僅讓它依賴于x1和x4的信息,而把x2的信息[masks]掉。
圖3 排列語言模型圖
最終優(yōu)化目標(biāo)如式(7)所示:
其中,用zt表示第t個元素,z ≤t-1 表示z的第1 到第t-1個元素。z是集合ZT的其中一種排列方法,ZT表示所有排列方式的集合。
本文通過融合了多頭注意力機(jī)制(Multi-head self-Attention mechanism,MHA)的雙向GRU 網(wǎng)絡(luò)模型來實現(xiàn)微博謠言檢測。雙向GRU 網(wǎng)絡(luò)對學(xué)習(xí)句子序列特征有非常好的效果,多頭注意力機(jī)制可實現(xiàn)對全局范圍內(nèi)的文本上下文深層語義特征的提取,因此,二者的結(jié)合有助于全面理解文本信息,從而更好地實現(xiàn)微博的謠言識別任務(wù)。
門控循環(huán)單元是循環(huán)神經(jīng)網(wǎng)絡(luò)的一種變形,它加入了兩個門控信號:更新門和重置門。更新門判斷當(dāng)前詞是否要帶入到下一個狀態(tài)中;重置門用來控制當(dāng)前詞的是否被忽略,當(dāng)重置門越小時,前一時刻的信息被忽略程度越大。
本文通過輸入特征向量的正序,利用前向?qū)拥腉RU 神經(jīng)網(wǎng)絡(luò),得到前向的特征向量,輸入基本特征向量的逆序,利用后向?qū)拥腉RU 神經(jīng)網(wǎng)絡(luò),得到后向的特征向量,將前向特征向量和后向的特征向量進(jìn)行融合,得到文本特征向量;即為雙向GRU 網(wǎng)絡(luò)的隱藏層狀態(tài),如以下公式所示:
將長度為n 的微博文本詞向量表示為x={x1,x2,…,xn},xi為微博文本x 中的第i 個詞向量。自注意力機(jī)制是通過一系列加權(quán)計算,學(xué)習(xí)微博文本的內(nèi)部依賴關(guān)系。構(gòu)建Q(Query Vector)、K(Key Vector)、V(Value Vector)三個矩陣進(jìn)行線性變換,獲取多組注意力值,然后將注意力值拼接輸出,如以下公式所示:
Q、K、V 分別表示查詢、鍵和值矩陣,用于將原始詞向量映射到子空間中,并用softmax 函數(shù)的歸一化處理,得到了最終的注意力數(shù)值。其中dk是querie和key的維度,除以的目的是防止梯度消失。
多頭注意力就是對輸入的Q、K和V進(jìn)行h次線性映射,頭之間的參數(shù)不共享,每次Q、K、V 進(jìn)行線性變換的參數(shù)W不一樣,再對線性映射后的結(jié)果進(jìn)行加權(quán)計算,將h 個注意力結(jié)果連接并輸出,即為多頭注意力向量表示:
本文將雙向GRU 網(wǎng)絡(luò)輸出向量Ht作為多頭注意力機(jī)制的輸入向量,并與融合注意力機(jī)制的權(quán)重向量,實現(xiàn)謠言的分類,具體過程如下:
首先生成權(quán)重向量:
使用softmax 函數(shù)對權(quán)重矩陣做歸一化處理:
α=softmax(W) (15)
最終注意力值可表示為
A(Ht)=αHt(16)
最后,微博謠言文本特征向量可表示為
h*=tanh(A(Ht)) (17)
本實驗數(shù)據(jù)主要基于Ma 等[5]在2016 年公布的社交媒體謠言檢測數(shù)據(jù)集中的新浪微博數(shù)據(jù),另外通過新浪微博API爬去了309條新型冠狀肺炎話題數(shù)據(jù),共包含4973 個事件,其中謠言事件2622條,非謠言事件2351,每條數(shù)據(jù)均已標(biāo)注,每個事件中又包含有若干條微博,總數(shù)據(jù)集共包含4050456條微博。
謠言檢測模型包含四個層次:嵌入層、雙向GRU 網(wǎng)絡(luò)層、多頭注意力機(jī)制層和輸出層,其中嵌入層與雙向GRU 網(wǎng)絡(luò)層遷移預(yù)訓(xùn)練語言模型相應(yīng)層的參數(shù),采用Frozen和Fine-tuning的遷移學(xué)習(xí)方法。在Frozen 方法中,凍結(jié)預(yù)訓(xùn)練層,不再更新參數(shù),而在Fine-tuning 中,對預(yù)訓(xùn)練層進(jìn)行微調(diào)。而多頭注意力機(jī)制層和輸出層,都從頭訓(xùn)練網(wǎng)絡(luò)參數(shù)。
采用tanh 函數(shù)作為激活函數(shù),訓(xùn)練序列長度batch_size 設(shè)為64。實驗基于Python 3.5 及其庫(Keras-gpu)軟件平臺實現(xiàn),使用Adam 優(yōu)化器,學(xué)習(xí)率為0.001,迭代次數(shù)為20。
5.3.1 與傳統(tǒng)詞嵌入方法實驗結(jié)果對比
本實驗采用word2vec獲取詞向量,并作為BiGRU-MHA 模型的輸入向量,以此作為對比實驗,對比預(yù)訓(xùn)練語言模型對謠言檢測任務(wù)的效果。分別與ELMO+BiGRU-MHA 模型、Bert+BiGRU-MHA 模型和XLNet+BiGRU-MHA模型做實驗對比,對比結(jié)果如表1所示。
表1 傳統(tǒng)詞嵌入方法的實驗結(jié)果對比表
通過與傳統(tǒng)詞嵌入方法相比,加入預(yù)訓(xùn)練模型后有了更強(qiáng)大的語義表示,能捕捉更豐富的語義信息,對于長距離依賴以及多義詞的理解和表達(dá)更有效;預(yù)訓(xùn)練模型為每個詞生成基于上下文的嵌入向量,而word2vec 產(chǎn)生靜態(tài)詞向量,不能區(qū)分同一單詞在不同上下文中的意義;通過在大規(guī)模語料庫上進(jìn)行預(yù)訓(xùn)練,模型能夠?qū)W到通用的語言知識,結(jié)合少量標(biāo)注數(shù)據(jù)進(jìn)行微調(diào),可以在特定任務(wù)中取得較好的性能。
5.3.2 與基準(zhǔn)方法的實驗結(jié)果對比
本文選取了在當(dāng)前謠言檢測任務(wù)中具有代表性 的 四 種 方 法:DTC 模 型[1]、SVM-RBF 模 型[3]、GRU-2 模型[5]和CAMI 模型[7],作為本文的對比基準(zhǔn)實驗,實驗結(jié)果如表2所示[17]。
表2 與基準(zhǔn)方法的實驗結(jié)果對比表
SVM-RBF和DTC模型是基于傳統(tǒng)的機(jī)器學(xué)習(xí)構(gòu)建分類器的方法,從表2 中可以看出,預(yù)訓(xùn)練模型能自動從文本中抽取豐富的特征,而傳統(tǒng)機(jī)器學(xué)習(xí)方法通常依賴手工設(shè)計的特征或淺層次特征表示;此外,預(yù)訓(xùn)練模型通常具有更好的長文本處理能力。例如,BERT 使用Transformer 結(jié)構(gòu),對長距離依賴關(guān)系的捕捉更有效。GRU-2 和CAMI 模型是基于神經(jīng)網(wǎng)絡(luò)的方法,由表2 數(shù)據(jù)可知,與通用深度神經(jīng)網(wǎng)絡(luò)相比,預(yù)訓(xùn)練模型更容易實現(xiàn)端到端訓(xùn)練,直接從輸入文本到分類結(jié)果進(jìn)行優(yōu)化,減少了中間環(huán)節(jié)的不匹配問題,并且預(yù)訓(xùn)練模型在大量無標(biāo)簽數(shù)據(jù)上進(jìn)行預(yù)訓(xùn)練,捕獲了豐富的語言知識,從而在特定任務(wù)上具有很好的起點(diǎn)和優(yōu)勢。
而本文所提出的三個謠言檢測方法,均不遜于基準(zhǔn)方法,甚至效果更佳,因此可以證明在深度神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上加入預(yù)訓(xùn)練語言模型將使得模型性能更優(yōu)。
本文使用了三種預(yù)訓(xùn)練語言模型對謠言檢測數(shù)據(jù)分別進(jìn)行了預(yù)訓(xùn)練,為了驗證它對早期謠言檢測實驗結(jié)果的影響,本文選擇了GRU-2 模型作為對比實驗,設(shè)置了一系列的檢測截止日期,并且在測試過程中只使用從謠言初始散播時間到相應(yīng)截止時間的微博數(shù)據(jù)。
圖4展示了本文所提出的三種方法與GRU-2模型在不同截止日期下的謠言識別性能。ELMO+BiGRU-MHA 模型、Bert+BiGRU-MHA 模型和XLNet+BiGRU-MHA 模型均可以在較短的時間內(nèi)達(dá)到較高的精度,而GRU-2模型大約在48h后才能達(dá)到較好的效果。此外,XLNet+BiGRU-MHA 模型的F1 值在任何階段都處于領(lǐng)先地位。由此可說明,預(yù)訓(xùn)練語言模型對早期謠言檢測起到重大作用,對于更早的識別謠言從而遏制謠言散播有實用效果。
圖4 早期謠言檢測性能圖
本文提出了一種基于預(yù)訓(xùn)練語言模型的微博謠言檢測方法,該方法選用了ELMO、BERT 和XLNet 對微博數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,提高了模型的訓(xùn)練速度,增強(qiáng)了詞向量表示的泛化能力,優(yōu)化了深層語義信息的表達(dá)能力,解決了一詞多義情況的詞向量表示問題。采用了BiGRU-MHA 模型對下游任務(wù)進(jìn)行學(xué)習(xí),該模型能夠有效地捕捉句子中的語義信息,包括上下文關(guān)系和語境信息,多頭注意力機(jī)制能夠讓模型自動學(xué)習(xí)哪些部分是重要的,并加強(qiáng)對相關(guān)信息的關(guān)注;BiGRU模型能夠處理句子中的前后關(guān)系,從而更好地把握句子的含義;模型能夠同時考慮不同層級的信息,提高了模型的準(zhǔn)確性和魯棒性。
在未來工作中,由于許多謠言具有圖片加文本或視頻加文本的形式,大大提升了謠言的煽動性,本文將考慮加入多模態(tài)的數(shù)據(jù)對模型進(jìn)行測試,以此增強(qiáng)模型的適應(yīng)性。