?

融合時間序列與卷積神經網絡的網絡謠言檢測

2022-05-10 08:45汪建梅余晨鈺
小型微型計算機系統 2022年5期
關鍵詞:卷積帖子謠言

汪建梅,彭 云,余晨鈺

(江西師范大學 計算機信息工程學院,南昌 330022)

1 引 言

截至2020年6月,我國網民規模達到9.40億,互聯網普及率達67.0%(1)http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/hlwtjbg/202009/P020200929546215182514.pdf.隨著互聯網的普及,大多數用戶不斷從社交媒體獲取信息,同時通過社交媒體表達和傳播信息.隨著在線社交媒體的迅速發展,大量不可靠的謠言信息可能會大量涌現.社交媒體上的謠言信息泛濫,可能使人們難以將可信信息與眾多復雜信息區分開,從而影響人們的正常生活秩序,尤其是在突發公共事件(自然災害,意外事故)下,公共衛生事件,社會保障事件,經濟危機等),謠言廣泛傳播可能極具破壞性.因此,在謠言的早期階段自動有效地識別網絡中的謠言具有重要意義.

謠言檢測的主要任務是檢測微博帖子的相關事件是否為謠言,不是判斷某一條具體微博是否為謠言.現有的謠言檢測模型可以大致分為兩類:基于傳統機器學習的謠言檢測和基于深度學習的謠言檢測.

基于傳統機器學習的謠言識別模型主要是利用了微博文本的符號特征、含有的鏈接特征、關鍵詞分布特征和時間差等手工制作的特征,在綜合用戶特征和傳播特征,利用SVM分類學習方法對微博進行分類[1-3],然后在此基礎提出不同的系統識別框架.V.Qazvinian等[4]通過分析Twitter文本的淺層文本特征、行為特征和元素特征,構建多個貝葉斯分類研究來識別謠言.早期Mendoza等[5]通過分析Twitter謠言傳播的結構,得出在出現重大事件時,Twitter更容易傳播謠言,并且通過圖傳播分析傳播源的可信性來判斷事件的可信度.還有學者通過分析Twitter文本特征、轉發率、傳播時間點特征計算可信度分數[6,7]與基尼系數(Gini)[8]來識別謠言.Vasu等[9]分別討論了詞袋、n_grams、計數矢量器、TF-IDF這四個基本分類器對謠言識別的效果.也有學者另辟蹊徑,提出基于話題[10,11]的謠言檢測框架,可以降低謠言在沒有轉發或人群反應的情況下的互動缺失影響.李明彩等[12]提出最大熵模型,將信息中的詞匯作為特征,計算文本的最大熵,得出謠言與非謠言的概率,并將該模型與傳統的SVM、BP、Bayes[13]方法比較,得到較好結果.羅嗣卿等[14]、蔡國永等[15]、曾子明等[16]都加入了謠言微博文本的情感特征,并利用LDA主題模型深入挖掘微博文本的主題分布特征,再采用分別采用隨機森林、決策樹、組合決策樹算法進行謠言識別.傳統的機器學習方法從單純的手工制作特征到利用器和集成分類器,雖然所有降低勞動強度,但是仍然不能形成重要特性之間的高層交互.

為了挖掘動態復雜的社交媒體場景中的關鍵特征,深度神經網絡是一個很好的選擇.采用循環神經網絡GRU[17,18]、LSTM[19]、RNN[20,21]等以及這些基礎網絡的變體來深層挖掘謠言微博文本以及謠言傳播的特征,結果證明基于神經網絡的謠言檢測方法優于人工構造特征的謠言檢測模型.Ma J等[22]同樣利用RNN來捕捉帖子的上下文信息隨時間的變化.Zhihong Wang等[23]在GRU的基礎上添加了情緒詞典和動態時間序列特征來優化GRU算法.循環神經網絡更加關注時間序列帶來的特征影響,并且對卷積神經網絡的內部特征關系沒有深入的研究.劉政等[24]提出卷積神經網絡模型,將微博中的謠言事件向量化,通過卷積神經網絡隱含層的學習訓練來挖掘表示文本深層的特征,Santhoshkumar等[25]提出一種基于特定因素的卷積神經網絡(CNN)方法.采用兩個并行的CNN進行謠言事件分類,然后再利用決策樹將這兩個CNN的輸出組合在一起,并提供分類輸出.在卷積神經網絡的基礎上衍生出了基于圖卷積神經網絡模型[26]的謠言識別方法,將微博謠言數據轉換為圖數據,再利用卷積神經網絡進行訓練有標注數據,通過更新圖中節點權重,將該信息傳遞給無標注數據,大大降低了謠言數據標注的工作量.

CNN在謠言識別中取得了很好的結果,但沒有考慮到謠言各個生命周期之間的時間序列特征,對現有的卷積神經網絡模型進行了改進.

主要貢獻如下:

1)提出卷積神經網絡(CNN)與時間序列算法進行微博謠言識別;

2)改進卷積神經網絡(CNN)與時間序列算法的全連接層分類函數,增強模型泛化能力.

2 相關工作

在自然語言處理方面,卷積神經網絡在語句分類[27]、語義分析[28]、實體關系分類[29]、注意力機制[30]等中都取得了很好的效果.在謠言識別方面,劉政提出基于卷積神經網絡的模型,利用Doc2Vec[31]將微博帖子向量化,并且將卷積核的大小設為帖子向量的長度,可以有效地提取帖子與帖子之間、帖子內部之間的特征.劉政等的模型大大降低了人工構造特征的勞動強度,并且學習到微博帖子之間的深層特征,但是并沒有考慮謠言不同生命周期之間帖子的時間序列特征.Adel等[30]對卷積神經網絡識別謠言進行改進,添加不確定檢測因素的注意力機制,該模型利用文本的單詞向量序列、外部網絡環境變化來檢測事件的真假.Feng Yu等[32]提出一個用于錯誤信息和早期發現任務的CAMI模型,收集事件數據集的數據分布,觀察假信息和真信息的長尾分布,將微博帖子分組,再利用Doc2Vec得到文本向量表示,作為卷積神經網絡的輸入.Feng Yu等該模型檢測帖子中的真假信息,雖考慮到帖子之間的時間序列特征,但是參數過于龐大,占據太多資源.Dazhen等[33]在考慮內容特征和社交特征的基礎上,還考慮了文本單詞序列上下文特征,采用LSTM獲取內容的雙向序列上下文信息,然后將深層序列上下文信息與社會特征結合,用CNN學習內容與社會特征之間的聯系.Jing MA等[34]提出DSTS算法,使用時間序列來考慮社會語境特征在謠言傳播過程中隨時間變化的特征,在利用SVM算法進行謠言識別,但是并沒有考慮到微博文本上下文之間或微博文本之間的深層特征.

綜合分析,現有的利用卷積神經網絡檢測網絡謠言的模型存在以下問題:

1)卷積神經網絡訓練模型,模型過于復雜,參數過于龐大,占據過大資源;

2)卷積神經網絡并未很好處理謠言生命周期之間的時間序列特征;

3 CNN-TS謠言檢測模型

3.1 基本定義

實驗的研究對象是微博謠言事件,關注的是微博發布的相關事件是否是謠言,而不是關心與該事件相關的微博帖子是否為謠言.微博事件一旦被檢測為謠言,那么傳播與該事件相關的帖子也應該被視為謠言.例如,“中美不同的教育方式的結果是:教育進展國際評估組織的調查顯示,在21個被調查國家中,中國孩子的計算能力排名第一,想象力排名倒數第一,創造力排名倒數第五.此外,在中國的中小學生中,認為自己有好奇心和想象力的只占4.7%,而希望培養想象力和創造力的只占14.9%.”(2)https://www.sohu.com/a/74593586_101403這條謠言以及相關微博帖子“這種發展趨勢很可怕…”“[給力]”“家長、社會、教育專家和行政官員是推手,值得反思,但目前看不到希望,因為大家都跟著感覺走,沒有徹底改革的勇氣.”等就構成了一個謠言事件,而本文判斷的僅是“中美不同的教育方式的結果是:教育進展國際評估組織的調查顯示,在21個被調查國家中,中國孩子的計算能力排名第一,想象力排名倒數第一,創造力排名倒數第五.此外,在中國的中小學生中,認為自己有好奇心和想象力的只占4.7%,而希望培養想象力和創造力的只占14.9%.”(3)https://www.sohu.com/a/74593586_101403這個微博事件是否是謠言,而其相關微博帖子是否是謠言并不關心.因此,針對融合時間序列與卷積神經網絡模型給出相關的符號解釋和定義.

定義1.謠言事件[34].定義所有微博事件集合E={Ei},其中Ei={mi,j},Ei是指第i個事件,包含與其相關的所有微博帖子,mi,j是指第i個事的第j條微博帖子.要達到的目標就是判斷Ei,j是否是謠言事件.

3.2 理論基礎

3.2.1 Doc2Vec段落向量的構建

一個謠言事件有Ei,j若干條微博帖子mi,j,將每一條微博帖子的文本視為謠言事件的一個段落文本.根據Doc2Vec[31]中對段落文本向量的處理如式(1)所示.

(1)

其中,N是段落文本的詞個數,一個單詞表示成的單詞向量為Wn,單詞向量組成的集合是W,gj是一個段落向量,D是所有段落向量組成的集合.

利用Softmax函數對段落中的單詞進行概率預測的公式如公式(2)、公式(3)所示.

(2)

xn=h(gj,wn-k,…,wn+k;D,W)

(3)

其中,θ是Softmax函數的參數,h代表著連接函數或者平均函數.

3.2.2 卷積神經網絡結構原理

黨建武等[35]中描述了卷積神經網絡的結構,如圖1所示.深度學習能夠實現數據的逐層轉換,深入提取隱藏特征.

圖1 卷積神經網絡結構圖

CNN對輸入數據進行一系列的卷積與池化操作.其中,卷積層是卷積神經網絡的核心,卷積層對輸入層數據中的每個特征進行局部感知,然后在更高層次上對局部特征進行綜合運算,從而得到全局信息.卷積層的計算公式如(4)所示.

F=f(X?W+b)

(4)

其中,F為卷積層中多個卷積核的輸出特征矩陣,X為輸入數據向量,f為非線性激活函數,?為卷積操作,W為各個卷積核的權重矩陣,b為各個卷積核的偏置項.非線性激活函數是對卷積層的輸出進行非線性映射操作,以增強函數的特定數值性質,ReLU函數通常用于中間層的非線性激活,因為其迭代速度快,Softmax函數一般用于最后一層的激活功能.

池化層是池化卷積層的輸出,保留主要特征,壓縮數據和參數的數量,減少過度擬合,提高模型的容錯性,計算如公式(5)所示.

P=pool(F)

(5)

其中,P表示池化層的特征輸出結果,pool表示池化函數,一般分為Max Pooling和Average Pooling.

全連接層是以平滑化后的特征矩陣作為全連通層的輸入矩陣,然后以激活函數作為分類函數,輸出每個分類標簽的概率.

3.2.3 K折交叉驗證法

K折交叉驗證法是減少過擬合,解決數據量不夠多,導致檢測效果差的常用操作方法.K折交叉驗證就是將給定的數據集均分為K份,經過若干次迭代,第K次迭代取第K折數據作為測試集,另外K-1份數據作為訓練集,直到K折中的每折數據都用作測試集.然后將總迭代的測試結果與訓練結果的平均值作為最后的測試與訓練結果.K折交叉驗證法的結構原理圖如圖2所示.

圖2 K折交叉驗證法原理圖

3.3 CNN-TS模型結構

3.3.1 CNN-TS模型流程圖

提出的謠言檢測的流程圖如圖3所示.首先獲取微博中的事件數據,其中包含謠言數據與非謠言數據,將其隨機打亂,保證訓練集、驗證集和測試集的數據分布都是相同的;其次,將每個事件數據作為一個整體,并對與之相關的每個微博帖子進行文本向量化.然后將該事件數據的文本向量按對應的時間序列進行排序,均分為20組;最后將這20組向量作為輸入矩陣,進行卷積神經網絡模型的訓練.

圖3 微博謠言檢測流程圖

3.3.2 微博帖子的時間序列分組

一個有影響力的微博事件的帖子數量至少有幾百條,甚至達到幾萬條,不同事件的帖子數量差異大.但是謠言事件的生存周期分為潛伏期、滋生期、蔓延期、消退期,在這4個時間段內和4個時間段之間的微博帖子文本特征具有相似的特征及變化趨勢.因此將這些按照時間序列排好的相鄰帖子視為一個組,代表事件的一個特定生命周期.這樣做的考慮是:更多關注各個時間段內的微博帖子內容的特征關系,并且可以提取出各個時間段之間的微博文本的特征,而不是單獨一條微博帖子之間的特征關系.一個微博謠言事件的發展在各個時間段內的帖子內容會有差異,而且這樣做能夠大大減少模型輸入數據的復雜度.帖子的時間序列分割參考MA等[34]中的操作.

對于一個事件Ei,其帖子的起始時間為time_Begini,帖子的結束時間為time_Endi,將每條微博mi,j的時間ti,j轉換為0到N之間內的時間戳,N是時間間隔數,在本文中N取20.那么對于事件Ei的帖子時間間隔time_Intervali和每一條帖子的時間戳數的time_Stampmi,j計算公式如公式(6)和公式(7)所示.

(6)

(7)

然后收集所有相關微博帖子的時間戳,并從每個事件的所有時間戳中減去相應事件的開始時間戳.然后將這些時間戳規范化為0-1尺度.最后將整個時間戳按時間順序平均分割為20個份額,每個時間窗口內的帖子表示為如式(8)所示.

Ti=[time_Stampmi,j-1,time_Stampmi,j),j=1,2,3,…,20

(8)

然后將分組后的帖子Ti利用Doc2Vect文本向量化,作為輸入矩陣傳入卷積神經網絡訓練.第i個微博謠言事件的相關帖子分組后,得到的向量矩陣的表示如式(9)所示.

V(Ei)=(Fi,1,Fi,2,…,Fi,20)

(9)

其中,Ei是第i個謠言事件,Fi,20是分組后的20個特征向量.

向量按時間序列分組的模型結構如圖4所示.

圖4 時間序列分組的模型結構圖

3.3.3 CNN-TS的卷積神經網絡模型

用于卷積神經網絡的模型結構如圖5所示.

圖5 微博謠言的卷積神經網絡模型圖

其中Fi,j∈Rk,表示謠言事件Ei的第j條微博的文本向量,其維度為k.一個包含n條相關微博的謠言事件的文本向量可以表示為如式(10)所示.

Ei=Fi1⊕Fi2⊕Fi3⊕…⊕Fin

(10)

其中⊕表示串聯操作.

卷積層:利用卷積核filterw∈Rh*k對輸入向量進行卷積操作得到新的特征向量.例如,第1層隱含層的3個卷積核的操作計算公式如式(11).

(11)

池化層:對卷積后的特征矩陣進行壓縮,一方面使特征矩陣變小,一另一方面提取主要特征.本實驗采用的是maxpooling,將特征矩陣切成幾個區域,取其最大值,保持原有的矩陣特征得出池化后的特征值.

全連接層:將經過多個卷積層與池化層后的特征矩陣作為全連接層的輸入矩陣,一般采用Softmax函數作為分類函數進行操作,其輸出為每一個分類標簽的概率.

卷積核filter的設置是采用劉政等[24]文獻中的操作:將filter的寬度等于輸入矩陣的寬度.每一行是微博事件的按時間序列分組后的微博帖子向量,這樣設置,能夠更加關注微博帖子文本之間的特征關系,而不是微博帖子文本內部的詞語之間的特征關系.

3.4 模型結構的改進

卷積神經網絡對標簽的分類方法主要由兩部分組成:一個是分數函數,它將原始數據映射到類別分數;另一個是損失函數,它量化了預測分數和實際分數之間的一致性,主要用來表示一個標簽的概率.神經網絡模型可以通過更新評分函數的參數使損失函數值最小化,達到模型最優的目的.分類函數softmax與SVM的損失函數是不同的,它們的區別如下:

1)softmax函數的損失函數是cross-entropyloss,如式(12)、式(13)所示.

(12)

(13)

其中,fyi是把標簽i預測為yi的分數,j是分類結果中的一個,Li是在[0,1]之間的損失.Pyi是數據分類的Softmax值,即分類正確的概率,Softmax值越大,該模型的損失也就越小.

2)SVM函數的損失函數是hinge-loss.分類器輸入樣本xi后,第j個類別的評分是:

sj=f(xi,W)j

(14)

則對第i個樣本的損失為:

(15)

該計算公式只關注正確分數比不正確大Δ的值,在用hinge-loss訓練時,需考慮預期的損失函數該有多大.

因此,先用Softmax函數對輸入數據進行預訓練,得到預期的損失函數值大小,然后再次輸入模型,將分類函數Softmax改為SVM,解決模型泛化能力不足的問題.

CNN-TS模型采用的分類函數是Softmax,針對此問題,修改模型中的分類函數Softmax,采用SVM對池化后的特征向量進行最終分類,模型結構圖如圖6所示.

圖6 SVM作為分類函數的CNN-TS改進模型結構圖

4 實驗與分析

4.1 實驗數據

采用的實驗數據是Ma等[22]文獻中的公開數據集.該數據集中的微博數據是從新浪社區管理中心獲得的謠言與非謠言事件,該中心報道了各種不實信息.并通過爬蟲捕獲了這些事件的原始帖子以及所有相關的轉發/回復消息.該數據集的統計情況如表1所示.

表1 微博數據的詳情統計情況表

4.2 數據預處理

收集到的實驗數據包含大量噪聲,會嚴重影響謠言識別效果,因此有必要在實驗前進行數據噪聲處理.

1)去除標點符號.在本實驗中,只考慮帖子的文本特征,但某些標點符號,如“!”也可作為一種特征,因此按照“!”“?”優先級保留,其余則需移除.

2)去除表情符號.本實驗中只考慮文本的特征,不考慮文本所展現出來的情感特征,因此需要移除表情符號,例如[開心].

3)去除特殊符號.微博帖子包含無關信息,例如超鏈接和@某某,可以通過正則表達式匹配將其從數據集中刪除.

4)分詞.微博帖子為短文本,在進行文本處理時,其最小粒度應為詞或詞語,因此需要進行分詞操作.采用的是Python中的jieba分詞處理.

5)去停用詞.停用詞是指不對文本特征有任何貢獻的詞.它不僅包含標點符號,還包含語氣詞,人稱詞和地點詞之類的詞.但語氣詞也代表了文本的一種隱含特征,因此本實驗不去除語氣詞.本實驗采用的是哈工大停用詞表hit_stopwords.

微博文本數據進行噪聲處理,可以大大降低文本無關信息的噪聲影響,大大增強模型檢測效果.

4.3 實驗評價指標

準確率(accuracy),精確率(precision),召回率(recall),F1值常被用于評判實驗效果,本文同樣選取這4個指標.具體的計算方式如下:

(16)

預測正確的樣本數是樣本數中真謠言的樣本預測為真和假謠言的樣本預測為假的個數;預測正確的正樣本數是預測正確的樣本數中預測為真的個數;預測為正的樣本數為不論真實標簽為真還是為假,都將其預測為真的個數;總樣本中的正樣本數為總樣本中真實標簽為真的個數.準確率反映的是檢測方法的準確性,召回率反映的是檢測方法的覆蓋率,這兩個指標的數值越大,表明檢測方法的整體效果越好.

4.4 實驗設置

將提出的模型與劉政等[24],Abhishek等[36]的模型進行了對比.

劉政等[24]的模型:劉政等提出采用卷積神經網絡模型進行微博謠言的檢測,取得了良好的效果,本文的模型就是卷積神經網絡模型的一種改進.

Abhishek等[36]的模型:Abhishek等的模型是利用樸素貝葉斯、隨機森林和支持向量機這3種基本的機器學習模型對文本特征、用戶特征以及文本與用戶組合的特征進行訓練、識別.本實驗采用Abhishek中的基于RBF核模型的SVM方法,對組合特征進行訓練.本文模型對分類函數的改進是利用了RBF核模型的SVM方法.

提出的模型(CNN-TS):時間序列和卷積神經網絡模型的融合由卷積層,池化層和兩個完全連接層組成.卷積層的寬度與輸入數據矩陣的寬度相同.輸入矩陣是使用Doc2Vec訓練的文本向量矩陣.

超參數設置:超參數的設置是參考劉政等[24]的參數,filter的高度為3,dropout rate為0.5.每一條微博的維度k設為50.

數據集的劃分:K折交叉驗證方法用于評估模型的預測性能.經過訓練的模型對新數據的性能可以在一定程度上減少過度擬合的情況,并可以從有限的數據中獲得盡可能多的有效信息,將K設置為10,并多次計算每個評估指標的K折交叉驗證平均值.

4.5 實驗結果

模型CNN-TS與CNN,SVM-RBF的實驗結果比較如表2所示.

表2 模型的實驗結果比較圖

從表2中可以看出,融合時間序列與卷積神經網絡的模型優于基于支持向量機的RBF核模型和普通的卷積神經網絡模型,比支持向量機模型準確率提高0.082,精確率提高0.061,F1值提高0.089;比普通的卷積神經網絡模型準確率提高0.056,recall提高0.16,F1值提高0.081.因此融合了時間序列的卷積神經網絡模型是優于劉政等[24]提出的基本卷積神經網絡模型以及Abhishek等[36]運用的支持向量機模型的.

同時對CNN-TS的模型進行改進,將最終的分類函數改為SVM得到改進后的模型,最終的實驗結果比支持向量機模型準確率提高0.097,精確率提高0.09,recall值提高0.112,F1值提高0.1;比普通的卷積神經網絡模型準確率提高0.071,精確率提高0.016,recall提高0.154,F1值提高0.092;比CNN-TS準確率提高0.015,精確率提高0.029,F1值提高0.013.CNN-TS-SVM模型除了recall略低0.006外,其他準確率、精確率、F1值都高于CNN-TS模型,因此在CNN-TS模型的基礎上,修改分類函數,改進后的CNN-TS(SVM)模型是優于CNN-TS模型的.

模型的輸入數據矩陣與劉政等[24]的卷積神經網絡的輸入矩陣的規模對比如表3所示.

表3 模型的輸入數據矩陣規模對比表

模型融合了時間序列后,輸入矩陣的規模大大減小,大大減少了占用系統內存,減少了訓練時間,同時準確率,召回率,F1值都優于劉政等[24]提出的CNN模型.而且迭代步數在100步內就可以收斂,同時不出現過擬合的情況.

5 結 語

提出了融合時間序列與卷積神經網絡的謠言檢測算法模型,可以大大降低模型的復雜度,減小數據集的規模,又考慮到時間序列上的特征變化.提出的方法是通過將與某一個事件相關的所有微博帖子按時間序列分成若干組,再通過Doc2Vec處理成文本向量,最后作為卷積神經網絡的輸入進行訓練預測.結果顯示,它們優于卷積神經網絡模型.為了進一步改進,用Softmax分類函數的神經網絡模型訓練好后,再一次用SVM模型進行最后的分類,結果顯示,這種改進優于未改進之前的狀態.如何進一步優化神經網絡模型,添加謠言文本和圖片的特征進行更徹底的實驗將是下一個進一步的研究工作.

猜你喜歡
卷積帖子謠言
基于全卷積神經網絡的豬背膘厚快速準確測定
基于圖像處理與卷積神經網絡的零件識別
中國使館駁斥荒謬謠言
不信謠言 科學防“疫”
基于深度卷積網絡與空洞卷積融合的人群計數
你被養生謠言忽悠過嗎?
謠言π=4!
卷積神經網絡概述
暴力老媽
高手是這樣拍馬屁的
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合