周麗娜 譚 勵* 曹 娟 馬子豪 呂芯悅
1(北京工商大學(xué)計算機與信息工程學(xué)院 北京 100048)2(中國科學(xué)院計算技術(shù)研究所 北京 100190)
隨著人們生活水平的提高,人們關(guān)注的重點從如何吃得飽到如何吃得好、吃得健康。據(jù)《2018年網(wǎng)絡(luò)謠言治理報告》顯示,微信平臺于2018年攔截的網(wǎng)絡(luò)謠言共計8.4萬余條,其中食品安全領(lǐng)域是謠言傳播的重災(zāi)區(qū)。前兩年,福建出現(xiàn)的“塑料紫菜”謠言給整個紫菜加工行業(yè)造成了近億元損失。食品安全謠言不僅會引發(fā)產(chǎn)業(yè)危機,造成經(jīng)濟損失,更嚴重的是會引發(fā)社會公眾恐慌情緒,甚至造成一系列社會事件,危害社會公共安全。
只依靠人工審查的方式進行網(wǎng)絡(luò)謠言檢測,需要耗費大量的人力、物力和財力[1]。在謠言不斷涌現(xiàn)的當下,自動謠言檢測有著重要的研究價值和廣闊的應(yīng)用場景。本文研究的對象是食品安全領(lǐng)域謠言,這些謠言通常是蓄意捏造有誤導(dǎo)大眾意圖的虛假信息,其數(shù)量龐大,多為長文本,涉及豐富的領(lǐng)域知識。目前,沒有公開的食品安全領(lǐng)域謠言基準數(shù)據(jù)集可以用作研究。此外,自動謠言檢測方法的主要研究對象是社交媒體上廣泛傳播的謠言,且多為以微博為代表的短文本。將現(xiàn)有方法直接應(yīng)用于食品安全領(lǐng)域的謠言數(shù)據(jù)上,檢測效果不佳。
針對上述問題,本文構(gòu)建一個基于天天快報平臺的食品安全領(lǐng)域謠言數(shù)據(jù)集,經(jīng)過對數(shù)據(jù)集進行大量深入的分析,發(fā)現(xiàn)食品安全領(lǐng)域的謠言在實體特征層面具有較大的區(qū)分性,于是提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的食品安全領(lǐng)域謠言檢測方法。首先,采用文本卷積神經(jīng)網(wǎng)絡(luò)(TextCNN)進行文本特征提取,再采用領(lǐng)域?qū)嶓w抽取策略進行實體特征提取并做歸一化處理。然后,將兩類特征進行拼接融合。最后,神經(jīng)網(wǎng)絡(luò)輸出每個樣本被判定為謠言的概率,取概率值高的類別作為樣本的預(yù)測結(jié)果。
Castillo等[2]通過提取基于消息的特征、基于用戶的特征、基于主題的特征和傳播特征等四種手工特征來判斷一條消息的可信度。Ma等[3]和Qazvinian等[4]為了挖掘基于社會特征的謠言進行了類似的研究。例如,在特征選擇過程中,Yang等[5]提取事件和客戶端程序的位置作為新特征,對微博上的內(nèi)容進行分類。Jin等[6]關(guān)注微博中包含的圖片,提出圖像特征和統(tǒng)計特征來檢測謠言。Zhao等[7]選擇一些正則表達式作為謠言模式來識別謠言。Kwon等[8]應(yīng)用一個情感分類工具對消息中的情感詞進行提取,表達正面情感的詞、表達感知類的詞和表達行為傾向的詞對謠言檢測有效。
Zhou等[9]在新浪微博上建立實時新聞驗證系統(tǒng),提取謠言事件的一些關(guān)鍵詞,并通過分布式數(shù)據(jù)采集系統(tǒng)收集相關(guān)微博。除了應(yīng)用監(jiān)督學(xué)習算法外,Jin等[10]提出一種發(fā)現(xiàn)沖突觀點的新方法,基于對推特中觀點的識別,構(gòu)建了一個由支持或反對關(guān)系連接起來的消息可信度傳播網(wǎng)絡(luò)。在網(wǎng)絡(luò)上進行可信度傳播,通過迭代演繹產(chǎn)生新聞的最終評價結(jié)果。
與傳統(tǒng)手工特征相比,深度神經(jīng)網(wǎng)絡(luò)可以學(xué)習視覺和文本內(nèi)容的精確表示。Ma等[11]首次將遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)應(yīng)用到謠言檢測領(lǐng)域,將謠言事件定義為由一系列連續(xù)消息組成的流,再將謠言建模成一個變長的時間序列進行特征獲取和識別。Guo等[12]根據(jù)事件級謠言的數(shù)據(jù)結(jié)構(gòu)特征,利用基于社交注意力機制的雙向長短時記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)進行建模。Yu等[13]研究表明,在早期的檢測任務(wù)中循環(huán)神經(jīng)網(wǎng)絡(luò)性能并不好,并提出了基于卷積神經(jīng)網(wǎng)絡(luò)的謠言檢測模型(Convolutional Approach for Misinformation Identification,CAMI)。潘浩彬[14]受到文本分類任務(wù)中Kim等研究的啟發(fā),將文本卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到謠言檢測任務(wù)中。
然而,上述方法大都是針對通用領(lǐng)域謠言進行分析建模的,研究的對象大都是微博等篇幅較短的文本,沒有關(guān)注到不同領(lǐng)域謠言之間的差異性。本文的研究對象是天天快報平臺上食品安全領(lǐng)域的謠言,大多為長文本,沒有明顯的情感傾向,也沒有過多的外部信息。所以,要想對此類謠言進行準確判斷,就必須從新聞的文字內(nèi)容上入手。食品安全領(lǐng)域新聞主要涉及食品方面的知識,多以科普的表現(xiàn)形式向讀者傳遞信息。通過對食品安全領(lǐng)域數(shù)據(jù)集進行大量統(tǒng)計和分析,發(fā)現(xiàn)該領(lǐng)域的謠言和非謠言在實體詞上存在較大差異,本文的關(guān)鍵就是提取食品安全領(lǐng)域的實體特征,融合卷積神經(jīng)網(wǎng)絡(luò)提取的文本特征來提高謠言檢測的準確率。
常見的謠言定義有兩種:(1) 廣義定義。謠言是被廣泛傳播且未經(jīng)證實的消息。(2) 狹義定義。謠言等同于虛假信息。現(xiàn)有工作[6,12,14]都使用此定義,有時候謠言又被稱為虛假消息[15]或者假新聞[16]。根據(jù)食品安全領(lǐng)域謠言的特點,本文采用狹義定義。
謠言檢測:一個二分類任務(wù),目的是確定社交媒體上的消息是否被確認為真或者假[17]。
采集天天快報2016年7月29日到2018年11月30日的所有新聞,共計79 209條數(shù)據(jù)。對采集的數(shù)據(jù)進行預(yù)處理,每條新聞數(shù)據(jù)的預(yù)處理流程如圖1所示。
圖1 一條數(shù)據(jù)預(yù)處理的流程
首先,經(jīng)過人工篩選,過濾掉與食品安全領(lǐng)域不相關(guān)且質(zhì)量低的數(shù)據(jù),剩余13 754條。然后,對余下的數(shù)據(jù)打上可信度標簽,標簽分為兩類,規(guī)定0表示非謠言,1表示謠言。為了保證可信度標簽的客觀性,對每條數(shù)據(jù)的真實性都進行查證,查證平臺有三個,分別是騰訊較真、丁香醫(yī)生和微信辟謠助手。這三家辟謠平臺具有涉及數(shù)據(jù)多、分類廣和權(quán)威性等特點。對標為謠言的數(shù)據(jù),為其標注出謠言存在的段落。將所有數(shù)據(jù)經(jīng)過上述流程,得到謠言數(shù)據(jù)2 511條,非謠言數(shù)據(jù)5 898條。但是,由于食品安全新聞數(shù)據(jù)涉及的領(lǐng)域知識豐富,要查證每條數(shù)據(jù)包含的所有內(nèi)容的正確性十分困難,最后有5 345條數(shù)據(jù)未能確定其類別為謠言或者非謠言。在后續(xù)實驗時,不考慮這種不確定類別的新聞數(shù)據(jù)。
對數(shù)據(jù)集進行統(tǒng)計分析,可得文本的平均長度為840字,內(nèi)容長度在500到1 500字之間的占比高達72%。數(shù)據(jù)集中的文本大多涉及日常飲食、醫(yī)療藥品、保健養(yǎng)生等方面的內(nèi)容,目的是向讀者科普有用的知識。對2 511條謠言數(shù)據(jù)中高頻詞的頻數(shù)生成詞云,如圖2所示,展示了前100的高頻詞。其中,食物、作用、導(dǎo)致、身體和癥狀等詞出現(xiàn)頻率很高,這些詞與食品安全領(lǐng)域的關(guān)系更為緊密。
圖2 食品安全謠言數(shù)據(jù)的詞云
本文提出的基于卷積神經(jīng)網(wǎng)絡(luò)的食品安全領(lǐng)域謠言檢測模型TCNN-DEC,模型架構(gòu)如圖3所示。模型主要分為三部分:(1) 采用本文提出的領(lǐng)域?qū)嶓w抽取策略提取領(lǐng)域?qū)嶓w特征并歸一化;(2) 采用TextCNN模型表示深度文本特征;(3) 將兩類特征進行拼接融合,最終輸出樣本被預(yù)測為謠言的概率。
圖3 TCNN-DEC模型架構(gòu)
不同的領(lǐng)域?qū)嶓w名詞在謠言和非謠言中出現(xiàn)的概率存在較大差異,領(lǐng)域?qū)嶓w特征能很好地表現(xiàn)該領(lǐng)域的特點,謠言和非謠言在此層面上有較大的區(qū)分度,所以提取領(lǐng)域?qū)嶓w特征是本任務(wù)的重點。在食品安全領(lǐng)域中,表示實體的詞數(shù)量龐大,需要先對其進行歸類,再進行后續(xù)研究。抽取領(lǐng)域?qū)嶓w特征主要分為三個步驟:(1) 抽取領(lǐng)域?qū)嶓w名詞;(2) 構(gòu)建領(lǐng)域?qū)嶓w類;(3) 基于統(tǒng)計得到領(lǐng)域?qū)嶓w特征。整個過程都是自動化進行的,無需人工干預(yù)。
(1) 抽取領(lǐng)域?qū)嶓w名詞。首先,對數(shù)據(jù)集中每條數(shù)據(jù)進行預(yù)處理,包括分詞、去停用詞。再做詞性標注,用到的分詞工具是HanLP。根據(jù)實體都是名詞的特點,取出所有標注為名詞性的詞語,組成一個實體詞集。在此實體詞集中,除了包含食品安全領(lǐng)域的實體詞,還包含大量與該領(lǐng)域相關(guān)性較小的實體詞。然后,利用文本特征選擇的三種方法對預(yù)處理后的樣本數(shù)據(jù)進行特征選擇。但是得到的特征詞不能保證全為名詞,所以用實體詞集對上述特征詞分別進行篩選,再對剩余的三組特征詞進行相互篩選。最后,取篩選得到的前250個詞作為領(lǐng)域?qū)嶓w名詞。具體流程如圖4所示。
其中,用到的特征選擇方法有文檔頻率(DF),即計算數(shù)據(jù)集中有多少樣本包含這個詞。在實驗中,可以先去掉某些無意義的詞,即把DF小于5且大于3 000的詞去掉,因為它們分別代表了沒有代表性和沒有區(qū)分度兩種極端情況。將每個詞按照文檔頻率值從大到小排序,選取前3 000個詞作為特征詞。
用信息增益(IG)方法選擇特征詞,提取步驟如下:先統(tǒng)計正負分類的文檔數(shù)N1和N2;統(tǒng)計每個詞的正文檔出現(xiàn)頻率A、負文檔出現(xiàn)頻率B、正文檔不出現(xiàn)頻率C、負文檔不出現(xiàn)頻率D;計算信息熵,公式如下:
(1)
計算每個詞的信息增益:
InfoGain=Entropy(S)+
(2)
將每個詞按照信息增益值從大到小排序,選取前3 000個詞作為特征詞。
前兩種方法都是考察特征對整個數(shù)據(jù)集的貢獻,沒有具體到某個類別上,它們只能做全局特征,但謠言和非謠言分別存在各自的特征集合,所以再用卡方值(CHI)選擇文本特征。先統(tǒng)計數(shù)據(jù)集中樣本的總數(shù)量N,再統(tǒng)計計算A、B、C和D值(含義同上)。每個詞的卡方值計算式表示為:
(3)
將每個詞按卡方值從大到小排序,選取前3 000個詞作為特征詞。
(2) 構(gòu)建領(lǐng)域?qū)嶓w類。經(jīng)過上一步得到領(lǐng)域?qū)嶓w名詞后,需要對其進行歸納整合得到領(lǐng)域?qū)嶓w類。要實現(xiàn)這步操作,需要用到詞向量(Word2Vec)和無監(jiān)督的聚類算法。首先,將250個實體詞通過詞向量映射得到相應(yīng)的向量表達。然后,將其作為K-Means算法的輸入并進行聚類。實驗匯中先給K值事先設(shè)定一個范圍[1,20],然后根據(jù)誤差平方和(SSE)這個指標來確定最終的K值。SSE的計算式表示為:
(4)
式中:Ci是第i個簇;p是Ci的樣本點;mi是Ci中所有樣本的均值;SSE代表了聚類效果的好壞。在實驗中,當K=10時,SSE值較小且變動幅度已經(jīng)慢慢變小,故將食品安全領(lǐng)域?qū)嶓w分為10類。
(3) 提取領(lǐng)域?qū)嶓w特征。經(jīng)過上一步,得到10個食品安全領(lǐng)域的實體類。分別統(tǒng)計這10個實體類包含的實體名詞在一個樣本中出現(xiàn)的總次數(shù)作為實體特征,每一個樣本都可得到10維特征。將特征歸一化到區(qū)間[0,1],再通過激活函數(shù)tanh,表示為fv。
TextCNN是由Kim[18]于2014年提出的,將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到文本分類任務(wù)中,利用多個不同的尺度的卷積核來提取句子中的關(guān)鍵信息,從而更好地捕捉局部相關(guān)性。此外,在計算效率上同循環(huán)卷積神經(jīng)網(wǎng)絡(luò)(RNN)及其變種結(jié)構(gòu)LSTM、GRU[19-21]等方法相比,它的并行效率更高、訓(xùn)練速度更快。
TextCNN深度文本特征提取模型架構(gòu)如圖5所示。通常先將文本利用分詞工具進行序列化,利用詞向量將文本構(gòu)建成矩陣的表示,矩陣的維度為(N×K),其中:N表示該文本單詞的數(shù)量;K表示詞向量的維度。假設(shè)存在一個長度為N的文本序列T,將T表示為[w1,w2,…,wN],有詞向量矩陣E∈R|V|×K,|V|表示字典的大小。通過字典查詢的方式,可以找到wi對應(yīng)的詞向量xi,最終將得到的詞向量按列拼接得到大小為(N×K)的矩陣X,表示為:
圖5 TextCNN深度文本特征提取模型
X=x1:N=x1⊕x2⊕…⊕xN
(5)
然后,網(wǎng)絡(luò)為了獲取不同粒度的序列局部特征,設(shè)置了長度為(2,3,4)的等寬卷積核,其中每種長度的卷積核包括M個。卷積操作的過程表示為:
convi=f(w·xi:i+h-1+b)
(6)
式中:h表示卷積核的長度;K則表示卷積核的寬度;w為卷積核的權(quán)重;b為偏置項;函數(shù)f表示非線性激活函數(shù)ReLU。對于一個(h×K)大小的卷積核,通過卷積操作得到的特征圖大小為(N-h+1,1)。這個過程可以看作利用卷積核進行h-gram特征的抽取過程,特征圖的向量表示為:
c=[c1,c2,…,cN-h+1]
(7)
(8)
(9)
通過卷積池化的操作之后,得到文本消息的深度表征向量r,優(yōu)化參數(shù)包括θ={W;wf;bf},其中:W為詞向量矩陣;wf和bf分別表示卷積核的權(quán)重參數(shù)和偏置項。
實驗采用Word2Vec模型將預(yù)處理后的新聞數(shù)據(jù)表示為d個詞向量x1,x2,…,xd,d是文本的最大長度。實驗采用基于新浪微博語料訓(xùn)練的Word2Vec模型,詞向量維度為300維,w∈R300。x1,x2,…,xd通過TextCNN的卷積和池化過程得到文本特征向量xv。
將文本特征向量xv和領(lǐng)域?qū)嶓w特征向量fv,通過向量拼接的方法融合得到向量v,表示為:
v=xv⊕fv
(10)
最后,將v輸入一個全連接層得到向量v′,對v′進行Softmax分類得到一組得分p,選擇p中數(shù)值較大的所代表的類別作為分類結(jié)果。v′和p的計算式分別表示為:
v′=ReLU(wv+b)
(11)
p=Softmax(v′)
(12)
TCNN-DEC模型采用交叉熵損失函數(shù)來度量預(yù)測值和真實值之間的距離。在輸入樣本數(shù)據(jù)后,模型計算得到損失并以最小化該損失為訓(xùn)練目標。交叉熵損失函數(shù)計算式表示為:
(13)
式中:M表示訓(xùn)練數(shù)據(jù);ym表示m的真實標簽;pm表示m的預(yù)測為謠言的概率。
取2.2節(jié)介紹的數(shù)據(jù)集中全部謠言樣本和數(shù)量相等的非謠言樣本構(gòu)成本實驗的數(shù)據(jù)集,共計5 022條。訓(xùn)練集和測試集的劃分比例為4 ∶1。
(1) NB模型[2]:采用TF-IDF方法進行特征表示,使用樸素貝葉斯模型對樣本進行分類。
(2) SVM模型[5]:采用TF-IDF方法進行特征表示,使用線性支持向量機對樣本進行分類。
(3) BiLSTM模型[12]:采用300維的Word2Vec模型將文本轉(zhuǎn)換為詞向量形式,文本的最大輸入長度為1 500,LSTM模型隱層單元數(shù)為128,學(xué)習率為0.001。
(4) TextCNN模型[18]:采用300維的Word2Vec模型將文本轉(zhuǎn)換為詞向量形式,文本的最大輸入長度為1 500,TextCNN模型卷積核的長度分別為2、3和4,每種卷積核的數(shù)量為200個。Dropout的概率為0.5。
(5) BiLSTM-DEC模型:參數(shù)設(shè)置與BiLSTM模型相同。
(6) TCNN-DEC模型:參數(shù)設(shè)置與TextCNN模型相同。
其中,NB模型和SVM模型采用五折交叉驗證求平均的方式得到最終結(jié)果。BiLSTM-DEC模型和TCNN-DEC模型均為融合了領(lǐng)域?qū)嶓w特征的神經(jīng)網(wǎng)絡(luò)模型。神經(jīng)網(wǎng)絡(luò)模型的參數(shù)優(yōu)化采用Adam[22]優(yōu)化方法進行更新,模型的輸入數(shù)據(jù)將進行整體隨機重排,設(shè)置每一批次訓(xùn)練256個樣本。
對于評估指標,本文采用準確率、精確性、召回率和F1值進行綜合評價。
為了驗證本文方法在食品安全領(lǐng)域謠言檢測任務(wù)中的有效性,將本文方法和現(xiàn)有通用謠言檢測方法在同一食品安全謠言數(shù)據(jù)集上進行實驗,各模型的準確率如表1所示。
表1 各模型準確率對比
本文提出的基于卷積神經(jīng)網(wǎng)絡(luò)的食品安全領(lǐng)域謠言檢測模型TCNN-DEC達到了最高的準確率87.7%。由此可見,本文方法對食品安全領(lǐng)域謠言檢測十分有效。BiLSTM模型和TextCNN模型判別的準確率都高于NB模型和SVM模型,說明用深度神經(jīng)網(wǎng)絡(luò)模型擬合復(fù)雜數(shù)據(jù),可以提高謠言檢測的性能。BiLSTM模型和TextCNN模型分別融合領(lǐng)域?qū)嶓w特征得到BiLSTM-DEC模型和TCNN-DEC模型,BiLSTM-DEC模型和TCNN-DEC模型實驗的準確率都高于沒有融合領(lǐng)域?qū)嶓w特征的模型,這說明了領(lǐng)域?qū)嶓w特征對食品安全類謠言的檢測具有重要作用。
表2和表3分別展示了各模型針對謠言和非謠言兩類數(shù)據(jù)判別時性能的差異。TCNN-DEC模型在對謠言和非謠言的判別上,精確性、召回率、F1都比其他方法高。BiLSTM-DEC模型對謠言判別的F1值為85.5%,對非謠言判別的F1值為86.2%,分別比TCNN-DEC模型對應(yīng)指標低2百分點和1.7百分點,這也是本文方法選擇TextCNN模型提取深度文本特征的原因。在食品安全領(lǐng)域數(shù)據(jù)集上,BiLSTM模型的性能不如TextCNN模型的高,可能的原因是,食品安全類的新聞數(shù)據(jù)大多為長文本,BLSTM模型在處理過長的文本時,長距離依賴的問題會比較突出,TextCNN模型不存在此問題。
表2 謠言數(shù)據(jù)的各模型性能對比
表3 非謠言數(shù)據(jù)的各模型性能對比
本文針對社交媒體上食品安全領(lǐng)域謠言體量大、檢測困難這一現(xiàn)象展開研究。首先構(gòu)建一個食品安全領(lǐng)域謠言數(shù)據(jù)集,確保本實驗?zāi)茼樌M行,也為以后的研究提供便利。由于現(xiàn)有謠言檢測方法對特定領(lǐng)域謠言的判別效果差,本文提出基于卷積神經(jīng)網(wǎng)絡(luò)的食品安全領(lǐng)域謠言檢測方法,利用領(lǐng)域?qū)嶓w特征抽取策略得到K維實體特征,再與文本卷積神經(jīng)網(wǎng)絡(luò)表示的深度文本特征進行拼接融合,最后進行分類。使用本文方法明顯地提高了謠言檢測的準確率,表明該方法很適用于食品安全領(lǐng)域的謠言檢測。本文實驗用到的食品安全謠言數(shù)據(jù)集的可信度標簽是篇章級的,但大多數(shù)樣本的謠言部分只存在于某一段或某幾段中,其余段落則可以忽略。但由于段落級標注成本太大,所以下一階段,將針對長文謠言進行分段研究。