譚 勵,王 舸,周麗娜,曹 娟
(1.北京工商大學 計算機學院,北京 100048;2.中國科學院 計算技術研究所,北京 100190)
早期,謠言檢測的研究重點大多使用手工特征的方法針對推特、微博等社交媒體的謠言[1-3],但實驗效果差強人意。Ma等[4]將循環(huán)神經(jīng)網(wǎng)絡(recurrent neural network,RNN)模型引入謠言檢測領域,之后,Yu等[5]使用卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)對文本的高維特征進行謠言分類,而這些深度學習在該領域的成功表現(xiàn)也使得此后有大量基于深度學習的改進方法被引入謠言檢測中[6-10]。
然而,上述方法都是針對以推特、微博為等社交媒體為代表的短文本,而缺少對食品健康領域中這類長文本新聞的檢測方法。而兩者有著較大的區(qū)別,長文本往往不只包含一到兩個段落,多數(shù)新聞包含較多的段落,且通常包含明顯的篇章結構。此外,長文本謠言中,僅有某個或某幾個段落會出現(xiàn)謠言信息,其它段落均為真實信息。因此使用針對短文本的謠言檢測方法,將長文本為整體輸入計算的表現(xiàn)將會受到真實段落的干擾從而降低效果[11]。
由于多示例學習可以很好解決“粗標簽”對象的區(qū)分問題,也可以用于解決缺少細粒度標簽的任務,且在多個領域中得到很好的表現(xiàn)[12-17],因此,本文考慮結合多示例學習的方法,將食品健康領域的長文本新聞細分,將其每篇長文作為多示例學習中的包(bag),該長文中的每個段落作為示例。輸入本文提出的MI-TCNN-SA模型,最終得到包內(nèi)示例關于謠言的概率,以此對新聞進行謠言分類,且分類效果優(yōu)于基準方法。同時,在TextCNN上運用了多示例學習的思想,對比之前有一定改善。由于目前沒有公開的食品健康領域的謠言基準數(shù)據(jù)集可以作為研究,因此構建基于“天天快報”平臺的食品健康領域謠言數(shù)據(jù)集并用于本研究。
綜上所述,本文做出的主要貢獻如下:
(1)提出一個基于多示例學習的食品健康領域長文謠言檢測方法,可以提高長文謠言檢測的準確率。
(2)構建一個基于天天快報平臺的食品健康領域謠言數(shù)據(jù)集。
以往對謠言檢測的研究大多基于推特等短文本。對于長文本新聞的研究較少,且普遍將長文本與短文本的處理相似,都作為整體進行輸入和計算[1]。與前人的思路有所不同的是,本實驗在數(shù)據(jù)輸入階段,保留新聞長文的篇章結構的同時運用多示例學習的思想,將長文視為一個包,其每個段落視為一個示例,以此通過領域?qū)嶓w名詞篩選,去除與食品健康領域無關的段落后,輸入本文提出的模型,對新聞長文做謠言檢測工作。
本章介紹基于多示例學習方法構建的模型:MI-TCNN-SA模型,模型架構如圖1所示。先后對信息進行了領域?qū)嶓w名詞的抽取、數(shù)據(jù)預處理、以文本卷積神經(jīng)網(wǎng)絡提取數(shù)據(jù)特征、通過自注意力網(wǎng)絡得到本模型中認為最優(yōu)區(qū)分性的示例高層特征、以Sigmoid分類器得出結果。最終可以得到包內(nèi)示例關于謠言的概率,當存在示例為謠言的概率大于0.5,則將該包作為正包,即謠言。反之則為負包,即非謠言。
圖1 MI-TCNN-SA模型
首先,對數(shù)據(jù)集中每條數(shù)據(jù)進行簡單處理操作,包括分詞、去停用詞。并用漢語言處理包(Han language processing,HanLP)對每條數(shù)據(jù)做詞性標注。由于實體都是名詞,取出標注為名詞性的詞語,組成實體詞集。在此實體詞集中,包含食品健康領域的實體詞的同時,存在大量與該領域相關性較小的實體詞。隨后利用文本特征選擇的3種方法對預處理后的樣本數(shù)據(jù)進行特征詞的選擇。由于得到的特征詞不排除包含除名詞以外詞性的可能性,所以用實體詞集對上述特征詞分別進行篩選,之后對剩余的3組特征詞進行相互篩選。對篩選的結果進行詞頻分析后,發(fā)現(xiàn)前250個名詞出現(xiàn)的頻率遠高于其它特征詞,且與食品健康領域貼切,例如:鐵、鎂、冷水、開水、汗蒸等。最終將篩選得到的前250個詞作為領域?qū)嶓w名詞。具體流程如圖2所示。
圖2 抽取領域?qū)嶓w名詞流程
其中,用到的特征選擇方法為文檔詞頻(DF),即計算數(shù)據(jù)集中某個詞出現(xiàn)的頻率。在實驗中,暫時去掉某些無意義的詞,即去掉DF值小于5且大于3000的詞,因為它們分別代表“沒有代表性”和“沒有區(qū)分度”這兩種極端的情況。將每個詞按照文檔詞頻值從大到小排序,選取前3000個詞作為特征詞。
用信息增益(IG)方法選擇特征詞,提取步驟如下:統(tǒng)計正負分類的文檔數(shù)N1和N2;統(tǒng)計各詞的正文檔出現(xiàn)頻率A、負文檔出現(xiàn)頻率B、正文檔未出現(xiàn)頻率C、負文檔未出現(xiàn)頻率D;計算信息熵的公式為式(1)
(1)
計算每個詞的信息增益的公式為(2)
(2)
將各個詞按照信息增益值從大到小排序,選取前3000個詞作為特征詞。
我們考慮,單一的使用其中的一種特征選擇方法會產(chǎn)生對食品健康領域貼切度不高或出現(xiàn)頻率不高或是內(nèi)容包含信息量不高的實體名詞,或是可能導致在輸入文本時對提取文本特征時產(chǎn)生噪聲。而將信息增益和詞頻相結合的方法可以考察特征對整個數(shù)據(jù)集的貢獻程度,從而從全局特征中觀察得到貢獻程度較高的特征詞,再組合卡方值選擇文本特征便可以從謠言或非謠言中找到各自的特征集合。因此為使文本信息更加貼合食品健康領域,盡可能減少不必要的噪聲且可以從謠言和非謠言兩個類別中找到特征集合,我們同時使用多種特征選擇方法來抽取領域?qū)嶓w名詞。
然后我們將名詞按照領域分為10類。表1為食品安全領域?qū)嶓w特征類中的部分實體名詞。
表1 食品安全領域?qū)嶓w特征類中的部分實體名詞
由于長文本中,大多數(shù)的謠言新聞中并不是通篇的謠言信息,絕大多數(shù)的新聞中會參雜著真實新聞的段落或部分,若是將一篇新聞長文看作是一個整體,真實部分會對謠言的判斷起到比較大的影響。不僅如此,長文本由于段落較多對特征提取更是增加許多難度。所以本文中以多示例學習的思想對上述難題進行解決。本文中將每一篇新聞長文作為一個包,同時將文本中每一個段落都作為該包中的一個示例,如若包中每一個示例都是真實信息,則本實驗中將其視為負包,也就是真實的非謠言新聞。反之,若該包中有一個及以上的包被判斷為謠言,則將此包作為正包,對應著整篇為謠言新聞。
以上述方法為基礎,對新聞段落做數(shù)據(jù)預處理。圖3為一條食品健康長文謠言的例子。以一條從數(shù)據(jù)集中取出的新聞長文為例,以此按照圖4流程進行處理。首先為便于存儲,本實驗在數(shù)據(jù)存儲時將長文本數(shù)據(jù)的分段標記以“*****”代替,因此需要將存儲的樣本還原成原篇章結構,將分段符還原。其次,由于多數(shù)文字過少的段落不具有實際意義,導致對特征提取和分類計算的作用甚小,因此對樣本每一段篩選,僅保留段落長度大于5的段落。之后,對符合要求的段落進行分詞,使用jieba分詞去停用詞處理。其中,停用詞是文中出現(xiàn)頻率較高但意義不大的詞,這里是將多個停詞表集合成一個新停用詞表。再之后,判斷段落中是否有領域?qū)嶓w名詞,由于領域?qū)嶓w名詞可以表現(xiàn)該領域的特點,謠言與非謠言在此層面上有較大的區(qū)分度,且未包含這些特征詞的段落基本與食品健康領域信息的相關性不強,可能造成干擾分類計算,降低效率,因此需要丟棄該段落。之后對剩余段落進行詞數(shù)的判斷,根據(jù)對數(shù)據(jù)集的統(tǒng)計分析發(fā)現(xiàn),每個段落的平均長度為50,本實驗的期望是覆蓋至少百分之九十的段落長度,所以將段長取100,超過字數(shù)的截斷,若字數(shù)不夠?qū)⒁钥兆址a齊。每處理完一個段落便記錄一次已處理的段落數(shù),最后以包內(nèi)處理過的段數(shù)作為判斷依據(jù)判斷是否處理完成。將預處理完成后的文本用預訓練好的Word2Vec模型表示為詞向量。
圖3 一條食品健康長文謠言
圖4 食品健康領域長文本預處理流程
本實驗采取基于神經(jīng)網(wǎng)絡的特征提取方法,下面介紹基于文本卷積神經(jīng)網(wǎng)絡的特征提取。
文本卷積神經(jīng)網(wǎng)絡(TextCNN)是由Yoon Kim于2014年提出的,思想是將卷積神經(jīng)網(wǎng)絡(CNN)應用到文本分類的任務中,采用多個不同的尺度的卷積核來提取文本句子中的關鍵信息,從而更好地獲取局部的相關性。此外,在計算效率上同循環(huán)神經(jīng)網(wǎng)絡及其變種結構長短期記憶網(wǎng)絡(long short-term memory,LSTM)、門循環(huán)單元(gate recurrent unit,GRU)等方法相比[18],它的并行效率更高,訓練速度更快。
實驗采用Word2Vec模型將預處理后的新聞數(shù)據(jù)表示為d個詞向量x1,x2,…,xd,d代表了文本的最大長度。實驗采用基于新浪微博語料訓練的Word2Vec模型,詞向量維度為300維,w∈300。x1,x2,…,xd通過TextCNN的卷積和池化過程得到文本特征的高維表示。這時,文本中謠言的特征和隱藏語義信息已被提取出來。
由于每個示例中并不是都包含著謠言信息,且在包中的謠言的權重占比不同。而我們考慮到自注意力層已經(jīng)被證明可以找到特征中的重點信息,并找出各個特征之間的關聯(lián)性聯(lián)系[19]。本文考慮將TextCNN結構從各示例中提取出的高維文本特征表示輸入到自注意力層。將包中每個示例特征和其它示例特征計算attention,來捕捉示例之間的關聯(lián)性聯(lián)系,并找到其中與謠言最接近的示例。
在計算時,構建3個矩陣Q,K,V。首先計算Q與K之間的點乘這個得分,那么q1和k1的點積是第一個得分,q1和k2的點積是第二個得分,以此類推得到所有的得分。為避免它結果過大,除以一個尺度標度,即query或key的維度平方根。以softmax函數(shù)對其結果做歸一化,轉(zhuǎn)換成概率分布,此時softmax得到的分數(shù)可以確定每個示例在該位置的表達程度。最終與矩陣V相乘得到每個示例權重和的表示,即自注意力層的輸出。自注意力機制的總計算公式[19]用式(3)表示為
(3)
樣本通過預處理變成包結構,然后經(jīng)過詞嵌入表示為詞向量,通過神經(jīng)網(wǎng)絡進行特征提取得每個示例的特征,再將這些特征經(jīng)過示例自注意力層,這時得到包內(nèi)全部示例關于謠言的概率,選出得分最高的示例通過Sigmoid分類器進行分類,v是得分最高的示例的高層表示,分類得分p用式(4)表示
p=sigmoid(Wcv+bc)
(4)
模型在訓練時,使用的損失函數(shù)是二值交叉熵(binary cross-entropy)損失函數(shù),用式(5)表示為
(5)
其中,N是樣本個數(shù),yi是第i個樣本的標簽,p(yi)表示第i個樣本被預測為謠言的概率。
為探究多示例學習在食品健康領域長文謠言檢測的有效性,本實驗在數(shù)據(jù)集中將有明顯篇章結構的新聞選出作為實驗對象。經(jīng)過人工篩選,在2511條謠言數(shù)據(jù)中選出2000條符合要求的長文,為保證實驗數(shù)據(jù)的平衡性,在5898條非謠言數(shù)據(jù)中選出2000條符合要求的長文,將上述4000條樣本構成本實驗所使用的數(shù)據(jù)集。
表2 實驗數(shù)據(jù)劃分
本章的實驗環(huán)境:處理器為Intel(R) Xeon(R) Gold 6138 CPU @ 2.00 GHz;操作系統(tǒng)為Ubuntu 18.04.2 LTS;GPU型號為TeslaK80,顯存12 G;服務器內(nèi)存為125 G。實驗采用的編程語言為Python3.6.8。
本文實驗選取的模型介紹:
(1)BiLSTM模型[20]:此為本實驗的基線模型。采用300維的Word2Vec模型將文本轉(zhuǎn)換為詞向量形式,文本的最大輸入長度為1500,LSTM模型隱層單元數(shù)設置為128,學習率設為0.001。
(2)TextCNN模型: 此為本實驗的基線模型。采用300維的Word2Vec模型將文本轉(zhuǎn)換為詞向量形式,文本的最大輸入長度為1500,TextCNN模型卷積核的長度分別為2、3和4,每種卷積核的數(shù)量設為200個。Dropout的概率設為0.5。
(3)MI-TCNN-SA模型:用TextCNN進行特征提取,卷積核的長度分別為2、3和4,每種卷積核的數(shù)量為100個。特征拼接后300維,將自注意力參數(shù)維度設為300維,在訓練開始時進行隨機初始化。
(4)MI-TCNN模型是同MI-TCNN-SA模型相比減少了自注意力層。
(5)MI-TRNN模型是同MI-TCNN模型相比,特征提取方式換為BiLSTM網(wǎng)絡。
上述模型基于Keras實現(xiàn)。神經(jīng)網(wǎng)絡模型的參數(shù)優(yōu)化采用Adam優(yōu)化方法進行更新,模型的輸入數(shù)據(jù)將進行整體隨機重排,設置每一批次訓練128個樣本。實驗結果取5折交叉驗證的平均值。
本實驗采用準確率(Accuracy)、正確率 (Precision)、召回率(Recall)和F1值(F1-Score)4個常用的指標來對本實驗的結果進行分析。
為驗證本文方法在食品健康長文謠言檢測任務中的有效性,設計實驗得到實驗結果見表3。
表3 各模型性能對比
從上表的實驗結果看出,本文提出的MI-TCNN-SA模型對食品健康領域長文謠言檢測的效果最好,準確率達到86.3%,超過本實驗中的所有基線方法,其它評價指標也是表現(xiàn)優(yōu)異。TextCNN模型比BiLSTM模型的效果好,表明食品健康領域的長文的一個特點是對詞序不敏感,更關注于重點突出的內(nèi)容。這也是本實驗模型采用TextCNN進行特征提取的原因。MI-TRNN模型和MI-TCNN模型都是引入多示例學習思想,用包的標簽賦給包中最像謠言的示例,目的是將非謠言中最像謠言但又不是謠言的段落準確區(qū)分。
從實驗結果得到,MI-TRNN模型和MI-TCNN模型的檢測效果分別比BiLSTM模型和TextCNN模型更佳,表明多示例學習在長文本的謠言檢測任務中十分有效,是一種對長文本計算的新思路。
MI-TCNN-SA模型與MI-TCNN模型相比多加了一個自注意力層,效果有所提升。表4展示MI-TCNN模型與MI-TCNN-SA模型對選取每個樣本包中最像謠言示例的第一輪結果對比,選取4個謠言樣本為例。
在實驗時發(fā)現(xiàn),MI-TCNN模型經(jīng)過一輪訓練后篩選出來的被判斷為得分最高的謠言段落與人工標注的謠言段落進
表4 MI-TCNN與MI-TCNN-SA第一輪訓練提取示例對比
行對比,發(fā)現(xiàn)存在一部分謠言段落被選錯,這是導致最終檢測結果不好的原因。針對這個問題,在模型中加入一個示例自注意力層,得到包中不同示例的重要程度,相當于考慮了文章段落之間的內(nèi)部結構,對于判斷哪個示例最像謠言起到了輔助作用,可以引導模型在訓練時較早的選擇出存在謠言段落的示例,加快模型的收斂速度。
為能夠更好地理解示例自注意力層的作用,以表4中第4個樣本為例進行可視化,如圖5所示。圖中顏色深淺代表了每個示例的權重大小。在這個樣本中,謠言段落的權重比其它示例段落的權重都大,說明加入自注意力機制可以篩選出對謠言檢測更有用的示例。驗證了示例自注意力層對MI-TCNN-SA模型性能提升的重要性。
圖5 自注意力機制可視化
MI-TCNN-SA模型的訓練過程如圖6(a)與圖6(b)所示,兩圖中的橫坐標均表示模型的迭代次數(shù),縱坐標分別表示Accuracy值和Loss值。從兩圖中看出,模型在迭代次數(shù)為15時已經(jīng)基本收斂。
圖6 訓練中相關參數(shù)
本文基于多示例學習的思想,提出MI-TCNN-SA模型。并介紹該模型的4部分:一是本實驗中提出的一種對于新聞長文本數(shù)據(jù)預處理方式,按照多示例學習的思想將數(shù)據(jù)處理成包-示例的形式;二是特征提取,用TextCNN神經(jīng)網(wǎng)絡進行提??;三是示例自注意力層,引入自注意力機制提高模型性能;四是Sigmoid分類和二值交叉熵損失。通過模型間的對比實驗發(fā)現(xiàn),本文提出模型在食品健康領域的長文謠言檢測任務中表現(xiàn)最佳,尤其表現(xiàn)在對謠言的檢測上,充分驗證了本文方法的有效性。同時在將多示例學習的思想運用到TextCNN上,與常規(guī)TextCNN對長文本新聞進行謠言檢測,最終發(fā)現(xiàn)多示例學習對本實驗任務有一定改善,這也說明多示例學習是長文本謠言檢測的一項較好的改善方法。
但盡管如此,在食品健康領域的謠言檢測的研究仍然勉勵這新的難點和挑戰(zhàn):
(1)目前針對食品健康領域謠言檢測的研究還比較少,而且缺少公開可用的高質(zhì)量規(guī)模大的數(shù)據(jù)集。根據(jù)食品健康謠言長期反復出現(xiàn)的特點,可以構建一個食品健康領域的謠言知識庫,在謠言檢測任務中引入外部知識來輔助模型進行學習。
(2)針對長文謠言檢測的研究也比較少,長文謠言的一大特點是既包含謠言段落又包含非謠言段落,能夠?qū)χ{言段落做出精準定位也是一個亟待解決的難題。