鐘南江 陳軒弘
摘要:網(wǎng)絡謠言已成為近年來威脅社會穩(wěn)定的一大重要因素,基于社交網(wǎng)絡傳播的謠言具有變化形式快、擴散速度快和影響層面廣等特點,對公安民警的謠言治理水平提出了新的要求?;跈C器學習和深度學習的自動化謠言檢測方法是當前謠言治理的突破點。對中文微博謠言數(shù)據(jù)集進行了預處理,采用One-hot,TF-IDF,Doc2Vec將文本向量化,基于邏輯回歸、神經(jīng)網(wǎng)絡算法構建相應模型,在謠言數(shù)據(jù)集上進行了實驗性能評估與對比分析。結(jié)果顯示,基于Doc2Vec和神經(jīng)網(wǎng)絡的謠言檢測模型在謠言數(shù)據(jù)集上的準確率最高。
關鍵詞:社交網(wǎng)絡;神經(jīng)網(wǎng)絡;謠言檢測
中圖分類號:TP391文獻標志碼:A文章編號:1008-1739(2022)13-57-7

當前,社交網(wǎng)絡中充斥著網(wǎng)絡謠言,尤其是在微博等網(wǎng)絡自媒體較多的社交網(wǎng)絡中,謠言的轉(zhuǎn)發(fā)達到了驚人的數(shù)量。目前,對于謠言的發(fā)現(xiàn)和檢測大多通過人工搜索、接受舉報等方式,這種方法效率低且具有一定的滯后性,難以對謠言的形成和發(fā)展進行有效的預防和封堵。在公安實踐中,謠言治理已成為當前工作的一大痛點、難點,如何及時有效地對謠言進行發(fā)現(xiàn)、處理是當下需要關注的一個重要問題。本文通過研究分析自然語言處理的前沿算法,提出高效的謠言檢測模型,可以為公安實戰(zhàn)提供有力支撐。
最常見的方法是將謠言檢測問題歸結(jié)為一個二元分類問題。然而在實際情況中,將所有新聞分為2類(真實新聞或謠言)是困難的,因為某些情況下,謠言中也摻雜了部分的真實新聞。為了解決這個問題,一種常見的做法是增加一個額外的分類。增加分類的方法主要有2種:一種是對既不完全真實也不完全虛假的新聞分成一個單獨的類別;另一種是設置2個以上的真實度。后者的分類模式更加接近人類的判斷方式。
現(xiàn)有的謠言檢測方法[1-2]中常用的分類模型是支持向量機(SVM)和樸素貝葉斯模型(NBC)。邏輯回歸(LR)和決策樹、隨機森林算法(RFC)也被使用。這些算法提取了評論中的文本內(nèi)容、用戶屬性、信息傳播和時間特性的分類特征,進行特征歸一化后使用分類模型進行謠言檢測。
目前,隨著GPU等計算水平的提高,基于深度學習模型[4-9]在自然語言處理任務中表現(xiàn)優(yōu)異,并逐漸成為NLP的主流方向。在斯坦福著名的機器閱讀理解競賽中,基于深度學習的模型在SQuAD2.0數(shù)據(jù)集中的表現(xiàn)已經(jīng)超過人類水平。
本文研究的是對社交網(wǎng)絡中存在的大量中文新聞文本數(shù)據(jù)進行挖掘和研究,并分析多種自然語言處理模型在謠言檢測任務上的性能,比較模型性能以及模型優(yōu)缺點。最后選取合適的模型應用于社交網(wǎng)絡中的謠言檢測。
目前,中文文本的謠言集中出現(xiàn)在微博和微信兩大互聯(lián)網(wǎng)平臺上。其中,微信平臺由于其相對隱私性,謠言的文本數(shù)據(jù)較難獲?。晃⒉┢脚_有專門的辟謠賬號,謠言的文本數(shù)據(jù)獲取難度相對較低。因此,本文采用微博數(shù)據(jù)進行謠言檢測的訓練數(shù)據(jù),數(shù)據(jù)來自DataFountain數(shù)據(jù)科學競賽網(wǎng)站中的疫情期間互聯(lián)網(wǎng)虛假新聞檢測競賽的訓練數(shù)據(jù)集(www. datafountain.cn/competitions/422/datasets)。
該數(shù)據(jù)集中有49 910個樣本,共有9個標簽,分別為:id(新聞id)、content(新聞的文本內(nèi)容)、picture_lists(新聞圖片id)、comment_2(新聞的至多2條評論)、comment_all(新聞的所有評論)、category(新聞所屬領域)、ncw_ label(是否需要進行真值判斷)、fake_ label(取值為{0,1},0表示非虛假新聞,1表示虛假新聞)、real_ label(取值為{0,1},0表示非真實新聞,1表示真實新聞)。使用Python的collections庫中的Counter函數(shù)對標簽ncw_ label進行統(tǒng)計,得到{0∶33806,1∶16104},根據(jù)標簽說明,選取ncw_ label取值為0的33 806個數(shù)據(jù)作為訓練樣本。本文基于謠言文本進行分類建模,因此,選取數(shù)據(jù)集的content和fake_label標簽作為本文建模分析的數(shù)據(jù)。再使用Counter函數(shù)對標簽fake_ label進行統(tǒng)計,得到{0∶16965,1∶16841},表明,在33 806個數(shù)據(jù)中,有16 965個真實新聞,16 841個虛假新聞。
實踐表明,中文文本中的標點對中文語義的理解影響不大,反而會成為數(shù)據(jù)的噪聲,影響模型的精度。因此,先將中文文本數(shù)據(jù)中的標點和數(shù)字去除,僅留出中文文本。接著,對中文文本進行分詞處理。中文文本的分詞是基于現(xiàn)有的中文語料,對架設的分詞模型進行訓練,從而使分詞模型獲得符合一般中文表達習慣的中文文本切分能力。本文選用pkuseg分詞工具包,該分詞工具包內(nèi)專門根據(jù)微博語料構建了網(wǎng)絡領域模型,分詞效果相比同類工具較好。
目前,絕大部分算法工具無法直接對輸入的中文信息進行處理,只能在數(shù)值上進行運算。因此,需要通過一定的方法將中文的文本數(shù)據(jù)轉(zhuǎn)換為算法可讀的數(shù)值化數(shù)據(jù),這個轉(zhuǎn)換的過程可稱為特征工程,或特征提取。
特征提取的過程也是訓練文本表示的過程,是用一組數(shù)值向量來表示一個詞匯、一個句子、一個段落,從而將文本數(shù)據(jù)轉(zhuǎn)換為向量化、結(jié)構化的數(shù)據(jù),以便下游任務使用。文本轉(zhuǎn)化為數(shù)值向量后,可以直接對文本映射的向量空間中的點進行數(shù)據(jù)挖掘和分析。當前,主流的詞匯向量化表示方法有2種類型:一種是離散化的文本表示;另一種是分布式的文本表示。
2.1基于離散化的文本表示
One-hot編碼是對文本進行編碼最簡單的方法,是一種離散化的詞匯表示方法。One-hot方法首先根據(jù)目標文本創(chuàng)建一個大小為的詞典,為文本所含的獨立的詞匯個數(shù),之后將每個詞匯映射成長度為的向量,單詞在詞典的第個位置則將向量的第位標記為1,該向量的其余位置標記為0。

2.2基于分布式的文本表示
由于離散化的文本表示方法無法形成對文本語義的表示,因此引入分布式的文本表示方法。在分布式的文本表示方法中,數(shù)值向量是稠密的,一般情況下,詞匯在向量的每個維度上都有非0的取值。
2.2.1 Word2vec
當理解一個陌生詞匯的意思時,通常會通過它周圍的詞語的意思對它的意思進行預測。同樣的,我們也可以通過一個詞來預測其上下文中相關的詞。Word2Vec[10]正是借助這一理念構建的詞向量模型,其模型結(jié)構圖如圖1所示。

可以看到,Word2Vec主要由3個模塊構成:詞匯表構建器、上下文環(huán)境構建器和參數(shù)學習器。詞匯表構建器用于接收原始的文本數(shù)據(jù),并根據(jù)給定的文本語料構建詞匯表。上下文環(huán)境構建器使用詞匯表構建器的輸出結(jié)果,以及上下文環(huán)境窗口的詞作為輸入,然后產(chǎn)生輸出。參數(shù)學習器為一個3層的神經(jīng)網(wǎng)絡,輸入層神經(jīng)元的個數(shù)和訓練的詞匯表大小一致,隱層神經(jīng)元的數(shù)量就是最后得到的詞向量維度大小,輸出層的神經(jīng)元數(shù)量和輸入層相同。
Word2Vec中有2個算法:連續(xù)詞袋(CBOW)算法和跳躍語法(Skip-gram)算法。算法模型如圖2所示。

在CBOW算法中,目標詞的上下文環(huán)境由其周邊多個詞來表示,而Skip-gram算法則反過來利用目標詞預測上下文的詞。
2.2.2 Doc2Vec
Doc2Vec[3]由Quoc Le和Thomas Mikolov于2014年提出。他們基于Word2Vec進行了改進,并且使得文檔向量的大小不受文檔詞匯個數(shù)的影響,并且在較大的文本數(shù)據(jù)中,擁有比Word2Vec更好的文本語義捕捉能力。
Doc2Vec的訓練方式與Word2Vec大體相同,但在Doc2Vec中,增加了一個句向量來表示文段的意思,每次訓練時,Doc2Vec都會設置滑動窗口并截取窗口大小數(shù)量的詞與句向量共同進行訓練,此時的句向量可以看作一個一直參與訓練的詞向量,因此,每次訓練句向量都能捕獲到訓練詞表達的語義,該向量對文段主旨的表達會越來越準確,并最終作為整個文段的向量表示。
3.1邏輯回歸

3.2神經(jīng)網(wǎng)絡
神經(jīng)網(wǎng)絡可以理解為一個能擬合任意函數(shù)的黑匣子,每個神經(jīng)網(wǎng)絡都有輸入層\輸出層\隱藏層,每個層之間根據(jù)任務的需要,也會設置若干個節(jié)點。輸入層和輸出層各有一個,可以理解為函數(shù)中的自變量和應變量,而隱藏層可以有多個,類似于函數(shù)中的系數(shù),在神經(jīng)網(wǎng)絡中,隱藏層是不可見的,層與層之間都有特定的鏈接方式。以全連接神經(jīng)網(wǎng)絡為例,本層的單個神經(jīng)元接收上一層所有神經(jīng)元的傳入,輸入維度是上一層的節(jié)點個數(shù),同時,神經(jīng)元的輸入又與下一層的所有神經(jīng)元相連接。如圖3所示是一個4層的神經(jīng)網(wǎng)絡結(jié)構圖,第1層為輸入層,有12個神經(jīng)元;第2、3層為隱層,分別有8個和2個神經(jīng)元;第4層為輸出層,有1個神經(jīng)元。

本文采用5層的全連接神經(jīng)網(wǎng)絡進行模型的訓練,其中第1層為輸入層,接收傳入的句向量,句向量維度為64維,第2~4為隱藏層,神經(jīng)元個數(shù)分別為32,16,8;第5層為輸出層,輸出一個一維的結(jié)果。
4.1評價指標
本文將33 806個樣本數(shù)據(jù)分成訓練數(shù)據(jù)和測試數(shù)據(jù),訓練數(shù)據(jù)共27 044條,占到總樣本數(shù)的80%,測試數(shù)據(jù)共6 762條,占到總樣本數(shù)的百分之20%。在句向量維度上選擇64維的向量作為模型的輸入。模型性能評估采用準確率(Accuracy)、精確度(Precision)、召回率(Recall)和F1 Score作為評價指標。模型在對訓練數(shù)據(jù)擬合后,對測試數(shù)據(jù)進行預測,并選取模型輸出值大于0.5的數(shù)據(jù)作為預測的正例。根據(jù)預測結(jié)果生成混淆矩陣,混淆矩陣如表1所示。

其中,TP代表將正例預測為正例數(shù);FN代表將正例預測為反例數(shù);FP代表將反例預測為正例數(shù);TN代表將反例預測為反例數(shù)。

從實驗結(jié)果來看,使用Doc2Vec作為文本表示方法,使用神經(jīng)網(wǎng)絡作為分類模型在各個指標上都優(yōu)于其他組合,說明這2種方法組合有更好的謠言識別能力。
4.3模型性能對比
為了對比模型的收斂性和訓練效率,進行了模型性能對比實驗。
One-hot和TF-IDF文本表示方式由于其實現(xiàn)方法類似,因此在模型性能上表現(xiàn)相似。圖4是One-hot+邏輯回歸模型迭代訓練200次的損失和準確率變化圖。圖5是TF-IDF+邏輯回歸模型迭代訓練200次的損失和準確率變化圖。其中,藍色部分為損失值,點表示樣本在訓練集上的損失,線表示樣本在測試集上的損失;紅色部分為精確度,點表示樣本在訓練集上的損失,線表示樣本在測試集上的損失。

從圖4和圖5中可以看出,One-hot和TF-IDF算法處理的樣本數(shù)據(jù)都在進行邏輯回歸迭代50次后趨于收斂,模型精度保持在80%,訓練效率沒有明顯的區(qū)別。
圖6和圖7是使用One-hot和TF-IDF進行文本表示后,使用神經(jīng)網(wǎng)絡進行謠言檢測的性能圖,可以看到模型識別準確率較邏輯回歸有較大的提升。但其在迭代200次后仍然還未收斂,模型損失函數(shù)值(藍色曲線)仍然呈現(xiàn)下降的趨勢,這是由于神經(jīng)網(wǎng)絡的模型更復雜,參數(shù)更多,模型訓練需要花費更多的時間和迭代次數(shù)。

圖8和圖9為使用Doc2Vec作為文本表示方法,分別使用邏輯回歸和神經(jīng)網(wǎng)絡作為分類器,模型準確率和損失值的變化趨勢圖。可以看到,當Doc2Vec通過全連接神經(jīng)網(wǎng)絡進行訓練時,模型效果提升較大。但是邏輯回歸在模型迭代至200次時測試集準確率已經(jīng)趨于平緩,而神經(jīng)網(wǎng)絡在迭代800次時才逐漸趨于平緩,說明邏輯回歸消耗的計算資源更少,模型更加高效。
再將圖4、圖5、圖8進行對比,可以看到,使用Doc2Vec比One-hot和TF-IDF兩種表示方法需要迭代更多的次數(shù)模型才會收斂。


通過模型性能比較試驗可以得出以下結(jié)論:邏輯回歸模型的收斂速度比神經(jīng)網(wǎng)絡更快,但準確率比神經(jīng)網(wǎng)絡低;使用離散型文本表示方法One-hot和TF-IDF比使用分布式文本表示Doc2Vec模型的速度更快,但準確率更低。因此模型的選擇應考慮實際的使用需要,如果對準確率要求不高且計算能力有限時,使用離散化的文本表示與邏輯回歸結(jié)合的模型能夠滿足其要求;若算力充足并且對準確率有較高的要求,則建議使用分布式文本表示方法與神經(jīng)網(wǎng)絡結(jié)合的模型進行分類。
4.4神經(jīng)網(wǎng)絡結(jié)構對比
為了選擇合適的模型結(jié)構,構造了不同的神經(jīng)網(wǎng)絡結(jié)構,并對它們的識別準確率進行比較。分別構建了3層(64×18×1)、4層(64×32×16×1)、5層(64×32×16×8×1)、6層(64×32×16×8×4×1)、7層(64×40×30×20×10×5×1)的神經(jīng)網(wǎng)絡,括號中為每一層的神經(jīng)元數(shù)量。選擇Doc2Vec作為文本表示方法,實驗結(jié)果如圖10所示,可以看到,5層的神經(jīng)網(wǎng)絡識別準確率最高。3層~5層,隨著模型層數(shù)的增加,識別準確率越來越高。但當模型層數(shù)增加到6層之后,模型的準確率有較大幅度的下滑,這是由于模型出現(xiàn)了過擬合。
為了驗證模型的確出現(xiàn)了過擬合,將7層神經(jīng)網(wǎng)絡的收斂情況通過圖11展示出來,其中紅色虛線為訓練集準確率變化趨勢,紅色實線為測試集準確率變化趨勢,在迭代100次后訓練集準確率仍然在不斷提高,但測試集準確率開始下滑;藍色虛線為訓練集損失,藍色實線為測試集損失,他們之間的變化趨勢有著非常明顯的區(qū)別,在訓練迭代25次后測試集損失有明顯的上升,并且出現(xiàn)了較大幅度的波動,但訓練集損失仍然在不斷下降。以上均為過擬合的表現(xiàn)。
因此,在該數(shù)據(jù)集上,最終選擇5層(64×32×16×8×1)神經(jīng)網(wǎng)絡作為本文的模型結(jié)構。

本文從特征提取和模型搭建2個角度分析了謠言文本檢測算法,并對相關算法模型進行了介紹說明,在最后對各個算法模型的組合進行了實驗分析,比較了他們在準確率、精確度、召回率和F1 Score指標的表現(xiàn)。
未來,謠言檢測任務還能夠在以下方面進行提升與改進:樣本數(shù)量可以進行擴充,本次實驗僅使用了新浪微博上的文本,下一步還可以加入其他社交網(wǎng)絡的謠言文本和常規(guī)語料,以提高模型的泛化能力;模型復雜度還需進一步提升,目前自然語言處理領域已有如Bert,Transformer等更高效的模型,下一步可以將這些模型應用到謠言檢測任務中;樣本類型可以進一步豐富,大量謠言在發(fā)布其文本的同時,還會發(fā)布一些吸引人眼球的圖片,下一步可以融合自然語言處理和計算機視覺的模型,對謠言文本和圖片進行綜合分析檢測。
[1] KE W,SONG Y,ZHU K Q.False Rumors Detection on Sina Weibo by Propagation Structures[C]// IEEE International Conference on Data Engineering.Seoul:IEEE,2015:651-662.
[2]段大高,蓋新新,韓忠明,等.基于梯度提升決策樹的微博虛假消息檢測[J].計算機應用,2018,38(2):410-414.
[3] Le Q V, Mikolov T. Distributed Representations of Sentences and Documents[C]//International Conference on Machine Learning.Toronto:JMLR,2014:1188-1196.
[4] JING M,WEI G,MITRA P, et al. Detecting Rumors from Microblogs with Recurrent Neural Networks[C]//25th International Joint Conference on Artificial Intelligence.New York,2016:3818-3824.
[5] MA J, GAO W, WONG K F. Rumor Detection on Twitter with Tree-structured Recursive Neural Networks[C]// 56th Annual Meeting of the Association for Computational Linguistics.Melbourne:ACL,2018:1980-1989.
[6] YU F, LIU Q, WU S, et al. A Convolutional Approach for Misinformation Identification[C]// 26th International Joint Conference on Artificial Intelligence.Melbourne:IJCAI.2017: 3901-3907.
[7] YU F, LIU Q, WU S, et al. Attention-based Convolutional Approach for Misinformation Identification from Massive and Noisy Microblog Posts[J]. Computers&Security,2019, 83: 106-121.
[8]馮茹嘉,張海軍,潘偉民.基于情感分析和Transformer模型的微博謠言檢測[J].計算機與現(xiàn)代化, 2021(10):1-7.
[9]段大高,王長生,韓忠明,等.基于微博評論的虛假消息檢測模型[J].計算機仿真, 2016,33(1):386-390.
[10] MIKOLOV T, CHEN K, CORRADO G, et al. Efficient Estimation of Word Representations in Vector Space[J/OL].[2022-03-15]. https://arxiv.org/abs/1301.3781.