何韓森,孫國梓
(南京郵電大學(xué)計(jì)算機(jī)學(xué)院,南京210023)
隨著互聯(lián)網(wǎng)時(shí)代社交媒體的持續(xù)發(fā)展,假新聞以前所未有的速度覆蓋了人們?nèi)粘I畹母鱾€(gè)方面。2016 年美國總統(tǒng)大選期間,在南歐小城韋萊斯,這個(gè)人口僅5.5 萬的小鎮(zhèn)竟然擁有至少100 個(gè)支持特朗普的網(wǎng)站,其中很多充斥著各種聳人聽聞的假新聞,靠吸引流量來賺取廣告費(fèi)[1]。對假新聞生產(chǎn)者而言,他們通過制造假新聞,誘導(dǎo)用戶點(diǎn)擊閱讀并賺取流量,以低廉的成本獲取了巨額利益,他們制造的假新聞也不可避免地對社會產(chǎn)生了負(fù)面影響。虛假新聞網(wǎng)站制造假新聞,各大知名互聯(lián)網(wǎng)平臺則對其不加審核地轉(zhuǎn)載。文獻(xiàn)[2]的研究結(jié)果表明,虛假新聞網(wǎng)站的總流量有一半來自Facebook的首頁推薦,F(xiàn)acebook 對信譽(yù)評估良好的網(wǎng)站引流效果甚微,它們來自Facebook的流量只占到總流量的五分之一。虛假新聞的泛濫一方面源自于媒介平臺對新聞信息無選擇式的傳播,另一方面則受到人群對新聞?wù)J知局限性的影響。由于知識獲取的有限性,人們本身的知識結(jié)構(gòu)不足以完全實(shí)現(xiàn)對假新聞的鑒別。輿論調(diào)查機(jī)構(gòu)YouGov的調(diào)查表明:近一半的人(49%)認(rèn)為自己可以區(qū)分假新聞,但測試結(jié)果顯示,只有4%的人可以通過標(biāo)題識別假新聞。同時(shí),人們還會出于愚弄諷刺他人或獲取經(jīng)濟(jì)利益等個(gè)人目的去刻意傳播假新聞。
假新聞以獵奇的標(biāo)題、虛構(gòu)的事件吸引讀者眼球,不但影響了個(gè)人對社會事件的準(zhǔn)確認(rèn)知,阻礙了人們對真實(shí)新聞的獲取,還會對社會和經(jīng)濟(jì)的穩(wěn)定帶來負(fù)面影響。但是,人工的方法往往難以保證海量新聞內(nèi)容的質(zhì)量和真實(shí)性,更遑論篩選和阻止假新聞的傳播。人工鑒別假新聞的方法同時(shí)存在效率低下、具有時(shí)滯性等問題。為此,引入人工智能技術(shù),有助于快速有效地減少假新聞在互聯(lián)網(wǎng)平臺的傳播,也為社交媒體平臺的假新聞自動(dòng)檢測技術(shù)的提升提供了可能。
Ajao 等[3]提出了一個(gè)框架,該框架基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)和長短時(shí)記憶(Long Short-Term Memory,LSTM)神經(jīng)網(wǎng)絡(luò)的混合模型來檢測和分類來自推特帖子的假新聞消息。由于LSTM 神經(jīng)網(wǎng)絡(luò)在上下文特征的提取方面表現(xiàn)不佳,而上下文的語義信息可以為假新聞檢測任務(wù)提供更好的語義特征,所以引入CNN 可以較好地彌補(bǔ)LSTM 在上下文特征提取方面的缺陷。本文的主要工作有:在Liar數(shù)據(jù)集[4]上增加了一些新的politifact網(wǎng)站新聞數(shù)據(jù),并結(jié)合Kaggle 數(shù)據(jù)集和Buzzfeed 數(shù)據(jù)集整理了一個(gè)短文本的二分類假新聞數(shù)據(jù)集;同時(shí)提出了一種基于特征聚合的假新聞檢測模型CCNN(Center-Cluster-Neural-Network)。
假新聞檢測也屬于文本分類的范疇,Kim[5]在2014 年便提出了利用CNN對文本進(jìn)行分類的算法,即TextCNN,該算法利用多個(gè)不同大小的卷積核來提取句子中的關(guān)鍵信息,從而更好地捕捉局部相關(guān)性;文獻(xiàn)[6]中利用CNN 從新聞主題的角度檢測假新聞,表明CNN 可以捕獲虛假和真實(shí)新聞?wù)Z料在語法修辭上的差異性,從而實(shí)現(xiàn)假新聞的識別工作;而文獻(xiàn)[7]中則認(rèn)為應(yīng)該結(jié)合語言特征分析并采用事實(shí)檢查的方法來提高假新聞檢測分類器的性能。
從新聞本身的文本內(nèi)容來看,有50 個(gè)單詞左右的短文本型新聞,如Liar 數(shù)據(jù)集。該數(shù)據(jù)集于2017 年發(fā)布,訓(xùn)練、驗(yàn)證、測試集總計(jì)約12 000條記錄,而且還提供了一些新聞元數(shù)據(jù)(類似于作者、作者的黨派,還有所在洲等信息);標(biāo)簽劃分為6 個(gè)等級,從幾乎為真到幾乎為假,內(nèi)容主要與美國政治相關(guān)。Kaggle 假新聞檢測數(shù)據(jù)集則包含URLs、Headline、Body三個(gè)特征,標(biāo)簽為是否為假,其中假新聞1 872 條,真新聞2 137條。另外一種是長文本類型的數(shù)據(jù)集,如華盛頓大學(xué)假新聞數(shù)據(jù)集,平均單詞數(shù)量在500 左右,記錄總數(shù)較多,總計(jì)約6萬條記錄。
針對假新聞檢測,傳統(tǒng)的自然語言處理方法主要從三個(gè)方面考慮:基于知識驗(yàn)證、基于上下文、基于內(nèi)容的風(fēng)格?;谥R驗(yàn)證,即事實(shí)檢查,Etzioni 等[8]通過從網(wǎng)絡(luò)提取的內(nèi)容與相關(guān)文檔的聲明匹配來識別一致性,但該方法受制于網(wǎng)絡(luò)數(shù)據(jù)的可信度、質(zhì)量等挑戰(zhàn)。Rashkin 等[9]在政治事實(shí)檢查和假新聞檢測的背景下對新聞媒體的語言進(jìn)行了分析研究,對帶有諷刺、惡作劇和宣傳的真實(shí)新聞進(jìn)行了比較,證明了事實(shí)檢查確實(shí)是一個(gè)具有挑戰(zhàn)性的任務(wù)。
基于上下文主要依賴新聞所帶有的元數(shù)據(jù)信息和在社交媒體網(wǎng)絡(luò)中的傳播方式。Wang[4]的研究表明,在加入作者等元數(shù)據(jù)信息之后,對于假新聞檢測的性能會有所提升;Zhao等[10]發(fā)現(xiàn)在傳播過程當(dāng)中,大多數(shù)人轉(zhuǎn)發(fā)真實(shí)新聞是從一個(gè)集中的來源,而虛假新聞則會通過轉(zhuǎn)發(fā)其他轉(zhuǎn)發(fā)者發(fā)布的內(nèi)容來傳播,虛假新聞在社交網(wǎng)絡(luò)的傳播過程中具有明顯的多點(diǎn)開花式特征。
基于內(nèi)容風(fēng)格是從新聞本身的內(nèi)容探究假新聞可能具有的特征,主要有語言特征、詞匯特征、心理語言學(xué)特征等,這包括句子的單詞數(shù)量、音節(jié)、詞性、指代、標(biāo)點(diǎn)、主題等。例如Castillo 等[11]從內(nèi)容中提取基本的語義和情感特征,并從用戶中提取統(tǒng)計(jì)特征的特征分類模型。Volkova 等[12]從語義的角度考慮,例如對文本進(jìn)行情感打分。而與此相關(guān)的子任務(wù)是立場檢測,Bourgonje 等[13]提出檢測關(guān)于文章的聲明與文章本身之間關(guān)系的立場檢測。
目前這些研究當(dāng)中,鮮有研究關(guān)注到假新聞檢測模型的分類性能和泛化性能,因此,本文的研究工作基于此提出了基于特征聚合的假新聞檢測模型。
CCNN 模型結(jié)構(gòu)如圖1 所示,主要由兩個(gè)部分組成:一個(gè)是由卷積層構(gòu)成的特征提取和特征聚類模塊,一個(gè)是由雙向記憶神經(jīng)網(wǎng)絡(luò)來采集時(shí)序特征的模塊。CCNN 模型整體流程如下:
1)數(shù)據(jù)獲取和標(biāo)簽標(biāo)注:本文所用的假新聞數(shù)據(jù)集詳見3.1節(jié)。
2)文本預(yù)處理:先分詞(jieba,結(jié)巴分詞),再將自然語言的文本進(jìn)行數(shù)字向量化并對齊所有句子長度,然后使用預(yù)訓(xùn)練詞向量矩陣化。
3)特征提?。和ㄟ^CNN 對輸入文本進(jìn)行的卷積操作,不同大小的卷積核能提取到不同種類的特征,本文選擇3 種大小的卷積核分別提取到對應(yīng)窗口大小的詞匯特征,在經(jīng)由池化降維處理之后,再采用基于雙中心損失函數(shù)將特征進(jìn)行聚類。與此同時(shí)進(jìn)行的還有使用雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)對輸入文本進(jìn)行全局時(shí)序特征的采集。然后將以上卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)兩個(gè)部分采集到的不同特征作特征拼接融合,融合之后的特征作為輸入文本最后的分類特征。
4)分類結(jié)果:利用全連接層和改進(jìn)之后的均勻損失函數(shù)訓(xùn)練模型分類器,并得出最終結(jié)果。
卷積操作就是利用濾波器對輸入層中的每個(gè)窗口產(chǎn)生新的特征,傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)在進(jìn)行卷積操作后會使用池化層,通過對同一濾波器不同尺寸窗口產(chǎn)生的特征取最大值或者取平均值,以此達(dá)到減少參數(shù)數(shù)量的目的,所以,CCNN 模型的特征提取層中也設(shè)有相應(yīng)的卷積層和池化層。卷積神經(jīng)網(wǎng)絡(luò)的框架結(jié)構(gòu)如圖2所示。
與之前池化之后再連接池化層或者輸出層不同的是,CCNN 模型會在池化層之后連接一個(gè)特征聚類層,通過基于雙中心損失函數(shù)訓(xùn)練的特征聚類層,使得類間距離最大化和類內(nèi)距離最小化。
在卷積神經(jīng)網(wǎng)絡(luò)通過卷積操作來提取一些窗口特征的同時(shí),也采用雙向長短時(shí)記憶(Bi-directional Long Short Term Memory,Bi-LSTM)網(wǎng)絡(luò)來對輸入的句子進(jìn)行序列特征的提取。
Bi-LSTM 由前向 LSTM 與后向 LSTM 組合而成。 LSTM 建模的一個(gè)問題就是無法編碼從后到前的信息,而在假新聞檢測任務(wù)中,語句中情感詞、程度詞、否定詞之間交互對于分類的結(jié)果有著重要的作用,通過Bi-LSTM 可以更好地捕捉雙向的語義依賴。且Bi-LSTM 能捕捉長距離的信息,使得特征視野不再局限在窗口中,可以與卷積神經(jīng)網(wǎng)絡(luò)形成互補(bǔ),其LSTM單元結(jié)構(gòu)框架如圖2所示。
圖3 t時(shí)刻LSTM結(jié)構(gòu)Fig. 3 Structure of LSTM at time t
LSTM模型是由t時(shí)刻的輸入Xt、細(xì)胞狀態(tài)Ct、臨時(shí)細(xì)胞狀態(tài)C~t、隱 層 狀 態(tài)ht、遺 忘 門ft、記 憶 門it和 輸 出 門ot組 成 。LSTM 通過對細(xì)胞狀態(tài)中已有的信息進(jìn)行選擇性遺忘和記憶對后續(xù)時(shí)刻計(jì)算有用的新信息,使得有用的信息得以傳遞,而丟棄無用的信息。在每個(gè)時(shí)間步上都會計(jì)算并輸出當(dāng)前時(shí)刻的隱層狀態(tài)ht,其中遺忘、記憶和輸出是通過上個(gè)時(shí)刻的隱層狀態(tài)ht-1和當(dāng)前的輸入Xt經(jīng)由遺忘門ft、記憶門it、輸出門ot來計(jì)算控制的。對應(yīng)的計(jì)算公式如式(1)所示:
將每一個(gè)時(shí)間步對應(yīng)的隱層狀態(tài)收集起來便可得到一個(gè)隱層狀態(tài)序列{h0,h1,…,hn-1},n為句子長度。LSTM 得到的是一個(gè)正向序列,對于文本也可以說是從左往右的狀態(tài)序列,而Bi-LSTM 在此基礎(chǔ)上對文本從右往左進(jìn)行逆序編碼,進(jìn)而獲得逆向的隱層狀態(tài)序列。最后,將正向和逆向的隱層狀態(tài)序列進(jìn)行拼接,繼而得到最終的文本向量序列。對于本任務(wù)來說,只需取雙向最后一個(gè)隱層狀態(tài)向量進(jìn)行拼接來表示本文的文本,因?yàn)樗呀?jīng)包含了正向和逆向的所有信息了。
通常的假新聞檢測模型(二分類)中,在提取完特征之后就將其送入分類器進(jìn)行分類判別,并且采用sigmoid 訓(xùn)練模型,但這時(shí)的特征往往并不能很好地區(qū)分這些類別,所以本文采用了類似K 最近鄰(K-Nearest Neighbor,KNN)的方法在特征被送入分類器之前做了進(jìn)一步的處理,使得特征具有了一定的聚類特性。采用文獻(xiàn)[14]中的加聚類懲罰項(xiàng)作為模型的損失函數(shù),函數(shù)定義如式(2)所示。
其中:yi為正確的樣本就是二分類的交叉熵就是額外的懲罰項(xiàng),cyi則是每個(gè)類別定義的可訓(xùn)練中心。所以,前者用于擴(kuò)大不同類別中心的距離,而后者則用于縮小當(dāng)前類別的樣本到該類中心的距離。
選擇邏輯回歸函數(shù)(sigmoid)加交叉熵(cross entropy)這樣的搭配訓(xùn)練模型時(shí),往往會使分類器只學(xué)習(xí)到了正例樣本的特征,增加過擬合的風(fēng)險(xiǎn)。因此,為使分類器不至于單純地去擬合真實(shí)的樣本分布,增加了一個(gè)任務(wù),讓它同時(shí)也去擬合一下均勻分布,故采用的損失函數(shù)如式(3)所示。
其中:ε為自定義的變量;e 為自然數(shù);[z1,z2]是模型輸出的預(yù)測結(jié)果。
由于推特、微博等社交工具的文本長度限制在140 詞,本文從公開的假新聞數(shù)據(jù)集和相關(guān)假新聞驗(yàn)證網(wǎng)站上搜集整理數(shù)據(jù),得到一個(gè)短文本假新聞二分類數(shù)據(jù)集,并命名為pkb 假新聞數(shù)據(jù)集。pkb假新聞數(shù)據(jù)集的主要來源有:politifact網(wǎng)站、kaggle假新聞競賽數(shù)據(jù)集和Buzzfeed數(shù)據(jù)集。對于politifact網(wǎng)站上的數(shù)據(jù),選取其中4 個(gè)類別,分別是true、false、barely-true和pants-on-fire,后3 個(gè)類別統(tǒng)一歸為假新聞一類;kaggle 假新聞競賽數(shù)據(jù)集和Buzzfeed 數(shù)據(jù)集按照原有數(shù)據(jù)集的真假新聞標(biāo)簽分別獲取真假新聞數(shù)據(jù)。pkb 假新聞數(shù)據(jù)集全部為不超過140個(gè)詞的短文本新聞,標(biāo)簽為0(假,對應(yīng)表1中的負(fù)例列)或1(真,對應(yīng)表1 中的正例列)總計(jì)13 070 條數(shù)據(jù),具體劃分見表1。
表1 實(shí)驗(yàn)中使用的數(shù)據(jù)集(pkb)Tab. 1 Datasets used in the experiment(pkb)
3.2.1 評價(jià)指標(biāo)
為保證實(shí)驗(yàn)的公平及可對比性,針對pkb假新聞數(shù)據(jù)集0(真新聞)和1(假新聞)兩個(gè)類別,根據(jù)樣例真實(shí)類別與CCNN預(yù)測類別組合劃分為真陽性(TP)、真陰性(TN)、假陽性(FP)和假陰性(FN)四種類型,混淆矩陣如表2所示。
表2 假新聞檢測結(jié)果混淆矩陣Tab. 2 Confusion matrix of fake news detection result
在假新聞檢測任務(wù)中,更希望盡可能地檢測出假新聞,同時(shí)可以顧及用戶體驗(yàn)而不致于大量的真實(shí)新聞被誤傷,所以綜合考慮acc、P、R和F1 作為評價(jià)模型性能的標(biāo)準(zhǔn),計(jì)算公式如下:
3.2.2 參數(shù)選擇
根據(jù)文獻(xiàn)[8,15-16]等實(shí)驗(yàn)發(fā)現(xiàn),在假新聞檢測基礎(chǔ)模型的選擇時(shí),一般有支持向量機(jī)(Support Vector Machines,SVM)、樸素貝葉斯(Na?ve Bayes,NB)、隨機(jī)森林(Random Forest,RF)等,故本文也選擇這三種模型作為基礎(chǔ)模型。
SVM[17]是一種監(jiān)督學(xué)習(xí)算法,其決策邊界是對學(xué)習(xí)樣本求解的最大邊距超平面,適合于小樣本的學(xué)習(xí),訓(xùn)練速度快且具有較好的魯棒性;NB是在貝葉斯算法的基礎(chǔ)上進(jìn)行了相應(yīng)的簡化,即假定給定目標(biāo)值時(shí)屬性之間相互條件獨(dú)立,梁柯等[18]的研究表明NB算法具有計(jì)算復(fù)雜度小、數(shù)據(jù)缺失對算法影響度小、適合大量數(shù)據(jù)計(jì)算及易于理解等優(yōu)點(diǎn);RF 是一個(gè)包含多個(gè)決策樹的分類器,其輸出是由個(gè)別樹輸出類別的眾數(shù)決定的,王奕森等[19]研究表明RF對噪聲和異常值有較好的容忍性,對高維數(shù)據(jù)分類問題具有良好的可擴(kuò)展性和并行性,解決了決策樹性能瓶頸的問題。
基礎(chǔ)模型選用線性判別分析(Linear Discriminant Analysis,LDA)降維之后的特征數(shù)據(jù)作為特征輸入,神經(jīng)網(wǎng)絡(luò)模型除FastText 采用自訓(xùn)練的詞向量外,其余模型均采用預(yù)訓(xùn)練詞向量+微調(diào)(fine-tune)的模式,對應(yīng)的預(yù)訓(xùn)練詞向量采用全局向量(glove),維度為100 維。FastText 的詞組窗口大小設(shè)置為3,其余卷積神經(jīng)網(wǎng)絡(luò)的卷積核大小設(shè)置為[2,3,4]。
3.2.3 結(jié)果分析
各模型的性能指標(biāo)結(jié)果如表3 所示;測試集與驗(yàn)證集的差值結(jié)果見圖4和圖5,圖4對應(yīng)傳統(tǒng)的機(jī)器學(xué)習(xí)模型,圖5對應(yīng)神經(jīng)網(wǎng)絡(luò)模型。傳統(tǒng)的機(jī)器學(xué)習(xí)模型通過人工提取特征,具有較強(qiáng)的主觀性且無法學(xué)習(xí)到深層次的潛在特征和對應(yīng)關(guān)系。從表3 的結(jié)果數(shù)據(jù)中可以觀察到,在各項(xiàng)性能指標(biāo)中,除LSTM外的神經(jīng)網(wǎng)絡(luò)模型普遍要優(yōu)于傳統(tǒng)的機(jī)器學(xué)習(xí)模型;再結(jié)合模型的泛化能力綜合看,在圖5中,CCNN 的結(jié)果較好,各項(xiàng)性能指標(biāo)退化較少且曲線較為平和;在圖4 中,隨機(jī)森林的曲線波動(dòng)要比其他兩個(gè)模型穩(wěn)定,并且提升的幅度也占優(yōu),但整體性能不如神經(jīng)網(wǎng)絡(luò)模型。
圖5 神經(jīng)網(wǎng)絡(luò)模型測試集與驗(yàn)證集結(jié)果差值Fig. 5 Result differences between test set and validation set of neural network model
表3 各模型的性能指標(biāo)對比單位:%Tab. 3 Comparison of performance indexes of various models unit:%
在驗(yàn)證集和測試集上,CCNN(S)和CCNN 分別獲得了最優(yōu)的性能。其中,注意到加入了均勻損失函數(shù)的CCNN 模型在泛化能力上要優(yōu)于其他的模型,CCNN(S)為損失函數(shù)采用傳統(tǒng)的二分類交叉熵?fù)p失函數(shù),雖然在驗(yàn)證集上的性能達(dá)到了最優(yōu),但是在測試集上的結(jié)果卻沒能繼續(xù)保持。從F1的性能指標(biāo)上來看,以卷積神經(jīng)網(wǎng)絡(luò)為核心的TextCNN、CCNN 和CCNN(S)模型分類性能要略優(yōu)于以循環(huán)神經(jīng)網(wǎng)絡(luò)為核心的LSTM和Bi-LSTM模型,這表明利用CNN提取文本特征的方式要略優(yōu)于RNN,比傳統(tǒng)的基于統(tǒng)計(jì)的人工特征更加有效。
文獻(xiàn)[20]的研究認(rèn)為泛化性能是訓(xùn)練好的模型對于不在訓(xùn)練集內(nèi)數(shù)據(jù)的擬合能力,檢驗(yàn)?zāi)P驮趯?shí)際場景中是否能達(dá)到跟訓(xùn)練時(shí)一樣的效果,本質(zhì)就是反映模型是否學(xué)習(xí)到了真實(shí)的分類特征,還是對數(shù)據(jù)產(chǎn)生了過擬合,因此本文采用了不參與訓(xùn)練的測試集作為評估模型泛化能力的方法。。
本文提出了一種短文本假新聞檢測模型CCNN,結(jié)合了CNN 和RNN 模型的優(yōu)點(diǎn),同時(shí)利用特征聚類和均勻損失提高了模型的泛化能力。在我們整理的一個(gè)短文本的二分類假新聞數(shù)據(jù)集pkb 上的實(shí)驗(yàn)結(jié)果表明,在提高檢測性能的基礎(chǔ)上,本文模型CCNN的泛化性能也得到了保證。
在接下來的工作中,需要尋找更大規(guī)模、更多特征、更具通用性的多模態(tài)假新聞數(shù)據(jù)集;針對算法模型方面,由于數(shù)據(jù)集的匱乏,也可以考慮轉(zhuǎn)向半監(jiān)督甚至無監(jiān)督的學(xué)習(xí)研究,同時(shí)也可以考慮融合知識圖譜的相關(guān)工作;由于對模型泛化性能的評估缺乏量化計(jì)算,依賴實(shí)驗(yàn)經(jīng)驗(yàn),模型的泛化能力量化評估的相關(guān)工作也需要進(jìn)一步研究。