盧 悅,曹春萍
(上海理工大學(xué)光電信息與計算機工程學(xué)院,上海 200093)
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)謠言逐漸泛濫,與傳統(tǒng)謠言相比,網(wǎng)絡(luò)謠言的傳播速度不斷增長,傳播范圍也更為廣泛,給國家和社會的和諧穩(wěn)定帶來了巨大的隱患。網(wǎng)絡(luò)謠言常見于社交平臺,尤以微博平臺為甚,而新浪微博對此推出的官方辟謠平臺,通過人工查驗的方式識別謠言,不僅浪費人力和財力,還存在嚴重的時間滯后問題。因此,微博謠言的自動檢測[1]成為了研究的熱點話題。
現(xiàn)有的謠言檢測工作大致可以分為2大類:1)基于特征工程的謠言檢測,核心技術(shù)主要包括從文本內(nèi)容、用戶屬性、圖片信息等各方面構(gòu)建特征,并使用分類器來對謠言進行判別,包括早期傳統(tǒng)機器學(xué)習(xí)方法[2-3]和目前更為主流的深度學(xué)習(xí)方法;2)基于傳播過程的謠言檢測,該類工作又可細分為基于傳播模型的謠言檢測[4-5]和基于傳播過程中用戶反饋信息的謠言檢測方法。通過對現(xiàn)有研究的分析,本文發(fā)現(xiàn)基于特征工程的謠言檢測工作雖然取得了一定的效果,但是許多文本、用戶和圖片信息并不具有顯著的謠言特征,基于特征工程的謠言檢測存在較大的局限性和較差的可移植性。
而基于傳播過程的謠言檢測研究者提出在面對一個可疑言論時,社交媒體用戶會不斷地對信息真實性提出異議或基于常識的評論,對于謠言檢測具有更加顯著的效果,然而由于一條消息需要經(jīng)過一定范圍的傳播才能產(chǎn)生足夠的評論信息,基于傳播過程的謠言檢測往往導(dǎo)致檢測時間的滯后,無法滿足謠言檢測的現(xiàn)實需求。通過對數(shù)據(jù)集中大量微博用戶的歷史數(shù)據(jù)進行分析,本文發(fā)現(xiàn)發(fā)布謠言的用戶為了引發(fā)爭議和增大互動量,其往往不只發(fā)布一條謠言,歷史微博數(shù)據(jù)中也可能有謠言的存在。因此本文提出一種融合用戶歷史傳播信息的微博謠言檢測,對微博用戶微博傳播過程的評論及反饋信息進行語義特征提取,利用注意力機制與原文信息特征進行組合,進行謠言檢測。
文字是網(wǎng)絡(luò)謠言傳播的主要載體。因此不論是基于特征工程還是基于傳播過程中用戶反饋信息的謠言檢測,研究者們大多將其視為自然語言處理中的文本二分類問題,其主要任務(wù)是采用文本向量化和神經(jīng)網(wǎng)絡(luò)去學(xué)習(xí)文本中的語義向量表示。文本向量化是指把人的語言轉(zhuǎn)換成計算機的語言,研究者們相繼提出的One-hot向量、CBOW模型、Skip-gram神經(jīng)語言模型以及Word2Vec等[6]模型在謠言檢測領(lǐng)域也得到了廣泛的應(yīng)用。如毛二松等人[7]使用Skip-gram模型來訓(xùn)練微博評論中的詞向量,通過對情感極性的判別來識別謠言;林榮蓉[8]通過Word2Vec模型獲取詞向量,并構(gòu)建謠言敏感詞庫特征與詞向量相結(jié)合,輸入到GBRT模型中訓(xùn)練,提高了謠言檢測的準確率。以上文本特征的提取方法在一定程度上提高了謠言檢測的精度,但是由于中文中詞語的靈活度較高,相同的詞在不同語境下往往具有不同的含義,而上述方法都沒有解決文本特征提取中的一詞多義問題。因此本文選擇ALBERT模型[9]提取微博數(shù)據(jù)的文本特征,該模型為輕量化的BERT模型[10],具有強大的語義理解能力,能夠解決一詞多義問題,再通過神經(jīng)網(wǎng)絡(luò)進行深層次的語義提取,從而保證謠言檢測的精準率。
以往研究者們在選擇神經(jīng)網(wǎng)絡(luò)模型檢測謠言時,多采用單一的卷積神經(jīng)網(wǎng)絡(luò)(CNN)或是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),如Ma等人[11]提出使用RNN對評論等時間序列信息進行建模,學(xué)習(xí)相關(guān)微博的上下文信息隨時間變化的語義特征,來實現(xiàn)謠言檢測;Yu等人[12]提出使用CNN捕捉文本語義特征來識別謠言。雖然能夠?qū)χ{言進行識別,但是由于單一的CNN、RNN模型不能結(jié)合上下文信息對語義特征進行提取,在檢測的最終效果上仍存在較大的提升空間。而后有研究者提出使用長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)[13]檢測謠言,孫王斌[14]利用LSTM神經(jīng)網(wǎng)絡(luò)挖掘謠言文本的深層語義特征,并引入3個淺層特征,使用SVM分類器進行謠言檢測,實驗證明了LSTM具有更好的謠言識別能力。門控循環(huán)單元神經(jīng)網(wǎng)絡(luò)(GRU)[15]是LSTM的一種變體,擁有和LSTM相似的功能,但它對于LSTM來說,訓(xùn)練時間短、參數(shù)較少、網(wǎng)絡(luò)結(jié)構(gòu)更簡單,但是在使用GRU對文本序列建模時,也沒有很好地考慮到上下文信息,而本文采用雙向門控循環(huán)單元神經(jīng)網(wǎng)絡(luò)(BiGRU)來搭建模型,它增加了反向輸入的GRU,利用2個并行通道,使得模型能同時獲得正反向的積累依賴信息,從而可以更加充分地學(xué)習(xí)文本前后語義之間的聯(lián)系,使得提取的特征信息更加豐富。
除此之外,還有研究者將注意力(Attention)機制引用到謠言檢測的研究中[16-18],利用注意力機制給提取出的特征分配權(quán)重,有效提高了謠言識別的精度。綜合以上所有問題,本文提出一種融合用戶歷史傳播信息的ALBERT-BiGRU-Attention(AbaNet)微博謠言檢測模型,對現(xiàn)有的數(shù)據(jù)集進行擴充,爬取待檢測微博用戶歷史微博下的評論和交互信息,使用ALBERT預(yù)訓(xùn)練模型獲取文本特征向量,并通過BiGRU進行全局語義建模,獲取上下文語義特征,再引入Attention分配特征權(quán)重,優(yōu)化特征,最后將獲取的字詞特征融合進行分類,得到謠言的判別結(jié)果。
謠言檢測的最終目標(biāo)是能夠準確并且及時地預(yù)測出該信息是否為虛假信息,其實質(zhì)上是基于內(nèi)容和用戶的二分類問題,即謠言檢測模型在已經(jīng)被標(biāo)記的輸入數(shù)據(jù)上訓(xùn)練后,能預(yù)測出無標(biāo)記測試數(shù)據(jù)的真實性。該問題的形式化定義如下。
給定一個帶有標(biāo)簽的訓(xùn)練數(shù)據(jù)集合D和一個類別標(biāo)簽集合y:
D={(x1,y1),(x2,y2),(x3,y3),…,(xn,yn)}
(1)
y={1,0}
(2)
其中,n表示訓(xùn)練數(shù)據(jù)集合的大小,(xi,yi)為訓(xùn)練數(shù)據(jù)集合中的記錄,xi表示D中記錄的微博文本數(shù)據(jù),yi表示xi的標(biāo)簽,分別用1和0代表“謠言”和“非謠言”2個類別的標(biāo)簽。
本文謠言檢測的任務(wù)是要學(xué)習(xí)一個分類模型M,將文本數(shù)據(jù)映射成一個類別標(biāo)簽yi,即M:xi→yi,模型的輸入是需要被判定的微博文本和用戶歷史傳播信息,輸出是該文本對應(yīng)的“謠言”或“非謠言”標(biāo)簽。
微博的傳播周期中,每個用戶在不同時刻產(chǎn)生了不同的評論,將所有評論平鋪到一條線上,則每條評論就對應(yīng)每個時間節(jié)點的輸入信息。因此本文對用戶的歷史傳播信息進行建模,將用戶歷史微博下的評論信息對應(yīng)BiGRU網(wǎng)絡(luò)每個時間節(jié)點的輸入信息,構(gòu)成整個輸入空間,學(xué)習(xí)評論間的相互影響及整個評論的語義表示。本文首先將微博用戶歷史傳播信息進行預(yù)處理,即對數(shù)據(jù)進行清洗及分詞。用戶歷史傳播信息R由n條用戶評論組成,即R={r1,r2,…,rn},樣本中的第i條評論表示為ri={wi1,wi2,…,wim},其中wij表示第i條評論的第j個詞。用戶歷史傳播信息特征提取模塊結(jié)構(gòu)如圖1所示。該模塊主要由2個部分組成:首先ALBERT提取文本的表示特征,主要使用ALBERT中的Transformer編碼器獲取全局的語義信息,其次使用雙向GRU加強特征表示,得到用戶歷史傳播信息的深層特征表示。
圖1 用戶歷史傳播信息特征提取
1)首先通過ALBERT預(yù)訓(xùn)練模型訓(xùn)練得到用戶歷史傳播信息的文本特征向量,將每個時間節(jié)點對應(yīng)的評論轉(zhuǎn)化為輸入向量。ALBERT模型的輸入可以是一個句子或句子對,實際的輸入值是經(jīng)過3個嵌入層的編碼向量加和而成的。將每層得到的字向量EToken、段向量ESegment和位置向量EPosition相加求和,從而得到單一的向量表示E。E的計算公式如式(3)所示,序列化后的文本數(shù)據(jù)如式(4)所示,其中Ei表示文本中第i個詞的序列化字符。
E=EToken+ESegment+EPosition
(3)
E=(E1,E2,…,Em-1,Em)
(4)
獲取用戶歷史傳播信息的輸入表征后,經(jīng)過Transformer編碼器[19]進行訓(xùn)練,得到文本的動態(tài)特征表示。在利用Transformer編碼器來獲取謠言的文本特征時,計算當(dāng)前句子中每個詞與其他詞之間的相互關(guān)系,然后利用這些關(guān)系去調(diào)整句子中每個詞的權(quán)重,最終獲得每個句子的新的表達。文本特征表示如式(5)所示,其中Ti表示文本中第i個評論的特征向量。
T=(T1,T2,…,Tn-1,Tn)
(5)
其中每個用戶歷史評論的文本特征表示如式(6)所示,ti表示每個評論中第i個詞的特征向量,⊕表示連接操作。
Ti=t1⊕t2⊕…⊕tm
(6)
2)將ALBERT模型輸出的用戶歷史傳播信息的文本語義特征向量輸入到BiGRU模型。設(shè)輸入的特征向量為{x1,x2,…,xn},其中xt表示一個單元的輸入向量,即用戶歷史傳播信息中不同時刻不同用戶的評論信息,則GRU模型結(jié)構(gòu)公式表示為:
rt=σ(Wrhht-1+Wrxxt)
(7)
zt=σ(Wzhht-1+Wzxxt)
(8)
(9)
(10)
(11)
(12)
(13)
在本次研究中,本文將微博原文本X作為第一個塊的輸入,用戶歷史傳播信息R=(r1,r2,r3,…,rn)作為其他輸入塊。考慮到每個塊對謠言檢測的影響程度各不相同,本文在模型中引入注意力機制來提取輸入信息中的重要部分,有效突出在謠言判別過程中起關(guān)鍵作用的信息的權(quán)重,從而改善樣本表示,提高謠言檢測的準確率。融合用戶歷史傳播信息的微博謠言檢測模型(AbaNet模型)如圖2所示。
圖2 AbaNet模型
(14)
其中,ai是每個原始隱藏層狀態(tài)在新的隱藏層狀態(tài)中所占的比重,hi是該時刻的原始隱藏層狀態(tài),權(quán)重ai的計算公式如下:
(15)
ei=vitanh(wihi+bi)
(16)
其中,ei表示隱藏層狀態(tài)向量hi被處理后的向量,wi、vi為i時刻的網(wǎng)絡(luò)權(quán)重矩陣參數(shù),bi為i時刻的偏置。
(17)
最后用argmax進行分類,取概率值大的標(biāo)簽作為謠言檢測的最終結(jié)果,計算公式如式(18):
y=argmax(Pi)
(18)
本文模型使用反向傳播算法來訓(xùn)練和更新模型,通過二元交叉熵作為損失函數(shù)來優(yōu)化模型,優(yōu)化目標(biāo)是使訓(xùn)練樣本的預(yù)測值和實際輸出值的交叉熵最小化,損失函數(shù)的計算公式如式(19)所示:
(19)
3.1.1 數(shù)據(jù)集的選擇
為了增加數(shù)據(jù)量,本文采用2016年Ma等人[11]公開的微博謠言數(shù)據(jù)集和2018年Song等人[20]公開的數(shù)據(jù)集,共包含8051條微博。為了證明本文的模型可以在謠言發(fā)布早期就將其檢測出,而微博下的評論信息往往具有滯后性,因此本文不使用數(shù)據(jù)集中的評論文本,只選用其中的原始微博文本,并另行爬取數(shù)據(jù)集中所涉及的用戶歷史微博傳播過程中的評論數(shù)據(jù)。由于部分用戶賬號更換微博名或已被封停,無法爬取用戶歷史傳播信息,因此將此類數(shù)據(jù)刪除,經(jīng)整理后數(shù)據(jù)集共包含6421名用戶,6593條微博,其中包含謠言數(shù)據(jù)3394條,非謠言數(shù)據(jù)3199條。
3.1.2 數(shù)據(jù)集的擴充
本文設(shè)計微博爬蟲在微博網(wǎng)站上爬取這6421名用戶的歷史微博評論,經(jīng)統(tǒng)計計算,這些用戶平均擁有58條微博,為了減小系統(tǒng)和時間開銷,本文設(shè)置了閾值選擇實驗,來確定所需爬取評論的最佳歷史微博數(shù)量,分別令閾值為0、5、15、20、…、55,爬取該閾值對應(yīng)的用戶歷史微博下的評論數(shù)據(jù),然后分別在這11份數(shù)據(jù)上進行微博謠言檢測實驗。11組實驗的準確率對比折線圖如圖3所示。
圖3 閾值選擇實驗對比
從圖3中可以看出,當(dāng)不采用用戶歷史傳播信息,只對微博文本進行謠言檢測時,模型只有87%的準確率,而隨著模型用戶歷史傳播數(shù)據(jù)的增加,準確率是不斷增加的。當(dāng)閾值取35時,模型已達到了較高的準確度,且逐漸趨于穩(wěn)定,因此本文對于歷史微博數(shù)超過35條的用戶只爬取最新的35條下的評論文本,不足35條的全部爬取,共爬取用戶歷史交互信息3371025條。
本文采用五折交叉驗證實驗,將待檢測微博數(shù)據(jù)按照4:1的比例分為訓(xùn)練集和測試集。
本文模型的實驗參數(shù)主要包括ALBERT模型和BiGRU模型的參數(shù),其中ALBERT采用Google發(fā)布的預(yù)訓(xùn)練模型ALBERT-Base,默認使用12頭注意力機制的Transformer,詞嵌入維度為128,預(yù)訓(xùn)練詞向量長度為768維。BiGRU模型的隱藏層大小為128,網(wǎng)絡(luò)層數(shù)為1,選取ReLU作為模型的激活函數(shù)。在整個網(wǎng)絡(luò)的訓(xùn)練中,設(shè)置訓(xùn)練批次大小為64,迭代輪數(shù)30次,學(xué)習(xí)率為5×10-5,并采用Adam優(yōu)化器來尋找神經(jīng)網(wǎng)絡(luò)的最優(yōu)參數(shù)。
為評價模型的效果,本文采用混淆矩陣對判別結(jié)果進行統(tǒng)計,采用準確率Acc、精確率P、召回率R以及精確率與召回率的調(diào)和平均值F1對模型的謠言檢測效果進行評價,計算公式如下所示:
(20)
(21)
(22)
(23)
本文實驗主要探究3個問題:一是探究本文所提出的模型中各個模塊對模型表現(xiàn)的貢獻如何;二是探究本文模型方法與基準方法相比,謠言判別結(jié)果的準確性如何;三是探究本文模型能否在謠言發(fā)布早期將謠言判別出,即謠言的早期檢測效果如何。針對前2個問題,在本文所構(gòu)建的數(shù)據(jù)集上開展了消融實驗和對比實驗,分別比較了Acc、P、R、F1這4項指標(biāo),來驗證本文模型在謠言檢測方面的準確性;針對問題三,本文將本模型所需要的檢測時間與以往研究進行對比與分析,從而驗證本文模型的早期檢測效果。
3.3.1 準確性對比與分析
本文通過替換AbaNet模型中的部分結(jié)構(gòu)開展消融實驗,對比分析驗證被替換部分的有效性。消融模型包含使用Word2Vec替換ALBERT模型的Word2Vec-BiGRU-Att模型、使用單向的LSTM和單向的GRU替換雙向GRU的ALBERT-LSTM-Att模型和ALBERT-GRU-Att模型以及直接用全連接層替換后面模塊的ALBERT模型和ALBERT-BiGRU模型。而在對比實驗中,本文分別選取基于傳統(tǒng)機器學(xué)習(xí)和基于深度學(xué)習(xí)的謠言檢測相關(guān)模型開展對比實驗:Castillo等人[2]的Bayes模型、Ma等人的SVM模型[21]和RNN模型[11]、Yu等人[12]的CNN模型、Chen等人[18]的RNN-Att模型以及李力釗等人[22]的C-GRU。表1和表2分別展示了消融實驗和對比實驗中本文的AbaNet模型與其他模型的效果對比。
表1 消融實驗結(jié)果
表2 對比實驗結(jié)果
1)消融實驗結(jié)果與分析。
通過表1實驗結(jié)果可以看出,使用Word2Vec進行文本特征提取的模型指標(biāo)不理想,而ALBERT模型的表現(xiàn)較為出色,僅使用ALBERT提取文本特征向量進行謠言檢測的模型效果就達到了87.2%的準確率和87.7%的F1值,這是由于Word2Vec不能對不同語境下的多義詞進行區(qū)分,而ALBERT模型經(jīng)過了大規(guī)模語料的預(yù)訓(xùn)練,語義編碼能力很強,解決了一詞多義的問題,模型表現(xiàn)能力也明顯優(yōu)于Word2Vec模型。
ALBERT-LSTM-Att、ALBERT-GRU-Att和本文模型的對比證明了使用BiGRU進行謠言檢測的有效性,可以看出GRU和LSTM在性能上差別不大,但是與LSTM相比,GRU內(nèi)部結(jié)構(gòu)簡單且訓(xùn)練時間更短,更適合本文的謠言檢測任務(wù);而本文采用的BiGRU模型,由于增加了反向的GRU,可以充分學(xué)習(xí)文本前后語義關(guān)系,提取的語義特征也更加豐富,所以模型的各項指標(biāo)相比采用GRU和LSTM的模型也都更加優(yōu)秀。
為了提高謠言檢測的準確率,本文在ALBERT和BiGRU模型的基礎(chǔ)上增加了注意力機制,從ALBERT-BiGRU和AbaNet的對比中可以看出,注意力機制在謠言檢測任務(wù)中的作用也是較為明顯的,加入注意力后實驗的準確率提升了約2.6%。圖4為數(shù)據(jù)集中部分用戶歷史傳播信息的Attention權(quán)重示例,從圖中可以看出,在用戶歷史微博的評論信息中,“流傳很久了”“假的吧”“求證啊”等用戶反饋的質(zhì)疑性評論權(quán)重明顯更高,而與信息的真實性無關(guān)的評論信息權(quán)重較低。
圖4 Attention權(quán)重示例
2)對比實驗結(jié)果與分析。
通過表2可以看出,在相同的數(shù)據(jù)集和實驗環(huán)境下,基于人工構(gòu)建特征的Bayes模型和SVM模型在各方面的表現(xiàn)都明顯低于基于深度學(xué)習(xí)的方法,即使是單一的RNN模型在謠言檢測任務(wù)中的準確率和F1值都比傳統(tǒng)機器學(xué)習(xí)的方法高4%以上。這是因為傳統(tǒng)機器學(xué)習(xí)的謠言檢測方法依賴人的經(jīng)驗來構(gòu)建特征,其模型也是根據(jù)特征進行選擇的,可移植性差,因此使用深度學(xué)習(xí)模型自動構(gòu)造特征的方法明顯優(yōu)于傳統(tǒng)機器學(xué)習(xí)的方法。
在基于深度學(xué)習(xí)模型的幾組對比實驗中,RNN的準確率大概是82.2%,其次依次是RNN-Att、CNN、C-GRU,而本文所提出的AbaNet模型在準確率、召回率和F1值等各項指標(biāo)的表現(xiàn)中都是最好的,其中準確率和F1值分別達到了92.0%和91.9%。為了更直觀地表現(xiàn)模型的對比效果,本文繪制了AbaNet模型和其他各模型準確率隨迭代輪數(shù)變化的折線圖,如圖5所示。從圖中可以看出,7組模型準確率都在不斷上升,在第4次迭代后,基于深度學(xué)習(xí)的謠言檢測模型準確率都逐漸趨于穩(wěn)定,其中AbaNet模型的準確率達到了90%以上,且趨勢波動明顯更小。綜合以上分析,本文的AbaNet模型具有準確率高、穩(wěn)定性強的特點,相較于其他模型在謠言檢測上更具優(yōu)勢。
圖5 對比實驗結(jié)果
3.3.2 早期檢測效果分析
在謠言檢測的時效性方面,新浪微博中人工查驗并確認謠言大概需要一周左右的時間。而通過尹鵬博等人[23]的分析可知,對于使用微博全部評論數(shù)據(jù)進行訓(xùn)練的研究而言,在評論數(shù)超過500條時才能取得較好的校測效果,而一條微博產(chǎn)生第500條評論的平均時長為31 h,即使用微博全部評論數(shù)據(jù)進行訓(xùn)練的研究,其平均檢測時效為微博發(fā)布后的31 h[24],已經(jīng)遠遠錯過了謠言控制的“黃金四小時”。除此之外,其他多數(shù)研究者在謠言檢測時效性上的探索也沒有脫離對待檢測微博下評論轉(zhuǎn)帖信息的依賴,如Ma等人[11]采取劃分時間序列的方法來實現(xiàn)謠言的早期檢測,其檢測謠言的平均用時為23 h;劉政等人[25]引入了可信檢測點的概念,使檢測出謠言的時間縮短至7 h。
而本文提出的融合用戶歷史傳播信息的微博謠言檢測模型依賴于用戶歷史微博下的評論信息,不需要結(jié)合待檢測微博樣本下的評論信息,因此也避免了等待微博傳播所需要的時間,可以在微博發(fā)布之初就對其進行檢測,在檢測模型已經(jīng)訓(xùn)練好和微博數(shù)據(jù)爬取不受限制的情況下,對于單條微博可以在極短時間內(nèi)得到檢測結(jié)果,其所用時間主要取決于爬取和預(yù)處理用戶歷史微博下的評論信息的時間,更能滿足實際檢測中的時間需求,避免謠言泛濫所帶來的負面影響。
通過以上實驗結(jié)果和分析可知,本文的微博謠言識別模型與其他檢測模型相比,能夠在保證謠言檢測準確率的前提下,大大提高微博謠言的檢測時效。
針對現(xiàn)有謠言檢測工作中存在的問題,本文提出了一種融合用戶歷史傳播信息的微博謠言檢測模型,即AbaNet模型,采用ALBERT模型獲取微博文本和用戶歷史傳播信息的特征向量,解決了不同語境下詞語含義不同的問題;然后通過BiGRU進行全局語義建模,綜合考慮微博的上下文信息;再引入Attention機制優(yōu)化權(quán)重,最后利用獲取的特征得到謠言的檢測結(jié)果。同時,本文將用戶歷史微博下的評論信息作為輸入,不依賴待檢測微博下的評論信息,避免了因等待獲取傳播信息而產(chǎn)生的時間消耗。實驗結(jié)果表明,本文模型具有準確率高、穩(wěn)定性強的特點,并且能夠在獲得較高檢測精度的情況下大大縮短謠言檢測的時間。但是,本文研究僅將謠言檢測問題視為文本分類問題,忽略了用戶以及微博中普遍存在的圖片信息等特征,因此引入用戶等其他非文本特征,進一步提高微博謠言檢測的準確性是本文未來研究的主要方向。