沈瑞琳,潘偉民,彭 成,尹鵬博
新疆師范大學 計算機科學技術學院,烏魯木齊830054
新浪微博的廣泛應用,使信息的傳播和共享更加的快捷。大量的微博用戶隨時隨地地發(fā)表自己對各種信息的看法,這些信息借助關注者的轉(zhuǎn)發(fā),在整個社交網(wǎng)絡中傳播,其中不乏有謠言信息。謠言信息的廣泛傳播給人們的日常生活和社交網(wǎng)絡的健康發(fā)展都造成了不利影響。因此,研究如何自動有效地檢測謠言具有非常重要的意義。
研究表明[1-4],當一條謠言信息被發(fā)表之后,其他用戶在轉(zhuǎn)發(fā)或者評論該信息時,常伴隨著負面的情感,例如懷疑、焦慮、憂愁、忐忑、恐懼、驚慌等,相比于非謠言博文,謠言博文伴隨的負面情感色彩更濃厚[1]。因此情感傾向作為謠言檢測的一個重要特征,對于準確識別謠言有非常大的幫助。
目前,謠言檢測主要采用基于傳統(tǒng)機器學習和深度神經(jīng)網(wǎng)絡的方法,不僅研究了如何構(gòu)建高效的神經(jīng)網(wǎng)絡模型,還研究了很多方面的特征,例如謠言的文本特征、情感特征[2]或發(fā)表者的相關特征等。
雖然基于深度神經(jīng)網(wǎng)絡的方法已經(jīng)在微博謠言檢測任務上取得了很大的進步。但是,采用基于受監(jiān)督的單任務目標來訓練模型面臨著帶標簽數(shù)據(jù)不足的問題。對此,鑒于謠言與情感傾向的強關聯(lián)性,本文采用多任務學習(Multi Task Learning,MTL)框架來共同學習謠言檢測和情感分析兩個相關任務,由于涉及多個任務的數(shù)據(jù)集,增加了謠言檢測模型學習的數(shù)據(jù)量,解決了帶標簽數(shù)據(jù)不足的問題,并降低了單任務學習中的過度擬合程度。本文設計了一種基于BERT(Bidirectional Encoder Representations from Transformers)和雙向門控循環(huán)單元(Gated Recurrent Unit,GRU)的聯(lián)合神經(jīng)網(wǎng)絡對謠言檢測數(shù)據(jù)和情感分析數(shù)據(jù)進行建模,包含謠言檢測層和共享層,通過聯(lián)合訓練,獲取任務之間的共享特征,通過謠言檢測層獲取謠言檢測任務的獨有特征,利用共享特征輔助謠言檢測任務,提升模型的學習能力。
謠言自動檢測一直是自然語言處理領域(Natural Language Processing,NLP)的研究熱點。根據(jù)研究方法的區(qū)別,可以將其分為兩類,分別是基于傳統(tǒng)機器學習的方法和基于深度神經(jīng)網(wǎng)絡的方法。
(1)基于傳統(tǒng)機器學習的方法
相比于國內(nèi)的微博平臺,國外的Twitter平臺對謠言檢測的時間更早。Castillo等人[5]在2011年針對Twitter平臺,打破了人工檢測的制約,首次提出自動檢測博文信息是否可信的方法,開啟了謠言自動檢測的先河。2012年,Yang等人[6]首次提出面向新浪微博的自動謠言檢測方法,該方法根據(jù)微博平臺提供的信息提取了19個特征,然后利用SVM分類器對微博信息進行分類。隨后,研究者在此基礎上展開了進一步的研究[7-11],通過尋找事件相關信息中的情感極性、質(zhì)疑更正信號、用戶影響力、地理位置信息、傳播結(jié)構(gòu)的相似性等特征提高模型的檢測效果。但是,基于傳統(tǒng)機器學習的方法需要人工構(gòu)建特征,不僅消耗大量的人力、物力和時間,模型的魯棒性也不強。
(2)基于深度神經(jīng)網(wǎng)絡的方法
為避免人工構(gòu)造特征,研究者提出了基于深度學習的方法。Ma等人[12]采用循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN),通過學習微博事件的連續(xù)信息來捕獲信息隨時間變化的特征,實驗結(jié)果表明該方法優(yōu)于使用手工制造特征的謠言檢測模型。隨著卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)在圖像處理領域取得的成功,Yu等人[13]提出了一種基于卷積神經(jīng)網(wǎng)絡的謠言檢測方法,該方法根據(jù)謠言信息和非謠言信息的分布特點,對事件進行分組,進而獲取輸入信息的全局特征和分布在每個輸入序列的關鍵特征。單一模型對特征的提取總是存在局限,對此研究中提出了聯(lián)合神經(jīng)網(wǎng)絡模型,尹鵬博等人[14]提出了一種基于用戶特征分析的微博謠言早期檢測方法,通過對用戶歷史微博進行情感分析得到用戶的發(fā)文行為特征,結(jié)合用戶屬性和微博文本,采用CNN和長短期記憶神經(jīng)網(wǎng)絡(Long Short-Term Memory,LSTM)聯(lián)合模型提取特征進行謠言檢測。相比LSTM神經(jīng)網(wǎng)絡,GRU的參數(shù)更少,李力釗等人[15]提出一種將CNN和GRU聯(lián)合的微博謠言檢測模型,該方法利用CNN捕獲微博信息的局部特征,利用GRU捕獲微博信息的上下文特征,從而得到全局特征。
目前,微博謠言檢測領域的帶標簽數(shù)據(jù)尚不充足,采用深度神經(jīng)網(wǎng)絡模型容易導致模型過擬合。對此,一些研究者提出了無監(jiān)督的方法[16-17],但是,無監(jiān)督模型存在穩(wěn)定性差的問題。
MTL早在1997年就已經(jīng)被提出,在NLP任務中能夠顯著改進實驗結(jié)果。例如,Liu等人[18]提出了三種基于RNN的共享信息模型,第一個模型對所有任務使用一個共享層,第二個模型對不同的任務使用不同的網(wǎng)絡層,但是每一層都可以從其他層獲取信息,第三個模型為每個任務分配一個特定的網(wǎng)絡層,同時為所有任務建立一個共享層。實驗結(jié)果表明,模型三的效果最好,該模型通過將多個任務聯(lián)合起來訓練,解決了帶標簽數(shù)據(jù)少的問題。在此基礎上,Ma等人[19]對模型三進行了改進,采用GRU作為共享層和任務特定層,提出了一個將謠言檢測和姿態(tài)分類這兩個高度相關的任務結(jié)合起來的聯(lián)合框架,通過權值共享的方法對兩個任務進行聯(lián)合訓練,提取出多個任務的共同特征,同時每個任務仍然可以學習其任務的特定特征,該方法使兩個任務都獲得了比基線方法更好的效果。
在謠言檢測工作中,研究者指出情感特征對謠言檢測的重要性[1-4]。如首歡容等人[3]指出網(wǎng)絡謠言具有語言風格夸張、情感特征異常的特點,對此提出了一種基于情感分析技術的謠言檢測方法,通過基于情感詞典的情感分析方法,判定低質(zhì)量信息源提供的信息是否屬于謠言。李巍胤[4]指出謠言信息中包含的負面情緒遠超出非謠言信息中所包含的負面情緒,將情感極性特征作為識別謠言的一個重要特征,提取評論和轉(zhuǎn)發(fā)信息中的情感特征,加入到微博謠言識別的特征屬性之中,訓練謠言檢測分類器。
以往的謠言檢測研究中都有一個共同的不足,即都是單任務學習,只涉及謠言檢測這一個任務。單任務學習對數(shù)據(jù)集中包含的信息利用并不充分,現(xiàn)有的微博謠言檢測任務僅有少量的帶標簽數(shù)據(jù),在基于深度神經(jīng)網(wǎng)絡的模型中數(shù)據(jù)集較少時容易出現(xiàn)過擬合的現(xiàn)象。對此,本文采用MTL的方法,通過將微博謠言檢測任務和情感分析任務之間的信息共享解決微博謠言檢測任務帶標簽數(shù)據(jù)少的問題。
MTL將多個相關任務放在一個神經(jīng)網(wǎng)絡中并行學習,一般分為一個主要任務和若干個輔助任務,通過隱層利用不同任務之間的相似性來輔助決策。本文中微博謠言檢測為主任務,情感分析為輔助任務。
考慮到謠言檢測和情感分析既有相關聯(lián)的共同特征,又有各自獨有的特征,比如負向情感和判斷為是謠言信息具有共同的特征,但是情感分析更加注重情感傾向性,而謠言檢測更加注重信息的真?zhèn)涡浴Υ?,本文模型既包含共享隱層又包含獨立于特定任務的網(wǎng)絡層,由嵌入層、謠言檢測層、共享層、分類器四部分組成,如圖1所示。
圖1 基于BERT-BiGRU的多任務微博謠言檢測模型Fig.1 Multi-task Weibo rumor detection model based on BERT-BiGRU
利用World2vec對數(shù)據(jù)進行向量化,將謠言檢測數(shù)據(jù)和情感分析數(shù)據(jù)分別輸入到各自的嵌入層,然后由謠言檢測層捕獲任務特有的數(shù)據(jù)特征,此外,還要將多個任務的數(shù)據(jù)輸入到共享層,捕獲多個任務之間的共同特征,將共同特征作為謠言檢測任務的補充信息,提高謠言檢測的效果。
(1)共享層
BBiGM的成功之處就是可以通過共享層共享多個任務之間的共同特征,充分利用任務之間的互補性及語料數(shù)據(jù)信息,進而提高微博謠言檢測任務的預測性能。在這一層提取的共同特征,將作為微博謠言檢測任務的輸入之一。
共享層采用預訓練語言模型BERT。BERT通過自注意力機制建模,可以直接獲取文本的全局信息,由于其沒有遺忘門機制,所有詞的信息都得以保留,因此BERT能夠更好地表達句子的完整語義信息,同時也能從全局的詞特征中直接尋找詞與詞之間的相關性特征。因此,采用BERT模型能夠捕獲多個任務之間更多的共享信息。
(2)謠言檢測層
謠言檢測層采用BiGRU模型,用于獲取微博謠言檢測數(shù)據(jù)的特有特征。該部分包含兩個來源的輸入,微博數(shù)據(jù)嵌入層的輸出和共享層輸出的共享特征,將兩者進行融合相當于給微博謠言檢測增加了更多判斷信息。BiGRU是由兩個方向相反的GRU單元共同組成的,輸出狀態(tài)由兩個GRU共同決定的雙向網(wǎng)絡結(jié)構(gòu)。GRU與LSTM類似,都是RNN的衍生神經(jīng)網(wǎng)絡結(jié)構(gòu),在單向的網(wǎng)絡結(jié)構(gòu)中,數(shù)據(jù)總是單向順序地從前向后傳遞[8]。如果狀態(tài)能夠由前一時刻和后一時刻共同傳遞,將更有助于對文本深層次的特征進行提取。BiGRU的結(jié)構(gòu)如圖2所示。
圖2 BiGRU神經(jīng)網(wǎng)絡模型Fig.2 BiGRU neural network model
由于BiGRU可以看做是由兩個反向的GRU組成,因此在t時刻的隱層狀態(tài)是由前向隱層狀態(tài)hft-1和反向隱層狀態(tài)ht-1共同決定的:
GRU()代表輸入詞向量的非線性變換,通過GRU()函數(shù)得到詞向量編碼對應的隱層狀態(tài),wt代表t時刻所對應的前向隱層狀態(tài)hft所對應的權重,vt表示t時刻所對應的反向隱層狀態(tài)hrt所對應的權重,bt代表t時刻隱層狀態(tài)所對應的偏置。
(3)分類器
將共享層和特定任務層融合后的特征輸入到softmax層,采用線性修正單元函數(shù)(Rectified Linear Units,ReLU)作為激活函數(shù)。輸出對一個事件是否為謠言的檢測結(jié)果。謠言檢測任務的分類過程可以定義為:
其中,yr代表謠言檢測任務的預測概率;Wr代表需要學習的權重;hr是謠言檢測任務特定層的最終輸出;br是偏置項。
本研究采用Pycharm作為編程IDE,BBiGM聯(lián)合神經(jīng)網(wǎng)絡模型基于Tensorflow 2.0實現(xiàn),編程語言為Python 3.6。
采用操作系統(tǒng)為Windows10 64位、內(nèi)存為16 GB、CPU為i7-8750H、處理器為Intel?CoreTMi7-8750H CPU@2.20 GHz 2.21 GHz的計算機作為實驗硬件環(huán)境。
在MTL中,多個任務之間的相關性越強,對任務的輔助作用越大,因此,本文的兩個任務都采用微博相關的數(shù)據(jù)集。
微博謠言檢測采用Ma等人公開的數(shù)據(jù)集,該數(shù)據(jù)集被認為是目前最權威的微博謠言檢測數(shù)據(jù)集,由事件及與事件相關的評論轉(zhuǎn)發(fā)等信息構(gòu)成。謠言事件和非謠言事件比例約是1∶1,其中謠言事件2 313個,非謠言事件2 351個。本文將數(shù)據(jù)分為驗證集、訓練集和測試集三部分,其中10%的事件為驗證集,其余數(shù)據(jù)按照3∶1的比例分割用于訓練集和測試集。
情感分析采用公開的新浪微博評論語料(weibo_senti_100k)數(shù)據(jù)集。數(shù)據(jù)集含10萬條帶傾向性標注的數(shù)據(jù),其中正負評論各約5萬條,1表示正向評論,0表示負向評論。
為了提高數(shù)據(jù)的質(zhì)量,對微博謠言檢測任務數(shù)據(jù)和情感分析任務數(shù)據(jù)進行了去噪處理。利用正則表達式去除了數(shù)據(jù)中的@符號、@的內(nèi)容、空格、空行、URL信息等。本文中并沒有去掉表情符號,因為如今表情符號已經(jīng)成為人們在網(wǎng)絡平臺表達自己想法的一種重要形式,深度神經(jīng)網(wǎng)絡也可以根據(jù)表情符號挖掘深層情感特征,因此,這里保留了文本中的表情符號。
由于模型中將共享層提取的特征用于共享,因此可以將該層針對微博謠言檢測任務進行微調(diào),對于是否進行微調(diào)本文設計了相關實驗,結(jié)果如表1所示。進行微調(diào)比不進行微調(diào)的準確率高出了0.8個百分點。因此,本文選擇微調(diào)后的模型進行謠言檢測。其中,before對應的是模型微調(diào)前的結(jié)果,after對應的是模型微調(diào)后的結(jié)果。
表1 模型微調(diào)前后的實驗結(jié)果對比Table 1 Comparison of experimental results before and after model fine-tuning
學習率的最優(yōu)值可以通過學習率選擇實驗確定,本文分別在15組數(shù)據(jù)上進行實驗,實驗結(jié)果如圖3所示。
圖3 準確率與微調(diào)學習率的關系Fig.3 Relationship between accuracy and fine-tuning learning rate
通過圖3的實驗結(jié)果可知,當微調(diào)學習率為0.000 8時,得到的準確率最高。
為了探究多任務學習模型是否比單任務學習更有效,以及情感分析任務是否對謠言檢測有幫助。本文設計了單任務學習與多任務學習的對比實驗,以本文設計的多任務學習模型為基礎設計單任務學習模型,將BBiGM模型中的情感分析嵌入層去掉,將向量化后的微博謠言檢測數(shù)據(jù)分別輸入到謠言檢測層和共享層,將兩個神經(jīng)網(wǎng)絡輸出的最終狀態(tài)進行融合,然后再通過Softmax層進行分類。實驗結(jié)果對比如表2所示。其中S-task表示單任務學習(Single-task),M-task表示多任務學習(Multi-task)。
表2 單任務與多任務實驗結(jié)果對比Table 2 Comparison of single-task and multi-task experimental results
從表2的結(jié)果可以看出多任務學習比單任務學習的準確率高出了1.7個百分點,證明了多任務學習比單任務學習效果更好。
為了驗證本文方法的有效性,選取了目前較好的模型作為基線模型進行對比實驗,分別是DT-Rank[5]、DTC[8]、SVM-TS[10]、GRU、GRU-2[12]、C-LSTM[14]。本文將BBiGM模型的實驗結(jié)果與上述線模型進行對比,如表3所示。
表3 展示了本文模型與各基線模型的對比結(jié)果,基線模型中包含傳統(tǒng)機器學習方法和傳統(tǒng)深度學習方法,其中,DT-Rank、DTC、SVM-TS是傳統(tǒng)機器學習模型,GRU、GRU-2、C-LSTM是深度學習模型。
表3 BBiGM模型與各基線模型的實驗結(jié)果對比Table 3 Comparison of experimental results between BBiGM model and each baseline model
在基于傳統(tǒng)機器學習的方法中,SVM-TS的效果最優(yōu),準確率達到了85.7%,由于深度學習模型可以提取數(shù)據(jù)的更多隱層特征,因此基于深度學習方法的結(jié)果普遍優(yōu)于基于傳統(tǒng)機器學習的方法。在基于深度學習的方法中,C-LSTM模型的效果最優(yōu),準確率達到了91.7%,這是由于雙層網(wǎng)絡結(jié)構(gòu)有助于獲取更深層的特征信息,C-LSTM模型在雙層神經(jīng)網(wǎng)絡的基礎上將CNN提取局部特征的優(yōu)勢和LSTM提取全局特征的優(yōu)勢相結(jié)合,有利于全局特征的提取。與各基線模型相比,BBiGM模型在準確率、精確率和F1值上都表現(xiàn)出最優(yōu)的結(jié)果,其中準確率達到了95.8%,這是優(yōu)于單任務深度學習方法存在帶標簽數(shù)據(jù)少的問題,而且單任務學習對現(xiàn)有數(shù)據(jù)的利用并不充分。BBiGM模型利用情感分析任務輔助謠言檢測,不僅隱形地增加了謠言檢測的數(shù)據(jù)集,還融入了情感特征。此外,BERT模型的深層網(wǎng)絡結(jié)構(gòu)有助于挖掘更多的多個任務之間的關聯(lián)特征,雙向的GRU結(jié)構(gòu)有助于獲取謠言檢測數(shù)據(jù)的全面特定。因此,本文提出的BBiGM模型比基線模型學習效果更佳。
為了探究多任務學習中相關輔助任務的數(shù)據(jù)量對主任務的影響,本文用不同數(shù)據(jù)量的微博情感分析數(shù)據(jù)對模型進行訓練。按照有放回的采樣方法隨機抽取微博情感分析數(shù)據(jù)中的1萬條、2萬條……10萬條數(shù)據(jù)對模型進行訓練,每次訓練都是從模型的原始狀態(tài)開始。觀察10組數(shù)據(jù)對微博謠言檢測任務學習效果的影響,選取準確率作為參照指標,實驗對比結(jié)果如圖4所示。
圖4 準確率與輔助任務數(shù)據(jù)量的關系Fig.4 Relationship between accuracy and auxiliary task data volume
圖4 表明,隨著輔助任務數(shù)據(jù)量的增長,主任務的準確率也在提高。這是由于共享層采用BERT模型,包含12層的transfermer,在這種深層網(wǎng)絡結(jié)構(gòu)中,數(shù)據(jù)量是支撐模型獲取深層特征的重要因素,因此隨著輔助任務數(shù)據(jù)量的增加,共享層可以獲取越來越多的共同特征。同樣的,BiGRU作為模型中的任務特定層,更多的數(shù)據(jù)對于獲取謠言檢測任務中的深層特征也非常必要。但是,當輔助任務的量增加到一定程度時,準確率的增長速度趨于平緩,說明本文模型僅需一定量的帶標簽輔助數(shù)據(jù)集就可以達到較好的學習效果。
本文所提出的基于多任務學習的微博謠言檢測方法,通過將微博謠言檢測任務和相關任務進行聯(lián)合學習,有效利用了相關領域的數(shù)據(jù),解決了深度學習中帶標簽數(shù)據(jù)少的問題,提高了謠言檢測的效果。實驗研究表明了基于多任務學習方法的可行性和有效性。本文方法的輔助任務需要與微博謠言檢測任務有較強的相關性,否則檢測效果不太理想。為實現(xiàn)對謠言的有效檢測,還需進一步探究模型算法,以提高模型的泛化能力,減少模型對數(shù)據(jù)相關性的依賴。