趙 華,鄧志宏,陳英武
1.國防科技大學(xué) 系統(tǒng)工程學(xué)院,長沙 410073
2.國防大學(xué) 教育與訓(xùn)練部,北京 100091
當(dāng)今信息技術(shù)的迅猛發(fā)展,各大新聞媒體如騰訊、新浪和今日頭條等,每天都會產(chǎn)生大量關(guān)于熱點事件的新聞簡報。對于一般讀者來說,每天閱讀并消化大量新聞簡報變得越來越困難。傳統(tǒng)的搜索引擎能根據(jù)用戶輸入的關(guān)鍵詞從新聞?wù)Z料庫中進行檢索,查詢讀者感興趣的內(nèi)容。然而,引擎一般只返回一個排好順序的新聞報道列表,不提供熱點事件的結(jié)構(gòu)摘要,沒有為讀者提供一種人性化的方式來查看熱點事件的內(nèi)容。
當(dāng)前無需用戶預(yù)先指定查詢就能對新聞?wù)Z料庫進行可視化組織和呈現(xiàn)的方法主要有:Event Timelines[1-2]、Event Thread[3]、Event Evolution Graphs[4]、Information Maps[5-7]和Story Forest[8]。其中,Story Forest是首個能夠有效地將海量中文新聞文章構(gòu)建成較強邏輯性的故事結(jié)構(gòu)的系統(tǒng)。然而,經(jīng)過深入研究后,發(fā)現(xiàn)Story Forest有以下三個方面可以繼續(xù)加強和改進:
第一,在新聞文章預(yù)處理階段,Story Forest根據(jù)字數(shù)對文章進行過濾,這樣做對新聞簡報效果就沒那么好。例如,對于“孟晚舟未能獲釋,引渡案件將繼續(xù)審理。”或“華為將向聯(lián)發(fā)科購買更多的芯片。”這些字數(shù)極少的新聞簡報將會被濾掉,造成重要信息的丟失。另外,Story Forest是根據(jù)詞語特征(如:是不是命名實體或地理位置),結(jié)構(gòu)化特征(如:TF-IDF)以及語義特征來進行關(guān)鍵詞抽取,這樣做缺乏了對上下文語義的智能分析和理解,使得關(guān)鍵詞的抽取不夠準確。
第二,在新聞文章聚類和事件抽取階段,Story Forest利用關(guān)鍵詞構(gòu)建了關(guān)鍵詞圖。根據(jù)文獻[8]的結(jié)果表明,系統(tǒng)每天收集的文章數(shù)量平均為16 000余份,抽取的關(guān)鍵詞也會非常多。而Story Forest在構(gòu)建關(guān)鍵詞圖之前沒有對關(guān)鍵詞作進一步的處理,可能會導(dǎo)致關(guān)鍵詞圖的結(jié)構(gòu)異常復(fù)雜。另外,系統(tǒng)在第二階段進行聚類所用的SVM分類器,主要考慮的是新聞文章的內(nèi)容、標題以及首句的TF-IDF和TF向量之間的余弦相似度,同樣缺乏對上下文語義內(nèi)容的智能分析和理解。
第三,Story Forest之所以能夠明顯優(yōu)于以往技術(shù)的原因就是它利用了事件關(guān)鍵字集合和故事關(guān)鍵字集合之間的Jaccard相似系數(shù)來判別與新事件相關(guān)的演變結(jié)構(gòu),并綜合考慮事件間的兼容性、演變主線一致性和事件之間的時間間隔三方面的因素,實現(xiàn)了可視化即時新聞系統(tǒng)的實時更新。然而,這樣做仍然存在一定的問題,例如:新事件的關(guān)鍵字集合與已有演變結(jié)構(gòu)的關(guān)鍵字集合中的詞匯有時即使看起來并不相似,但如果描述的內(nèi)容與故事樹中的內(nèi)容相似,那么事件與故事樹也應(yīng)該是相關(guān)的。此時,使用關(guān)鍵字集合之間的Jaccard相似系數(shù)是難以進行準確判定的。因此,對于事件間的兼容性計算要做出相應(yīng)的改進,并且事件間的時間距離的計算方法也相對簡單,應(yīng)該進行更深入的研究使事件間連接強度的計算更加準確。
針對上述問題,構(gòu)建了事件演變軌跡模型 來將海量新聞簡報數(shù)據(jù)加工成前后邏輯一致的事件發(fā)展結(jié)構(gòu),模型是在Story Forest的基礎(chǔ)上進行改進得來的。主要工作有以下幾個方面:
(1)在預(yù)處理階段,事件演變軌跡模型用主題集群創(chuàng)建的步驟替代了Story Forest的新聞文檔過濾步驟,在分詞時使用了最新的Stanza工具,并在關(guān)鍵詞抽取中引入了預(yù)訓(xùn)練的BERTBASE[9]模型來替代原來的GBDT+LR。
(2)在構(gòu)建關(guān)鍵詞圖時,提出基于頻繁項集對關(guān)鍵詞價值進行分析來過濾關(guān)鍵詞。在第二階段抽取細粒度事件的過程中,再次引入預(yù)訓(xùn)練的BERTBASE替代SVM來判定兩個新聞簡報是否在討論同一個事件。
(3)在更新演變軌跡時,用BERTBASE模型替代Jacca‐rd相似系數(shù)來判別與新事件相關(guān)的演變軌跡,重新定義事件的形心文檔,提出了事件時間窗口距離計算方法,改進了事件間連接強度指標中的兼容性計算方法和時間懲罰函數(shù)。
(4)基于從中國所有主要互聯(lián)網(wǎng)新聞提供商(如騰訊、新浪和今日頭條)收集的約32 GB中文新聞簡報數(shù)據(jù),對模型進行評估。從2020年1月1日到2020年5月1日,為期四個月,涵蓋開放領(lǐng)域的多個主題。同時,還對新聞簡報聚類和事件演變結(jié)構(gòu)的生成進行了詳細而廣泛的用戶試點體驗研究,并與幾個基準方法對比出哪種更加符合一般讀者的習(xí)慣。根據(jù)用戶試點體驗研究,本文方法生成的事件演變軌跡的邏輯有效性,以及每個已識別事件和事件演變結(jié)構(gòu)的概念純度方面,都優(yōu)于KeyGraph[10]、Story Graph[4]和Story Forest等多個最先進的新聞聚類和事件演變結(jié)構(gòu)生成方法。
首先,在Story Forest的基礎(chǔ)上給出了自頂向下層次結(jié)構(gòu)中關(guān)鍵概念的定義:主題?事件演變軌跡?熱點事件?新聞簡報。
定義1(新聞簡報)是指以某個熱點事件為核心而觸發(fā)的新聞報道,時態(tài)是突發(fā)性或躍進性的。特點是言簡意賅、緊扣主題,篇幅長短不一以及寫作風(fēng)格各異。
定義2(熱點事件)是指在最近發(fā)生并具有重大影響力和極受關(guān)注的事件。熱點事件E表示一組報道相同事件的一篇或多篇新聞簡報。
定義3(事件演變軌跡)是指圍繞一個或多個特定的人物或命名實體,在特定的時間發(fā)生在特定地點的事件發(fā)展結(jié)構(gòu)圖。事件E1到E2的有向邊緣表示事件E1到E2的時間演變關(guān)系或邏輯連接關(guān)系。
定義4(主題)是指由一組高度相關(guān)或彼此相似的事件演變軌跡集合。
每個主題可能包含一條或多條事件演變軌跡,每條軌跡由多個熱點事件組成。將新聞簡報作為最小的原子單位。每篇簡報被認為只屬于一個事件,并且包含關(guān)于這個事件的部分或全部信息。
例如,關(guān)于“美國海軍羅斯福航母”這個主題,“羅斯福航母上出現(xiàn)新冠肺炎確診病例”就是這個主題中的一條事件演變軌跡,其中“羅斯福號航母上又有5名水兵新冠病毒檢測陽性”就是這條演變軌跡中的一個熱點事件。而“美國海軍的西奧多·羅斯福號航母上又出現(xiàn)了5名檢測結(jié)果為陽性的水兵。目前感染的8名船員中,已經(jīng)有4人被送往關(guān)島基地的醫(yī)院進行治療,其余4人也將被送下航母。”就是報道這個熱點事件的其中一篇新聞簡報。給定新聞簡報流D={D1,D2,…,Dt},其中Dt為t時段的簡報集合,目標是:
(1)將新聞簡報流D劃分為主題集群T={T1,T2,…,T|T|},其中每篇簡報被分配給一個主題集群Tj(1≤j≤|T|)。雖然將簡報只分配到一個主題似乎是一種限制,但是如定義1所述,當(dāng)每篇新聞簡報是對某個熱點事件進行描述時,這樣做是一種合理的解決方案。此外,其他關(guān)于主題建模的研究也證明了這種方法是有效的,特別是對于短文本[11]。
(2)使主題Tj中的新聞簡報集DTj(1≤j≤|T|)聚集成一組熱點事件集合ETj={E1,E2,…,E|ETj|}。
(3)將熱點事件連接起來構(gòu)成一個事件演變軌跡集合Tr={Tr1,Tr2,…,Tr|Tr|},每一條演變軌跡Tr=(E,L)包含一組事件E和一組連接L,其中Lij表示事件Ei到Ej的定向連接,表示時間演變關(guān)系或邏輯連接關(guān)系。
(4)要以在線或增量的方式提取熱點事件并構(gòu)建事件演變軌跡。也就是說,當(dāng)t時間段內(nèi)的新聞簡報集合Dt到達時,從集合中提取熱點事件,并將新的事件合并到t-1時間段前的現(xiàn)有演變軌跡中。
例 如:圖1表示 的 是2020年3月15日至4月10日“美國海軍羅斯福航母上出現(xiàn)新冠肺炎確診病例”的事件演變軌跡。這一事件演變軌跡包含17個節(jié)點,其中每個節(jié)點代表軌跡中的一個熱點事件,每條鏈接代表了事件之間的時間演變或邏輯關(guān)聯(lián)關(guān)系。每個節(jié)點上的序號表示時間軸上的序列。在這條軌跡中,主要有3條軌跡路徑,其中1?17描述了羅斯福航母上出現(xiàn)新冠肺炎確診病例的整體演變過程,2?15描述了確診病例人數(shù)的事件演變過程,9?17描述了關(guān)于羅斯福航母艦長的事件演變過程。顯然,通過將事件的發(fā)展和邏輯結(jié)構(gòu)建模成一個有向軌跡路徑圖,用戶可以很容易地快速獲取新聞的關(guān)鍵信息。
圖1 事件演變軌跡示例圖Fig.1 Example of event evolution trajectory
構(gòu)建事件演變軌跡模型的方法概述如圖2所示,主要是在Story Forest的基礎(chǔ)上改進得來的,由熱點事件智能檢測和事件演變軌跡實時構(gòu)建兩大部分組成,共分為5個步驟。首先,輸入的新聞簡報流將通過主題建模方法和各種NLP工具和模型進行處理,與Story Forest不同的是,模型在預(yù)處理階段主要包括的是新聞簡報的主題集群創(chuàng)建、分詞和關(guān)鍵詞提取等。步驟2、3提出一種三階段的方法將新聞簡報分組到熱點事件中。與Story Forest的兩階段聚類過程不同,對于每個時間段t的簡報語料庫Dt,模型會計算關(guān)鍵詞的頻繁項集,選取重要性高的關(guān)鍵詞來構(gòu)建關(guān)鍵詞圖[10],再通過社區(qū)檢測算法從關(guān)鍵詞圖中提取子圖作為子主題。其中,關(guān)鍵詞很少的子主題將被剔除。獲得子主題后,將找到與該子主題相關(guān)的所有新聞簡報,并通過一個能分析上下文語義的模型將簡報聚類成細粒度的熱點事件。該過程由一個預(yù)先訓(xùn)練好的新聞簡報對關(guān)系分類器輔助進行。在步驟4、5中,模型實時構(gòu)建和更新事件演變軌跡,方法是將每個新事件插入到現(xiàn)有軌跡中的正確位置,或者創(chuàng)建一條新的演變軌跡(前提是新事件不屬于任何現(xiàn)有軌跡)。與現(xiàn)有方法不同,判別與事件關(guān)聯(lián)的軌跡時,融入了上下文語義分析,改進了事件間連接強度的計算方法。以下章節(jié)將詳細闡述每個模塊的設(shè)計。
圖2 事件演變軌跡智能構(gòu)建方法的體系結(jié)構(gòu)概述Fig.2 Overview of architecture of intelligent construction methods for event trajectory
2.1.1 預(yù)處理
當(dāng)新的新聞簡報集輸入時,模型會創(chuàng)建簡報的主題集群,并提取對后續(xù)步驟有幫助的特性。模型的預(yù)處理模塊主要包括三個部分:
第一,使用LDA創(chuàng)建主題集群。應(yīng)用文獻[12]中描述的方法,將每一份簡報的標題解析為主題的分布向量θ,如果T=argmaxj(θj),則將該份新聞簡報分配給主題集群T,其中包含新聞簡報數(shù)量小于某一閾值n的主題以及屬于該主題下的簡報可以被過濾掉,這樣做既保留了真實的熱點主題,也能夠有效避免Story Forest中因字數(shù)太少而過濾掉的重要新聞信息。
第二,分詞。使用Stanza替代了Story Forest中的Stanford Chinese Word Segmenter Version 3.6.0[13]來對每個簡報的標題和正文進行了分割,對于中文新聞簡報,Stanza在分詞任務(wù)中取得了更好的效果。由于上述分詞工具都是開源的工具,感興趣的學(xué)者可在相應(yīng)的數(shù)據(jù)集上做測試,在此不對工具的性能作詳細地比較。
第三,關(guān)鍵詞提取。從每個新聞簡報中提取關(guān)鍵詞來表示簡報的主要內(nèi)容對于熱點事件智能檢測最終的性能和效率至關(guān)重要。傳統(tǒng)的關(guān)鍵詞提取方法對于真實世界的新聞簡報數(shù)據(jù)來說是不夠的[14]。Story Forest利用梯度增強決策樹(GBDT)與LR分類器相結(jié)合來判斷一個詞是否是關(guān)鍵詞,雖然克服了傳統(tǒng)方法的不足,但更多地還是根據(jù)詞語特征,結(jié)構(gòu)化特征以及語義特征來判別,始終缺乏對上下文語義的智能分析和理解。
為了更高效準確地提取關(guān)鍵詞,引入一個微調(diào)的BERTBASE模型和單層的神經(jīng)網(wǎng)絡(luò)來提取關(guān)鍵詞。BERT模型性能強悍,長期霸榜。對于BERTBASE,只需一個額外的輸出層,就可以對預(yù)訓(xùn)練的BERTBASE模型進行優(yōu)化,從而為各種任務(wù)創(chuàng)建最先進的模型,并且在面對特定任務(wù)的情況下無需對模型的體系結(jié)構(gòu)進行大量修改。因此,手工標注了8 000多新聞簡報的關(guān)鍵詞,包括17 000多正關(guān)鍵詞樣本和26 000多負關(guān)鍵詞樣本。表1列出了關(guān)鍵詞標注時主要關(guān)注的重點特性,當(dāng)然,更多的是基于專業(yè)知識的判別。
表1 分類器提取關(guān)鍵字的特征Table 1 Features for classifier to extract keywords
BERTBASE模型的功能是判斷候選詞語wi是不是新聞簡報d的關(guān)鍵詞。如圖3所示,模型將新聞簡報作為句子A輸入,將候選關(guān)鍵詞語作為句子B輸入,簡報與候選詞之間用標記([SEP])分隔。BERTBASE模型輸入的最大序列長度為512。因此,將BERTBASE模型應(yīng)用于關(guān)鍵詞判定,會面臨如何處理新聞簡報和候選詞總長度大于510的問題。一般情況下,新聞簡報的關(guān)鍵信息在開頭和結(jié)尾。因此,模型在確保候選詞完整的前提下,截斷了新聞簡報,使簡報、候選詞和分隔符的連接最大長度為512。設(shè)候選詞占用wn個字符,則截取簡報的前2(510-wn)/3個和后(510-wn)/3個字符作為輸入(包括標點符號)。通過使用BERTBASE模型作為二分類模型,將模型中的第一個輸入標記([CLS])對應(yīng)的最終隱藏向量C∈RH作為單層神經(jīng)網(wǎng)絡(luò)的輸入來獲取關(guān)鍵詞的識別結(jié)果。對于BERTBASE模型的預(yù)訓(xùn)練,使用交叉熵損失L將其微調(diào)到關(guān)鍵詞提取任務(wù):
圖3 新聞簡報關(guān)鍵詞判別模型示意圖Fig.3 Keyword discrimination model for news bulletin
其中,Ipos為手工標注的第i篇新聞簡報的關(guān)鍵詞集,Ineg為手工標注的第i篇新聞簡報的非關(guān)鍵詞集。嘗試用GBDT+LR作為分類器,并觀察兩者性能的對比。最終的關(guān)鍵詞提取精度和召回率分別為0.90和0.85,如果用GBDT+LR,則分別為0.84和0.78。
2.1.2 新聞簡報集群與熱點事件抽取
新聞簡報預(yù)處理結(jié)束后,下一步是提取熱點事件。與Story Forest類似,這里所說的熱點事件提取本質(zhì)上是一個經(jīng)過微調(diào)的新聞簡報聚類過程,用于將主要內(nèi)容和關(guān)鍵點上類似的簡報分組到事件中。針對海量新聞簡報聚類的高準確率要求,在新聞簡報的二階段聚類之前,提出了一種基于頻繁項集的關(guān)鍵詞圖構(gòu)建方法。將兩階段方法改進為三階段方法。
首先,模型按時間對新聞簡報流進行排序,并將其劃分為固定大小的時間段(例如:24 h)。將每個時間段中最常見和重要的關(guān)鍵詞(例如:重要性排名前10%)保留為事件特征。需要說明的是,這些是可變長度的單詞序列(例如:“唐納德·特朗普”“新型冠狀病毒”“口罩”),如果某些關(guān)鍵詞在時間段中非常頻繁且重要,那么,就使用它們來對熱點事件進行語義描述。
然后,為準確獲得每個時間段中重要性高的關(guān)鍵詞,引入了基于頻繁項集的關(guān)鍵詞價值分析方法。具體算法和步驟可參考文獻[15],在此就不再贅述了。
根據(jù)選取出的關(guān)鍵詞,模型會構(gòu)建關(guān)鍵詞圖G,G中的每個節(jié)點表示選取出的關(guān)鍵詞w,每條無向邊eij表示wi和wj構(gòu)成了頻繁項集。接著,模型在關(guān)鍵詞圖中也利用邊緣的介數(shù)中心性評分[10]來度量圖中每條邊的強度來進行社區(qū)檢測。目的是將整個關(guān)鍵詞圖G分成C={C1,C2,…,C|C|},其中每個社區(qū)Ci包含了熱點事件的關(guān)鍵詞。還嘗試了另一種基于Bi-LSTM+GloVe的關(guān)鍵詞聚類方法。但是,與基于關(guān)鍵詞頻繁項集的社區(qū)檢測相比,其性能不夠理想。原因主要是使用Bi-LSTM+GloVe,往往會把語義相近的詞聚在一起。然而,與專業(yè)領(lǐng)域的文章不同,在海量的中文新聞簡報中,具有不同語義含義的關(guān)鍵詞很可能在同一熱點事件中同時出現(xiàn)。
獲得關(guān)鍵詞社區(qū)后,模型將計算每個新聞簡報與每個關(guān)鍵詞社區(qū)之間的余弦相似性。利用BERT-flow模型[16]將簡報轉(zhuǎn)換為向量表示。由于關(guān)鍵詞社區(qū)是一個詞袋,可以看作是一篇新聞文章。將每篇簡報分配給相似度最高的關(guān)鍵詞社區(qū)。需要注意的是,這里所說的最高相似度必須高于一個預(yù)定義的閾值n1。否則,該簡報應(yīng)該被剔除,因為它的內(nèi)容與熱點事件無關(guān)。至此,已經(jīng)完成了第一階段的新聞簡報聚類,即這些新聞簡報是根據(jù)篩選后的關(guān)鍵詞社區(qū)進行聚類的。
模型接著在每個關(guān)鍵詞社區(qū)中進行第二階段的新聞簡報聚類來獲得細粒度的事件。這個過程稱為熱點事件抽取。事件只包含描述該事件內(nèi)容且語義相近的新聞簡報。為了產(chǎn)生更細粒度的事件,用Story Forest中的SVM作為分類器是不夠的,因此采用BERTBASE模型來對該階段的新聞簡報聚類進行引導(dǎo)。具體來說,就是從一個預(yù)先訓(xùn)練好的BERTBASE模型開始訓(xùn)練,將其微調(diào)為確定一對新聞簡報是否在討論相同的熱點事件的任務(wù)。首先,假設(shè)第i個關(guān)鍵詞社區(qū)包含v個新聞簡報的集合,Di={d1,d2,…,dv},在該集合中有總數(shù)為t個事件的集合E={e1,e2,…,et},滿足下列條件:
第一個條件表示任意事件ej都是新聞簡報集合D的冪集且不為空集。第二個條件確保事件不重疊。第三個條件表示每個新聞簡報肯定屬于事件集合E中的某個事件。
其次,手工標注了10 000多個新聞簡報,包括8 800多個描述同一事件的新聞簡報對樣本和9 700多個描述不同事件的新聞簡報對樣本。在手工標注新聞簡報對時主要關(guān)注的重點包括新聞簡報內(nèi)容的相似度、簡報標題相似度、兩個簡報中首句的內(nèi)容相似度以及簡報發(fā)布時間接近程度等。
與上文使用BERTBASE模型的方法類似,模型的任務(wù)是獲得新聞簡報i和新聞簡報j在描述同一事件的內(nèi)容相似程度Sij(Sij=Sji)。將簡報對分別作為句子A和句子B輸入到模型中。為了保證不超過BERTBASE模型輸入的最大序列長度512,選擇每個新聞簡報的前128個和后127個字符作為輸入。同樣的,使用[CLS]向量作為單層神經(jīng)網(wǎng)絡(luò)的輸入,表示簡報描述同一事件的內(nèi)容相似程度。也是從一個預(yù)先訓(xùn)練好的BERTBASE模型開始訓(xùn)練,并使用交叉 熵損失將其微調(diào)到判斷簡報對是否描述同一事件的任務(wù)中:
其中Dpos為數(shù)據(jù)集中描述同一事件的新聞簡報對集合,Dneg為數(shù)據(jù)集中描述不同事件的新聞簡報對集合。
對于關(guān)鍵詞社區(qū)中的每一對新聞簡報,根據(jù)上述模型得出的預(yù)測結(jié)果來決定是否連接它們。因此,社區(qū)中的簡報也將形成一幅圖。模型應(yīng)用前文的社區(qū)檢測算法分割新聞簡報圖。顯然,第二階段的基于圖的聚類會比Story Forest更加高效的,因為在第二階段新聞簡報聚類之前,進行了主題集群和關(guān)鍵詞的篩選,因此,每個關(guān)鍵詞社區(qū)中包含的簡報數(shù)量要少得多并且概念和內(nèi)容更一致。
綜上所述,提出的基于關(guān)鍵詞頻繁項集和BERT的聚類方法,首先基于關(guān)鍵詞的頻繁項集將新聞簡報分組到關(guān)鍵詞社區(qū),然后利用微調(diào)的BERTBASE模型分兩階段將每個社區(qū)中的新聞簡報分組為細粒度的熱點事件。對于每一個熱點事件E,還利用BERT-flow模型生成事件中所有的新聞簡報的聯(lián)合詞嵌入VE,并記錄它所屬的關(guān)鍵詞社區(qū)的關(guān)鍵詞集合WE,這將利于后續(xù)事件演變軌跡的實時生成。
從前文可得,每個關(guān)鍵詞社區(qū)可以看作是一個子主題。給定每個社區(qū)中提取的熱點事件集,以實時在線的方式將這些事件組織到多條事件演變軌跡中。每個熱點事件發(fā)展的過程都由一個演變軌跡有向圖表示,用于描述事件的發(fā)展過程。當(dāng)一個新事件到來并給定一個已有的演變軌跡時,算法主要包括兩個步驟:一是識別事件所屬的演變軌跡;二是通過將新事件插入到正確的位置來更新演變軌跡。如果這個事件不屬于任何現(xiàn)有的演變軌跡,算法將創(chuàng)建一個新事件的演變軌跡。
2.2.1 確定相關(guān)的事件演變軌跡
給定一組在t時段新的熱點事件Et={e1,e2,…,e|Et|},和一個現(xiàn)有的在之前的t-1時間段內(nèi)形成的事件演變軌跡集合Ft-1={P1,P2,…,P|Ft-1|}。模型的目標是將每個新的熱點事件E∈Et分配給現(xiàn)有的事件演變軌跡P∈Ft-1。如果軌跡集合中沒有匹配該事件的軌跡,那么將創(chuàng)建一條新的演變軌跡并將其添加到軌跡集合中。與現(xiàn)有方法不同,雖然也應(yīng)用一個兩步策略來決定一個新事件E是否屬于已有的事件演變軌跡P。但是,正如2.1.2小節(jié)提到的是,事件E有自己的關(guān)鍵詞集WE,也有自己的詞嵌入VE。類似地,對于現(xiàn)有的事件演變軌跡P,有一個相關(guān)聯(lián)的關(guān)鍵詞集Cp,它是該軌跡中所有事件關(guān)鍵詞集的并集,因此,利用BERT-flow模型生成事件演變軌跡的詞嵌入Vp。
因此,利用VE和Vp計算熱點事件E與事件演變軌跡P之間的余弦相似度,即cos(VE,Vp),從而替代了Story Forest的Jaccard相似系數(shù)。如果余弦相似度大于某一個閥值nc,將進一步檢測事件E的關(guān)鍵字集與事件演變軌跡P的關(guān)鍵字集是否共享超過60%的關(guān)鍵詞。如果兩個條件都滿足,就將事件E分配給演變軌跡P。否則,就認為事件與演變軌跡無關(guān)。如果事件E不屬于任何一條軌跡P,那么模型將以事件E為初始事件節(jié)點創(chuàng)建一條新事件演變軌跡。需要強調(diào)的是,共享關(guān)鍵詞的百分比與余弦相似度的閾值可根據(jù)實際情況靈活設(shè)置。當(dāng)想識別出更多新事件的演變軌跡,可以將參數(shù)值設(shè)置高一些,反之則低一些。
2.2.2 更新事件演變軌跡
在確定了新事件E的相關(guān)演變軌跡P之后,將執(zhí)行三種操作中的一種來將事件E更新到演變軌跡中:事件融合、事件擴展和事件演變軌跡新建。事件融合將新事件E合并到演變軌跡中的現(xiàn)有事件節(jié)點中。事件擴展是把事件E作為子節(jié)點連接到軌跡中的現(xiàn)有事件節(jié)點。最后,事件演變軌跡新建是指將事件E作為新的演變軌跡Pnew的根節(jié)點。模型會根據(jù)以下步驟選擇最恰當(dāng)?shù)牟僮鱽硖幚硇率录?/p>
事件融合:如果新事件E與演變軌跡中的已有事件節(jié)點描述的是同一個事件,那么就將新事件E融合到已有事件節(jié)點當(dāng)中去。利用2.1.2小節(jié)的BERTBASE模型來識別兩個事件的形心新聞簡報是否在描述同一事件。本文中,事件的形心新聞簡報是指在熱點事件中連接簡報數(shù)量最多,并且該簡報包含事件關(guān)鍵詞集中的關(guān)鍵詞數(shù)量最多。這與Story Forest定義的形心文檔不同,因為在實際情況中,事件中不一定會出現(xiàn)與所有其他新聞簡報都有連接關(guān)系的新聞簡報。
事件擴展:如果新事件E不與任何現(xiàn)有事件相融合,模型將在事件演變軌跡P中找到其父事件節(jié)點,并把它加入到軌跡P中。算法根據(jù)三個因素計算新事件E與每個現(xiàn)有事件Ej∈P之間的連接強度:一是E與Ej之間的時間距離;二是兩個事件之間的相容性;三是如果將E連接到軌跡中的Ej,能否保證事件演變軌跡的邏輯一致性。新事件E與每個事件Ej∈P之間的連接強度定義為:
兩個事件Ei和Ej之間的兼容性表示為:
其中,dCi為事件Ei的形心新聞簡報。此外,將Ej的事件演變軌跡定義為P中從根節(jié)點R開始至Ej本身結(jié)束的路徑PR?Ej。同樣,添加到Ej的E的事件演變軌跡用PR?Ej?Enew表示。對于由路徑E0?…?E|P|表示的演變軌跡P,其中E0:=R,其一致性衡量的是事件發(fā)展過程的主題一致性[7],定義為:
最后,事件Ei到事件Ej的事件演變關(guān)系在時間上應(yīng)該遵循兩個條件:一是事件i必須在時間上先于事件j;二是事件之間的時間間隔越大,它們之間發(fā)生事件演變關(guān)系的可能性就越小。為了更準確地定義時間窗口間的距離,定義了事件之間的時間先后關(guān)系,如表2所示。
根據(jù)表2所示的7種關(guān)系,假設(shè)事件i的時間窗口為Ti=[tsi,tei],事件j時間窗口為Tj=[tsj,tej],這兩個時間窗口的距離可定義為:
表2 事件間的時間關(guān)系Table 2 Temporal relationships between events
另外,使用時間接近度來度量兩個事件之間的相對時間距離,定義衰減函數(shù)為:
定義Ej與E的時間懲罰函數(shù)為:
其中,TEj和TE分別是事件Ej和事件E的時間窗口。用式(7)來計算新事件E和每一個事件節(jié)點Ej之間的連接強度,并將事件E連接到最大連接強度的Ej中。如果最大連接強度低于閾值,則將E作為根節(jié)點新建一條事件演變軌跡,換句話說,新建事件演變軌跡是一種特殊的事件擴展。
從中國主要互聯(lián)網(wǎng)新聞提供商(騰訊、新浪和今日頭條)收集約32 GB中文新聞簡報數(shù)據(jù),采用與Story Forest相類似的方法進行評估,從2020年1月3日到2020年5月5日,為期四個月,涵蓋不同的主題,平均每天的簡報數(shù)量為78 286份。在以下的實驗中,使用的是前14天的數(shù)據(jù)進行參數(shù)微調(diào),其余的數(shù)據(jù)作為測試集。
首先,評估用于熱點事件提取的基于關(guān)鍵詞頻繁項集和BERT的新聞簡報聚類過程的性能。手動為一個包含4 600個帶有真實事件標簽的新聞簡報的測試數(shù)據(jù)集添加了注釋,并將算法與LDA+AP[17]、KeyGraph[10]和Story Forest進行了比較,如表3所示。
表3 事件聚類方法的比較結(jié)果Table 3 Comparison results of event clustering methods
由表3可知,與其他方法相比,本文的方法獲得了最好的V-measure[18]值,部分原因是該方法獲得了最高的Homogeneity得分,為0.968。這意味著提取的大部分熱點事件都是高純度的:每個事件只包含談?wù)撏皇录男侣労唸?。相比之下,LDA+AP和KeyGraph的Homogeneity得分要低得多。原因是采用了基于關(guān)鍵詞頻繁項集和BERT的聚類方法來將新聞簡報分組為具有更合適粒度的熱點事件。另外,Story Forest雖然也有較高的Homogeneity得分,但與當(dāng)前方法相比,它缺少了預(yù)處理階段的主題集群、關(guān)鍵詞提取過程中對上下文語義結(jié)構(gòu)的智能分析,以及關(guān)鍵詞的過濾。
但是,Completeness比KeyGraph稍小一些,這是因為在使用BERTBASE進行監(jiān)督的第二階段基于簡報圖來抽取熱點事件??紤]到Homogeneity的顯著提高,Com‐pleteness的損失是可以忽略的。
通過試點用戶評估,評估了新聞數(shù)據(jù)集中不同的事件時間線和事件演變軌跡的生成算法。為了進行公平的比較,所有方法在生成演變結(jié)構(gòu)之前都采用相同的預(yù)處理和事件提取過程,從數(shù)據(jù)集中檢測到146條事件演變軌跡。唯一的區(qū)別是如何構(gòu)造給定一組熱點事件節(jié)點的事件演變結(jié)構(gòu)。本文的方法與現(xiàn)有的Flat Cluster[19]、Story Timeline[9]、Story Graph[4]、Event Thread[3]以及Sto‐ry Forest進行比較。
首先,邀請了15名專家人員,包括新聞工作者、工科研究生導(dǎo)師和資深新聞讀者,對不同方法給出了盲評的結(jié)果。每一篇文章都由5位不同的評估人員進行評估。當(dāng)評估人的意見不同時,他們會討論并給出最終的結(jié)果。評估人針對不同方案產(chǎn)生的5種不同結(jié)構(gòu)分別回答了文獻[8]中的5個問題:
(1)在每條事件演變軌跡中所有的新聞簡報都與這條演變軌跡密切相關(guān)嗎(是或否)?如果是的話,繼續(xù)下一步。
(2)在每個事件節(jié)點上所有的新聞簡報都真正描述相同的事件(是或否)?如果是的話,繼續(xù)下去。
(3)對于不同的算法給出的每個事件演變結(jié)構(gòu),有多少條邊正確表示了事件之間的連接?
(4)對于Event Evolution Trajectory、Story Forest、Event Thread和Story Timeline給出的事件演變結(jié)構(gòu),從根節(jié)點到任何子節(jié)點有多少條路徑存在于圖中?有多少這樣的路徑在邏輯上是連貫的?
(5)哪一種算法生成了最好的事件邏輯結(jié)構(gòu)?
對于問題(3),為了保證評估的公平性,采用只保留n個最高的分數(shù),其中n是代表圖中事件的數(shù)量。
實驗證明,在146條事件演變軌跡中,133條事件演變軌跡是純演變軌跡(對問題(1)的回答“是”),還有125條事件演變軌跡只包含純的事件節(jié)點(對問題(2)的回答“是”),因此,提取事件的最終精度(對問題(1)和(2)都回答“是”)為87.4%。
接下來,從三方面比較了不同算法輸出的事件演變結(jié)構(gòu):事件之間的正確邊緣,路徑的邏輯一致性,以及不同事件演變結(jié)構(gòu)的整體可讀性。圖4顯示的是不同算法的錯誤邊緣百分比的CDFs比較結(jié)果。正如所看到的,事件演變軌跡明顯優(yōu)于其他5種基線方法。如表4所示,對于62%的事件演變軌跡,每條軌跡的所有邊緣都被認為是正確的,所有事件演變軌跡正確邊的平均百分比為86.8%,Story Forest的為82.3%。相比之下,故事圖算法給出的平均正確邊百分比僅為42.4%。
圖4 錯誤邊緣的百分比Fig.4 Percentage of incorrect edges
表4 事件演變結(jié)構(gòu)生成算法的比較結(jié)果Table 4 Comparison results of event evolution structure generation algorithms
Event Evolution Trajectory綜合考慮了新聞簡報的上下文語意內(nèi)容,保留了字數(shù)少但內(nèi)容重要的新聞簡報,增加了關(guān)鍵詞特征的篩選、深入準確地定義了事件相關(guān)性、路徑相關(guān)性和時間間隔,給出了比其他算法更好的結(jié)果,而其他算法只考慮了上述因素的一部分。
對于路徑相關(guān)性,圖5顯示的是不同算法下不一致路徑百分比的CDFs比較結(jié)果。事件演變軌跡提供了更多的連貫路徑:提出的算法中,連貫路徑的平均百分比為82.3%,Story Forest、Event Threading和Story Timeline的平均百分比分別為78.5%、52.1%和31.6%。需要說明的是,對于平面或圖形結(jié)構(gòu),路徑相關(guān)性是沒有意義的。
圖5 不一致路徑的百分比Fig.5 Percentage of inconsistent paths
圖6顯示的是不同演變結(jié)構(gòu)的整體可讀性。在133條事件演變軌跡中,116條事件演變軌跡的可讀性最好,這比其他所有方法都要好得多。不同的算法可以生成相同的結(jié)構(gòu)。例如,事件演變軌跡可以生成故事森林、平面結(jié)構(gòu)、時間軸或與事件線程算法相同的結(jié)構(gòu)。因此,不同方法給出的最佳結(jié)果的個數(shù)之和大于133。值得注意的是,Story Forest、Flat和Timeline算法也給出了112、77和45個最易讀的結(jié)果,與文獻[8]提到實驗結(jié)果類似,這再次表明,現(xiàn)實世界中大部分 新聞簡報描述的事件演變邏輯結(jié)構(gòu)可以用簡單的平面或時間軸結(jié)構(gòu)來描述,復(fù)雜的圖形通常是不必要的。
圖6 被評為最易讀結(jié)構(gòu)的次數(shù)Fig.6 Number of times rated as most readable structure
進一步考察了事件演變軌跡生成的圖結(jié)構(gòu)。盡管樹形結(jié)構(gòu)的事件演變軌跡包含了平面結(jié)構(gòu)和時間軸結(jié)構(gòu),但是在146個事件演變過程中,事件演變軌跡生成了56個平面結(jié)構(gòu)和15個時間軸結(jié)構(gòu),而剩下的75個結(jié)構(gòu)仍然是樹形結(jié)構(gòu),如圖7所示。雖然這與Story Forest的結(jié)構(gòu)類似,但事件演變軌跡更加強悍,可以稱之為Story Forest的加強版,能夠為真實世界的熱點事件演變生成更多不同的結(jié)構(gòu),當(dāng)然,這也取決于事件演變的邏輯復(fù)雜性。
圖7 不同表示結(jié)構(gòu)的數(shù)量Fig.7 Numbers of different story structures
本文描述了在Story Forest基礎(chǔ)上改進得來的新聞簡報內(nèi)容組織模型Event Evolution Trajectory,該模型可以從海量的熱門話題和熱點新聞中發(fā)現(xiàn)熱點事件,并以合理的事件演變軌跡實時組織并呈現(xiàn)事件的演變過程。本文的模型是專門為快速處理海量新聞簡報數(shù)據(jù)而設(shè)計的,這些數(shù)據(jù)的結(jié)構(gòu)最終以樹形、平面結(jié)構(gòu)或時間軸的結(jié)構(gòu)呈現(xiàn)。提出了一種基于關(guān)鍵詞頻繁項集和BERT的新聞簡報聚類算法,可以從海量新聞簡報中提取細粒度的事件。每當(dāng)新的簡報數(shù)據(jù)到來后,本文的模型能將事件進一步組織到事件演變軌跡中。以32 GB的中文新聞數(shù)據(jù)為基礎(chǔ)進行了詳細的試點用戶體驗研究。另外,提出的模型不局限于某種語言,可以方便地擴展到其他語言。廣泛的研究結(jié)果表明,本文的聚類過程比現(xiàn)有的算法更有效。通過將事件演變軌跡的結(jié)構(gòu)與更復(fù)雜的故事圖和Story Forest等相比,證明了該系統(tǒng)生成的事件演變結(jié)構(gòu)對廣大讀者更具有吸引力。