潘德宇,宋玉蓉,宋 波
1(南京郵電大學(xué) 自動化學(xué)院、人工智能學(xué)院,南京 210023)
2(南京郵電大學(xué) 現(xiàn)代郵政學(xué)院,南京 210003)
謠言一般是指與某一事件相關(guān)未經(jīng)核實的陳述或說明[1].隨著社交媒體的迅速發(fā)展,謠言可以通過社交媒體迅速傳播,微博等社交平臺已經(jīng)逐漸成為滋養(yǎng)虛假消息和散布謠言的理想場所,一旦虛假謠言被廣泛傳播,就會引發(fā)諸多網(wǎng)絡(luò)安全問題,產(chǎn)生社會動蕩.因此,謠言檢測[2]至關(guān)重要.微博作為時下最火熱的社交平臺之一擁有數(shù)以億計的用戶基數(shù),在居民生活中占據(jù)不可或缺的地位,本文選用微博社交網(wǎng)絡(luò)作為典型進(jìn)行研究.
謠言檢測問題實際上是一個二分類的問題,目前關(guān)于社交媒體謠言檢測的研究方法主要是基于深度學(xué)習(xí)方法.通過構(gòu)造神經(jīng)網(wǎng)絡(luò)并搭配非線性函數(shù)學(xué)習(xí)文本中的潛在特征,通過卷積神經(jīng)網(wǎng)絡(luò)(CNN)[3]、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)[4]等神經(jīng)網(wǎng)絡(luò)模型對文本序列進(jìn)行特征表示學(xué)習(xí),解決句子分類[5]、情感分類[6]等問題.這些構(gòu)造神經(jīng)網(wǎng)絡(luò)的方法在謠言檢測中取得了顯著效果.
Ma等人[7]在2015年將微博事件相關(guān)所有內(nèi)容根據(jù)時間先后建模為變長時間序列,提出基于循環(huán)神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)文本抽象表示;劉政等人[8]在2017年提出卷積神經(jīng)網(wǎng)絡(luò)的謠言檢測模型,將微博事件向量化,通過隱含層的學(xué)習(xí)訓(xùn)練來挖掘文本深層特征,但是這種方法提取出的文本特征并不全面;李力釗等人[9]在2018年提出的結(jié)合卷積神經(jīng)網(wǎng)絡(luò)和門控循環(huán)單元(GRU)的謠言檢測模型,從微博事件中學(xué)習(xí)到窗口特征序列,再通過GRU[10]學(xué)習(xí)序列特征來進(jìn)行謠言檢測,解決了卷積神經(jīng)網(wǎng)絡(luò)提取特征不全面的問題,但提取出的特征對輸出結(jié)果影響力都一樣,無法區(qū)分明顯特征.
Wang等人[11]在2019年運用了雙頭注意力機(jī)制來進(jìn)行謠言檢測,提出的模型可以自動捕捉上下文信息之間的依賴關(guān)系,并從上下文信息中學(xué)習(xí)全局表示;Fang等人[12]在2019年建立了一個基于自我多頭注意力的卷積神經(jīng)網(wǎng)絡(luò)模型,通過在預(yù)處理的詞向量部分融合多頭注意力機(jī)制挖掘詞語之間的深層特征再通過卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練來進(jìn)行謠言檢測;Wu等人[13]在2019年提出一種篩選的多任務(wù)學(xué)習(xí)方法,具有選定的共享層用于謠言檢測,共享層選用門機(jī)制與注意力機(jī)制對任務(wù)之間的共享特征進(jìn)行過濾選擇.上述文獻(xiàn)[11-13]都將注意力機(jī)制運用到了謠言檢測研究中,解決了提取出的特征對輸出結(jié)果影響力的問題.另外,考慮到了提取特征對輸出結(jié)果的影響力問題的同時,本文還考慮到了提取特征不夠全面的問題在預(yù)訓(xùn)練部分采用BERT模型[14],進(jìn)一步增強(qiáng)了謠言檢測特征提取的全面性.
目前基于深度學(xué)習(xí)構(gòu)造神經(jīng)網(wǎng)絡(luò)的微博謠言檢測研究中,預(yù)訓(xùn)練模型大多采用的是word2vec[15]詞向量或深度語境化詞表征(ELMo)[16].前者中得出的詞向量無法解決多義詞的問題使得訓(xùn)練出的每個詞只能對應(yīng)一個向量表示.后者可以根據(jù)上下文動態(tài)調(diào)整詞嵌入,但是使用長短期記憶網(wǎng)絡(luò)(LSTM)[17]進(jìn)行特征抽取而不是Transformer[18],并且ELMo使用上下文向量拼接作為當(dāng)前向量,這樣融合出的向量特征較差.
本文針對目前的存在挑戰(zhàn)提出了一種引入注意力機(jī)制的Text CNN模型用于微博謠言檢測,通過給不同的特征根據(jù)其影響力賦予不同的權(quán)重,這樣對輸出結(jié)果影響較大的特征就會被賦予更多的權(quán)重,從而對結(jié)果產(chǎn)生更重要的影響,提高微博謠言檢測準(zhǔn)確性.本文方法通過實驗結(jié)果表明,與目前最好的基線方法相比,該方法在新浪微博數(shù)據(jù)集上的準(zhǔn)確率提高了約1.1%,同時在召回率與F1值上也有好的表現(xiàn).
本文采用了BERT預(yù)訓(xùn)練模型,該模型相較于傳統(tǒng)的word2vec和ELMo預(yù)訓(xùn)練模型在效果上有顯著的提升.傳統(tǒng)的預(yù)訓(xùn)練模型,主要限制是標(biāo)準(zhǔn)語言模型是單向的,使得模型預(yù)訓(xùn)練時可以使用的架構(gòu)類型受到限制,而在BERT中,提出了一種新的預(yù)訓(xùn)練目標(biāo):遮蔽語言模型(masked language model,MLM).該模型克服傳統(tǒng)的單向性局限,MLM目標(biāo)允許表征融合左右兩側(cè)的語境,從而可以預(yù)訓(xùn)練一個深度雙向的Transformer.除了遮蔽語言模型外,BERT還引入了“下一句預(yù)測”任務(wù),可以和MLM共同訓(xùn)練文本對的表示.BERT模型運用了句子級負(fù)采樣,對于句子級的連續(xù)性預(yù)測,就是預(yù)測輸入BERT的兩端文本是否連續(xù).在訓(xùn)練過程中,輸入模型的第2段將從所有文本中隨機(jī)選擇,概率為50%,其余50%將選擇第1段的后續(xù)文本.
BERT預(yù)訓(xùn)練模型的結(jié)構(gòu)如圖1所示,它的每一層都對Transformer進(jìn)行了雙向的連接,通過多層的堆疊來構(gòu)建出預(yù)訓(xùn)練模型.它的嵌入層由Token嵌入、分段嵌入和位置嵌入3部分組成.Token嵌入就是最為常見的詞向量形式,同時會在每個句子的首尾處位置分別嵌入[CLS]和[SEP]兩個特殊的Token,通過Token嵌入可以將預(yù)處理后的句子轉(zhuǎn)化為固定維度的向量形式.分段嵌入用來判斷屬于文本是否存在句義相似.位置嵌入主要是用來解決編碼無序的問題,該層會學(xué)習(xí)一個位置向量來表征序列的順序.BERT預(yù)訓(xùn)練模型可以通過特殊的雙向Transformer學(xué)習(xí)到上下文的詞對當(dāng)前詞的影響程度,從而可以增強(qiáng)對語義深層特征的提取.本文通過BERT預(yù)訓(xùn)練模型可以得到微博與其對應(yīng)評論的每一條句向量,句向量的維度固定在768維,這要比傳統(tǒng)的只能轉(zhuǎn)化出100-200維的word2vec方法來說可以提取出更多的語義特征.通過選取微博和對應(yīng)的數(shù)條評論看作是一個事件,最后只需要判斷該事件是否是謠言便可以完成謠言檢測任務(wù).
圖1 BERT模型結(jié)構(gòu)圖Fig.1 BERT model structure diagram
2.2.1 注意力機(jī)制
注意力模型[19]起初用于解碼編碼框架之中,編碼就是將輸入序列轉(zhuǎn)化成一個固定長度的向量,而解碼就是將之前生成的固定長度的向量再轉(zhuǎn)化成輸出序列,這種模型通常被應(yīng)用于翻譯,文本摘取的任務(wù)中.
但是解碼編碼模型具有很大的局限性,最明顯的是作為編碼與解碼聯(lián)系的語義向量長度已經(jīng)固定,也就是說編碼要將信息壓縮到固定長度,這樣便會出現(xiàn)兩個缺點:1)壓縮出的向量無法表示整個序列的信息;2)先輸入的內(nèi)容攜帶的信息會被后輸入的信息稀釋掉,整個序列越長,被稀釋的信息就會越多.所以引入了注意力模型,通過注意力分配的不同,可以關(guān)注到每一個輸入對于預(yù)測結(jié)果的影響.在編碼的過程中,每一次預(yù)測都計算其對輸入的影響,從而在解碼時,輸入序列的每一句都可以對預(yù)測的結(jié)果產(chǎn)生影響.
2.2.2 訓(xùn)練模型
模型的整體流程如圖2所示,首先對運用的數(shù)據(jù)集進(jìn)行預(yù)處理,整理出微博新聞與對應(yīng)評論組成事件,通過BERT預(yù)訓(xùn)練模型生成固定維度的事件句向量;接著通過Text CNN模型對生成的句向量進(jìn)行卷積學(xué)習(xí)操作,得到基于過濾器的特征表示,將特征進(jìn)行拼接得到完整的句義特征輸出;再引入注意力機(jī)制,根據(jù)特征對輸出結(jié)果的影響力不同分別賦予特征不同的權(quán)重得到微博特征權(quán)重輸出;最后通過Softmax分類器進(jìn)行微博謠言事件判定.
圖2 整體流圖Fig.2 Overall flow diagram
詳細(xì)的訓(xùn)練過程如下:
1)輸入預(yù)訓(xùn)練生成句向量.對于數(shù)據(jù)集中所有的謠言與非謠言事件及其相應(yīng)的評論,通過BERT預(yù)處理模型都訓(xùn)練成了句向量.對于每一個微博事件,選取其事件下的相應(yīng)數(shù)條評論和原微博一起作為輸入,輸入層為一個m×n的矩陣,m為選取的事件的總數(shù)量,n則為單條句向量的長度.
2)使用過濾器卷積得到相應(yīng)特征.通過使用尺寸不同的三種過濾器進(jìn)行卷積,分別得到對應(yīng)不同過濾器的特征,過濾器會在m×n的輸入矩陣中不停的滑動,為了方便提取特征,設(shè)定過濾器的長度為k,寬度與輸入矩陣寬度一樣為n,一個過濾器提取出的特征就可以表示為h∈Rk×n,那么對應(yīng)矩陣w中的任意一條u所獲得的特征xi為:
wu=(xu,xu+1,…,xu-k+1)
(1)
在對輸入矩陣卷積完之后就會生成一個特征列表c,每一次卷積生成的特征都會對應(yīng)c:
cu=f(wu*h+b)
(2)
式中的f為ReLU函數(shù),b為偏置項.
3)特征拼接形成完整特征矩陣.當(dāng)過濾器在長度為m的輸入上滑過時,特征列表的長度為(m-k+1),假設(shè)存在q個過濾器,則會產(chǎn)生q個特征列表,將q通過拼接得到矩陣W1
W1=[c1,c2,…,cq]
(3)
cq代表第q個過濾器產(chǎn)生的特征列表.而本文一共運用了三種不同尺寸的過濾器,最后產(chǎn)生的總的矩陣W即為
W=([W1,W2,W3]
=[c1,c2,…,cq,cq+1,…,c2q,c2q+1,…,c3q]
(4)
4)池化,全連接.對每種過濾器獲得的特征采取最大池化操作得到輸出特征,將不同過濾器輸出特征進(jìn)行全連接得到CNN輸出矩陣W′
W′=[c11,c22,…,ckk]
(5)
上述步驟 1)-步驟 4)介紹了完整的CNN卷積操作,操作過程如圖3所示.
圖3 CNN卷積操作過程Fig.3 CNN convolution operation process
5)引入注意力機(jī)制進(jìn)行加權(quán)操作.采用注意力層對CNN層的輸出進(jìn)行加權(quán)求和,以獲取微博序列的隱層表示.對CNN網(wǎng)絡(luò)引入注意力機(jī)制能給CNN網(wǎng)絡(luò)輸出的隱狀態(tài)序列W′賦予不同的權(quán)重,這樣在學(xué)習(xí)微博序列的表示時模型能夠有側(cè)重的利用微博序列信息.該注意力層將CNN網(wǎng)絡(luò)的輸出ckk作為輸入,輸出微博序列對應(yīng)的表示vkk
hi=tanh(WA*ckk+bA)
(6)
(7)
(8)
組成矩陣V=[v11,v22,…,vkk],WA為權(quán)重矩陣,bA為偏置值,hi為ckk的隱層表示,αi為hi與上下文hA的相似度,vi為輸出向量.
6)分類器進(jìn)行微博謠言判別.將輸出向量送入全連接層,通過Softmax分類器對微博事件進(jìn)行謠言與非謠言的二分類,得到相關(guān)概率輸出Pc:
Pc=Softmax(Ws*vi+bs)
(9)
Ws為權(quán)重矩陣,bs為分類層偏置向量.步驟 5)-步驟 6)介紹了引入注意力機(jī)制并通過分類器進(jìn)行判別操作,詳細(xì)過程如圖4所示.
圖4 謠言判別示意圖Fig.4 Rumor discrimination diagram
本文選用的數(shù)據(jù)集一個是來自Ma等人[7]整理并用于論文里的一系列的基于微博平臺的事件數(shù)據(jù),該微博數(shù)據(jù)集是由Ma通過微博API捕獲的原始信息以及給定事件的所有轉(zhuǎn)發(fā)和回復(fù)信息,包含2746818名用戶,3805656篇帖子.另一個是CED_Data set[20],包含微博原文與其相應(yīng)轉(zhuǎn)發(fā)/評論內(nèi)容.數(shù)據(jù)集詳細(xì)統(tǒng)計情況如表1所列.
表1 數(shù)據(jù)集詳情統(tǒng)計結(jié)果Table 1 Data set statistics
研究將所有的數(shù)據(jù)按照4:1的比例并進(jìn)行五折交叉驗證,分別用作模型的訓(xùn)練集與測試集,劃分情況如表2所列.句向量維度設(shè)置為768,參數(shù)優(yōu)化器采用Adam Optimizer[21]更新,dropout設(shè)置為0.8,輸入矩陣長度設(shè)置120,學(xué)習(xí)率設(shè)置0.001.
表2 數(shù)據(jù)集劃分Table 2 Data set partition
本文采用的用來評估模型有效性的評價指標(biāo)與之前文獻(xiàn)中所運用的指標(biāo)一致,分別是精確率,準(zhǔn)確率,召回率和F1值4個.對于二分類問題,預(yù)測結(jié)果和實際結(jié)果兩兩結(jié)合會出現(xiàn)如表3所列4種情況:
表3 二分類問題的結(jié)果表示Table 3 Result representation of binary classification problem
1)準(zhǔn)確率(Accuracy):預(yù)測正確的結(jié)果占總樣本的百分比.
2)精確率(precision):在所有預(yù)測為正的樣本中實際為正的概率.
3)召回率(recall):針對原樣本而言,在實際是正的樣本中被預(yù)測為正樣本的概率.
4)F1值(F1-score):同時考慮精確率與召回率,讓兩者同時達(dá)到最高,再取得平均.
計算方式分如式(10)-式(13)所示:
(10)
(11)
(12)
(13)
將本文方法與其他基線方法在同樣的微博數(shù)據(jù)集上進(jìn)行實驗,本文選取了如下幾個基線方法:
SVM-TS模型[22]:該模型通過時間先后序列來捕捉微博事件隨時間先后的特征變化,使用SVM分類器進(jìn)行分類.
GRU-1模型[7]:該模型將傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)中的循環(huán)單元改為門控單元,不僅可以捕捉到當(dāng)前時間步長中的特征,還能融入前一時刻的特征,同時添加了一個嵌入層有效降低了模型復(fù)雜度,最后通過Softmax進(jìn)行分類.
GRU-2模型[7]:在GRU-1的模型上又添加了一層GRU層,這一層可以捕獲不同時間步長之間更高級別的特征交互,最后也通過Softmax進(jìn)行分類.
CNN-GRU模型[9]:該模型在傳統(tǒng)的CNN上又添加了GRU,既解決了CNN模型無法在時間上學(xué)習(xí)微博時間先后序列相關(guān)特征的問題,也關(guān)注到了RNN模型雖然可以學(xué)習(xí)事件序列表示,但是無法學(xué)習(xí)到微博事件的語句的句義的難題.
CNN-attention模型:該模型是本文所提出的模型,在傳統(tǒng)CNN模型上融入了注意力機(jī)制,在對每一個過濾器經(jīng)過卷積池化操作后所形成的特征,再經(jīng)過全連接層形成完整的特征序列,在這之后加入注意力機(jī)制可以根據(jù)特征對輸出產(chǎn)生的不同影響程度賦予不同的權(quán)重特征.
本文分別在兩個不同微博數(shù)據(jù)集上進(jìn)行實驗對比.通過使用Ma等人的數(shù)據(jù)集,本文方法與基線方法在謠言檢測中效果比較實驗結(jié)果如表4所列,不同模型準(zhǔn)確率的對比圖如圖5所示,從中可以發(fā)現(xiàn)傳統(tǒng)的SVM -TS方法使用分類器進(jìn)行謠言檢測最后的準(zhǔn)確率僅僅只有85.7%,效果并不是特別優(yōu)秀,對比GRU-1、GRU-2、CNN-GRU三種模型的最后結(jié)果可以發(fā)現(xiàn)訓(xùn)練模型中加入卷積神經(jīng)網(wǎng)絡(luò)后因為可以通過過濾器提取到輸入中不同的潛在特征,所以在準(zhǔn)確率上有更好的表現(xiàn)最高達(dá)到了95.7%,而我們的模型在引入注意力機(jī)制后,考慮CNN輸出特征表示對最終輸出結(jié)果影響力問題,對不同輸出特征賦予不同權(quán)重這樣對輸出結(jié)果影響較大的特征就會被賦予更多的權(quán)重,從而對結(jié)果產(chǎn)生更重要的影響,有助于進(jìn)行謠言檢測,結(jié)果表明我們的模型準(zhǔn)確率達(dá)到了96.8%,并且在召回率和F1值上也有不錯的提升.
圖5 模型準(zhǔn)確率對比圖(Ma數(shù)據(jù))Fig.5 Model accuracy comparison chart(Ma data)
表4 不同檢測方法下的實驗結(jié)果對比(Ma數(shù)據(jù))Table 4 Comparison of experimental results under different detection methods(Ma data)
通過使用CED_Data set數(shù)據(jù)集,使用相同預(yù)訓(xùn)練模型,比較不同訓(xùn)練模型謠言檢測中效果.實驗結(jié)果如表5所列,不同模型準(zhǔn)確率的對比圖如圖6所示,實驗結(jié)果表明,通過BERT預(yù)訓(xùn)練模型獲得的句向量在不同的訓(xùn)練模型上進(jìn)行訓(xùn)練在準(zhǔn)確率方面仍然會有偏差,但是偏差幅度對比之前使用不同預(yù)訓(xùn)練模型要小.通過實驗可以得出,SVM -TS的準(zhǔn)確率大概為86.7%,其次依次是GRU-1、CNN-GRU、GRU-2模型,效果最好的是我們提出的CNN-Attention模型,準(zhǔn)確率達(dá)到了95.3%,并且在召回率和F1值上體現(xiàn)出的效果也是眾多模型中最好的.
圖6 模型準(zhǔn)確率對比圖(CED _Data)Fig.6 Model accuracy comparison chart(CED _Data)
表5 不同檢測方法下的實驗結(jié)果對比(CED _Data)Table 5 Comparison of experimental results under different detection methods (CED _Data)
綜上所述,我們的模型在兩個不同的數(shù)據(jù)集上都表現(xiàn)出了良好的效果,通過使用BERT預(yù)訓(xùn)練模型可以提取更為全面的特征表示,引入注意力機(jī)制的Text CNN模型考慮到提取特征對輸出結(jié)果的影響力問題,通過給提取特征賦予權(quán)重可以有效提高謠言檢測效率.
CNN模型中使用不同尺寸的過濾器可以提取出不同程度的語義特征,但是選擇的過濾器尺寸過小,就會無法完整的提取句義表征;選擇的過濾器尺寸過大,就會引入不必要的噪聲.因此本環(huán)節(jié)選用了不同尺寸的過濾器進(jìn)行實驗.
通過表6與圖7實驗結(jié)果說明:卷積尺寸的不同會對準(zhǔn)確率產(chǎn)生影響,但是總的來說影響并不是很大,選用卷積尺寸為4、5的過濾器的準(zhǔn)確率要比尺寸為3、4和3、5的過濾器的效果好,而選用尺寸為3、4和5的過濾器效果則優(yōu)于前三個,準(zhǔn)確率高了大約1%,達(dá)到了96.8%.
表6 不同卷積尺寸結(jié)果表Table 6 Results table for different convolution sizes
圖7 不同卷積尺寸對比圖Fig.7 Comparison chart of accuracy of different convolution sizes
本研究提出了一種新的考慮注意力機(jī)制的謠言檢測模型,能夠有效解決微博謠言事件判斷問題.采用BERT模型將部分下游自然語言處理任務(wù)轉(zhuǎn)移到預(yù)訓(xùn)練模型,有效解決了提取特征不夠全面的問題;采用引入注意力機(jī)制的Text CNN訓(xùn)練模型,根據(jù)所提取特征對輸出結(jié)果影響力不同賦予不同權(quán)重,可以更有效的提取更為顯著的文本深層特征,有效解決了提取特征對輸出結(jié)果的影響力問題.本方法在真實微博數(shù)據(jù)集上經(jīng)過實驗驗證具有較好的謠言檢測效果.