趙旭劍,王崇偉
(西南科技大學計算機科學與技術學院,四川綿陽 621010)
互聯網時代,Web信息的爆炸式增長以及迅速的更新,使得人們很難全面、準確、及時地從中獲取事件的故事線演化脈絡。作為社交網絡的代表,微博為發現新聞事件及其演變提供了有價值的數據。但如何對這些零碎的數據進行深度挖掘和分析,形成能準確描述事件演化的故事線,已經成為網絡用戶的急切需求。此外,故事線抽取結果所描述的事件演化與新聞事件的大眾輿論緊密關聯,因此,故事線抽取對網絡輿情研究同樣具有重要意義。
目前故事線生成的相關研究工作以考慮事件的顯式關聯關系為基礎,利用相似性將事件鏈接以構建故事線。傳統相似性計算方法是鏈接事件的基礎,例如Liu等[1]提出故事森林(Story Forest),利用事件關鍵詞的Jaccard 相似系數鏈接事件并生成故事線,此外互信息[2]和余弦相似度[3]也是常用的相似性度量方法。研究人員也常常利用相似性把事件建模為圖結構,將故事線抽取轉化為圖中樹生成問題,常見有最大生成樹[4]和斯坦納樹[5]等樹生成算法構建故事線。但這兩類方法都依賴豐富的事件語義信息,而這是目前微博數據所缺乏的,盡管有研究人員基于微博特征擴展,例如訓練微博向量[6]。為解決這一問題,貝葉斯模型被使用來建立事件間的隱式關系,如Hua 等[7]將貝葉斯模型引入到故事線生成中,將故事線建模為包括故事線、事件和主題的三層結構;但貝葉斯模型參數推斷復雜,時間復雜度較高。
總之,目前從微博中抽取故事線存在兩個挑戰性的問題:1)如何提取微博中的首要事件?,F有的大部分故事線抽取工作忽略了提取首要事件的過程,基于圖的算法把首要事件提取轉化為圖中關鍵節點提取,但也忽略了事件原本特征。2)如何學習事件關聯關系并構建故事分支。事件相似度計算依賴豐富的事件信息,貝葉斯模型雖然一定程度上能學習事件隱式關系,但也帶來了較高的時間復雜度。
針對以上問題,本文提出了一種從微博自動抽取故事線的方法,該方法通過挖掘微博事件影響力抽取首要事件,利用圖結構建模事件關系,并設計一種改進的圖卷積網絡(Graph Convolutional Network,GCN)學習事件關系,最后鏈接事件并構建故事線。本文的主要工作如下:
1)提出了基于微博傳播影響力的事件抽取模型。定義微博事件重要性元素,將事件重要性建模為微博的傳播影響力,在此基礎上抽取構建故事線的首要事件。
2)提出了一種異構圖結構來建模事件關系。與考慮通過相似性關聯建立事件關系的方法不同,本文對事件、關鍵詞分別定義對象節點,并采用點互信息、詞頻-逆文本頻率(Term Frequency-Inverse Document Frequency,TF-IDF)以及時間老化模型分別對節點間的關系進行建模。
3)提出了一種事件圖卷積網絡(Event GCN,E-GCN)模型,用于學習事件之間的隱式語義關系,以鏈接事件并預測事件的故事分支。此外,設計了一種基于差異度的方法來解決圖卷積網絡需要少量標簽節點初始化的問題,避免人為構建標簽對故事線抽取的干擾。
自互聯網興起,故事線挖掘成為Web 數據挖掘領域的一個研究熱點。Makkonen等[8]最早把故事線挖掘視為話題檢測與追蹤的子課題,用圖結構表示故事線及其事件演化關系,后來Nallapati 等[9]提出了事件線索(Event Threading),為后來故事線自動抽取研究奠定了理論基礎。總的來說,目前故事線抽取工作在新聞網站和社交網絡上均有廣泛影響力。
社交網絡興起前,故事線抽取工作多數基于新聞文檔,并且存在一些與故事線生成相關的會議和研討會。例如,新聞媒體中故事線挖掘的系統研究可以追溯到文本檢索會議(Text REtrieval Conference,TREC)。TREC 2013 要求研究人員從網絡新聞語料庫中提取事件時間軸,這是故事線生成的早期思想。隨后,其他一些會議也舉行了類似的評估任務,如2017 年由計算語言學協會主辦的“新聞中的事件與故事”研討會。此外,還有一部分相對獨立的研究,根據方法不同可分為三類:聚類、貝葉斯模型和基于圖的方法。
聚類算法將不同的故事分支視為不同的簇。研究人員提出一些事件操作來構建故事線,例如Liu 等[1]提出“故事森林”將數據流聚類成事件,并基于聚類的思想提出合并、擴展、插入三種事件操作將事件鏈接在故事線上。類似還有Laban 等[10]提出的鏈接、分裂、合并三種事件操作。然而,基于聚類算法構建故事線依賴于明確的語義信息,需要豐富的事件內容。
貝葉斯模型將故事線建模為事件特征的聯合分布,通過參數推斷得到事件的故事分支。與聚類算法相比,貝葉斯模型不考慮顯式語義信息來生成故事線。例如佘玉軒等[11]將貝葉斯模型引入到故事線抽取中,將故事線建模為日期、時間、機構、人物、地點、主題以及關鍵詞的聯合分布。而Zhou 等[12]對事件命名實體進行細粒度劃分,將故事線建模為命名實體和主題的聯合分布,推導出每個事件所屬的故事分支。然而,貝葉斯模型在推導參數時需要較高的時間復雜度。
基于圖的方法將事件的語義特征與時序特性結合,把事件建模為圖結構,根據圖算法生成故事線,主要步驟為:1)通過相似度關系將事件建模為圖結構;2)選擇重要節點作為代表事件;3)通過生成樹算法從圖中生成故事線。例如Wang等[13]基于最小權重支配集選取代表性事件,利用有向斯坦納樹生成故事線。而Yuan 等[5]則是基于度和聚類系數選取代表性事件。然而,最小權重支配集和斯坦納樹均為NP-hard問題,即基于圖的方法也需要較高的計算代價。
微博媒體的興起掀起了社交網絡文本挖掘的熱潮。傳統基于新聞文檔的故事線抽取研究依賴新聞文檔中豐富的文本內容來計算事件之間的相似關系,然而微博數據往往內容稀疏、表達隱含且缺乏上下文,對基于文本相似度度量的故事線抽取方法具有較大挑戰。因此,研究人員針對社交網絡的屬性做了更多的擴展。
為了解決數據稀疏問題,Hawwash 等[6]把微博訓練成事件向量,通過對事件進行聚類以生成故事線。Cai等[14]提出四種事件操作來捕獲事件隨時間的演化模式,并提出一種事件索引結構來解決大規模事件更新問題?!皹撕灐笔巧缃痪W絡中最顯著的特征,因此Hua 等[7]基于微博“標簽”來識別故事線、事件類型和主題間的關系,并將貝葉斯模型引入到故事線生成中,將故事線建模為包括故事線、事件和主題的三層結構。
雖然基于圖的算法在目前生成故事線中應用最廣泛,但圖算法是NP-hard問題,且社交網絡中的數據規模遠大于新聞數據,所以面向社交網絡的故事線抽取研究也面臨挑戰。為了解決該問題,Lin 等[15]提出了一種動態偽相關反饋語言模型,在給定事件查詢的情況下檢索相關帖子,降低事件冗余度,通過最小權支配集和有向斯坦納樹生成故事情節。而李培等[16]則利用Top-K優化支配集算法,并利用時間窗口降低斯坦納樹算法的復雜度。此外,李瑩瑩等[4]把事件的演化表示為一個有向無環圖,在圖中識別弱連通分量形成弱連通分量集合,為每一個弱連通分量構造一個最大生成樹得到故事線。
綜上所述,由于社交網絡數據存在內容稀疏、規模龐大和缺乏上下文等特點,傳統基于新聞文檔的故事線自動抽取研究較難直接應用于社交網絡。目前,基于社交網絡的故事線抽取研究相較傳統基于新聞網站的抽取方法進行了一系列改進,包括訓練微博向量、利用微博“標簽”、應用時間窗口等,但仍舊存在局限性,特別是未能較好解決首要事件抽取與故事分支構建兩個關鍵問題。
定義1事件,指在特定時間和地點內發生的,有一個或多個對象參與,由一個或多個動作組成的事情。定義為E=,其中C是事件文本,TC是事件發生時間。
定義2首要事件,指事件演化過程中最具代表性的事件,是組成故事分支與故事線的基本事件單位。定義為Ep∈E。
定義3故事分支,指由多個相同主題的事件構成,并用事件關系串聯起來的一條事件時間軸。定義為Branch=Event_set,TS,其中Event_set是組成故事分支的事件集合,TS是故事分支的時間段。
定義4故事線,是由一條或多條相關聯的故事分支構成的表示事件間演化關系的樹狀結構。定義為Storyline=Branch_set,link,其中Branch_set是故事分支集合,link表示事件間的鏈接關系。
例如圖1 展示了“長春長生疫苗事件”的部分故事線。圖中,節點表示事件,深色節點為過渡節點,有向邊表示事件的演化關系,節點序號表示時間維度上事件的演化順序。圖2展示了三條故事分支,故事分支1 討論與“國家藥品監督管理局”相關事件,故事分支2 討論“朋友圈中民眾反應”,故事分支3 討論“疫苗管理法的實施過程”。通過建模事件演化構建故事線,用戶能夠輕松從中獲悉社會事件的演化過程。

圖1 “長春長生疫苗事件”部分故事線Fig.1 Part storyline of“Changchun Changsheng vaccine incident”

圖2 故事分支示例Fig.2 Examples of story branch
微博新聞故事線抽取研究主要包括事件提取和故事線抽取兩個主要模塊。圖3 展示了框架組件。首先,通過一系列機器學習方法對原始微博數據進行預處理,主要包括微博切分、時間表達規范化和冗余過濾;然后,基于微博事件的傳播度對事件排序,提取首要事件;接著,使用異構圖來建模事件之間關系,同時,為了識別初始故事分支,提出了一種基于差異度的方法;最后,利用事件圖卷積網絡來生成故事線。

圖3 框架組件Fig.3 Framework components
事件提取旨在對微博進行數據清洗,并從微博中提取首要事件。首先,對微博進行預處理,包括微博切分、時間表達式規范化和冗余過濾三個步驟,得到粗粒度的事件集合;然后,基于微博的傳播特性對微博事件進行排序篩選,基于事件的傳播度排名提取首要事件。
預處理的具體操作如下:
1)微博切分。每一個完整的句子都能表示一種完整的語義信息,因此基于能表達句子結尾意思的標點符號對微博帖子進行切分,得到候選事件集合,然后考慮將每一個包含時間表達式的微博帖子視為一個事件,這些事件構成了故事線最初的事件集合。
2)時間表達式規范化。時間是事件的顯著特征,而事件中往往存在諸如“3 月24 日”“24 日”等不夠精確的模糊時間,以及“今天”“昨天”“本周五”等類似的隱式時間表達式。對于模糊時間,把微博的發布時間作為基準時間,采用一種順序匹配的方法將模糊時間規范化;對于隱式時間,基于規則匹配的方法進行規范化。
3)冗余過濾。由于微博的“社交”特性,轉發將導致大量的冗余微博,使得事件集合將存在大量冗余事件并且導致信息泛濫。本文提出使用兩層相似度對事件集合進行冗余過濾,分別是句子層面和事件集合層面。其中,句子層面的相似度由最長公共子串計算,可以有效去除由轉發帶來的重復微博。而事件集合層面的相似度通過TF-IDF 算法建立事件向量、然后計算事件向量的余弦相似性得到,能夠有效去除由相同事件帶來的重復微博。最后總體相似度計算式為:

其中:vei和vej分別是事件ei和ej的向量表示;di和dj分別是事件ei和ej的原始文本。
經過預處理得到初始事件集合,然而,故事線致力于直觀地展示事件隨時間的演化。因此,用于構建故事線的事件必須能全面地代表事件的演化信息。對于社交網絡而言,意見領袖對信息傳播的影響更大,因為微博中的意見領袖通常比普通用戶傳遞更多的關鍵信息。為此,意見領袖發布的微博更有可能是首要事件。
因此,提出使用微博的傳播度來衡量事件是否為故事線中的首要事件,并利用微博的發布者粉絲量以及轉發、評論和點贊的數量來量化事件的傳播影響力。如果一條微博由更具權威的用戶發布,并且擁有更多轉發、評論和點贊,即認為該微博包含了眾多用戶都能認可的基本信息。因此,與那些轉發、評論和點贊相對較少的微博相比,這條微博將更可能討論首要事件。具體來說,把微博的傳播度定義為四元組S=user_fansnum,forwardnum,commentnum,likenum,其中,user_fansnum指微博發布者粉絲數,forwardnum指微博轉發量,commentnum指微博評論量,likenum指微博點贊量。事件的重要性得分計算式為:

其中,wi為S不同元素的權重值。由式(2)計算出事件的重要性得分后,依據得分對事件進行排序,刪除排名靠后的事件,選取排名靠前的事件作為故事線抽取階段的輸入。
故事線抽取主要分為三個步驟實現,即異構事件圖構建、初始故事分支構建和事件圖卷積網絡(E-GCN)。首先,利用語義關系和事件的時間老化關系將事件及其特征詞建模為異構圖;然后,提出一種基于差異度的方法構建初始故事分支;最后,利用E-GCN模型識別故事分支并構建故事線。
圖卷積網絡(GCN)[17]是一種對圖進行操作并完成圖半監督學習的神經網絡?;贕CN 模型,本文提出了一種事件圖卷積網絡(E-GCN)模型用于學習事件間的隱式語義關系。由于圖可以表示復雜的節點關系,因此考慮基于事件特征把事件建模為異構事件圖??紤]到基于相似性的方法難以學習事件間的隱式語義關系,本文提出使用事件和事件特征詞兩種節點,基于共現關系建模事件關系圖。同時,基于事件的時間老化關系將事件時間特性融入異構圖。
具體來說,構建了一個異構事件圖G=(V,E)來表示事件之間的關系,每個節點v∈V包含部分事件信息。主要有兩種類型的節點:特征詞節點和事件節點,并把事件文本中的名詞、動詞、形容詞和量詞作為事件特征詞。此外,每條邊e=(v,v')∈E表示兩個節點之間的關聯關系。有三種類型的邊:特征詞-特征詞、特征詞-事件和事件-事件。
三種類型的邊權重由不同的方法計算,其中特征詞-特征詞間的權重關系由點互信息計算,特征詞-事件的權重關系由TF-IDF 算法計算。此外,在演變過程中,屬于同一故事分支中的事件往往發生在有限的時間內,這意味著當兩個事件的時間跨度較大時,這兩個事件有極大可能性在不同故事分支中。因此,本文根據時間老化模型[18],提出了一種針對事件時間老化的關系來衡量兩個事件之間的相關性:

式中:ε為自然常數;λ為最大時間跨度因子;t1和t2分別為事件ei和ej的發生時間。
根據上述關系建立如圖4 所示的異構事件關系,圖中較大節點是事件節點,較小節點是事件特征詞節點。其中,事件間是一種由時間老化關系衡量的全連接關系,而特征詞間的關系、特征詞和事件的關系是一種詞共現關系。

圖4 異構事件關系Fig.4 Heterogeneous event relation
圖卷積網絡是一種半監督學習算法,可以用于節點分類,但需要每種類別具有少量帶標簽節點。為了避免故事線構建過程中人為因素的干擾,本文設計了一種基于差異度的啟發式算法來從每一個故事分支中識別一個事件,以此構建初始故事分支,并將其作為E-GCN 模型中的標簽節點。該算法的主要目標是選擇不在同一故事分支的事件作為初始故事分支,以提高后續故事分支構建的準確率。
首先,從事件集合E中選擇第一個隨機事件e1加入初始故事分支集合S并從E中刪除e1;然后,計算S和E中剩余事件的相似度,選擇最不相似的事件ei加入S并E中刪除從ei,重復上述過程直到差異度大于設定的閾值,最后得到初始故事分支集合。算法1描述了構建初始故事分支的過程。
算法1 基于差異度的初始分支構建算法。

事件圖卷積神經網絡模型的輸入為鄰接矩陣和特征矩陣,鄰接矩陣由事件異構圖模型得到,特征矩陣由TF-IDF 算法得到。本文建立了N×N的鄰接矩陣A,N×d的特征矩陣X,其中,N為事件數量,d為事件特征維度。然后,提出E-GCN模型來學習事件間的隱式語義關系,即通過預測每一個事件所屬的故事分支來學習事件關系。具體地說,建立多層GCN模型以及式(4)表示的傳播規則[19]:


其中:yE是帶標簽事件節點集合,即初始故事分支;F是輸出特征的維度,即故事分支數目;Yef是事件標簽集合;Zef是故事分支集合。
E-GCN 模型的架構如圖5 所示,首先事件被建模為異構事件圖,其中異構事件圖的鄰接矩陣A和特征矩陣X是E-GCN模型輸入,經過多層網絡學習,輸出每個事件節點的故事分支分類結果。

圖5 E-GCN模型架構Fig.5 Architecture of E-GCN model
本文實現為三層模型,允許最遠三個節點進行特征傳遞。如圖6 所示,圖中不同圖案的事件節點表示每個事件節點所屬的不同故事分支。值得注意的是,在訓練之前,每個故事分支中只有一個帶圖案的標簽節點,這是基于差異度的方法選擇的初始故事分支。

圖6 事件圖卷積網絡實現Fig.6 Implementation of event graph convolutional network
經過事件提取和故事分支構建,得到事件和事件間的關系,在此基礎上,進一步挖掘故事線的脈絡結構。通常故事線具有一定的邏輯關聯性,由故事分支和過渡節點構成,合理的過渡節點能夠使得故事線更加流暢,結構完整。根據模型輸出的故事分支,采用一種基于統計的方法識別過渡節點,即當存在同一節點被模型輸出到不同的故事分支時,該節點可能屬于過渡節點。最后,根據過渡事件節點和故事分支,基于事件時序關系,將過渡事件節點和故事分支串聯起來,生成結構化的故事線。
為了評測本文方法的實驗性能,在兩個真實的微博新聞數據集(https://weibo.com)上進行了對比實驗分析。爬取的微博帖子均為熱門微博,數據集具體信息如表1所示。

表1 數據集具體信息Tab.1 Specific information of datasets
本文在事件故事分支評價實驗中設置了三個對照組,分別是貝葉斯模型[12]、斯坦納樹[16]和故事森林[1],詳細信息如下所述:
1)貝葉斯模型(Bayesian Model):該方法對事件特征進行建模,并根據吉布斯采樣結果推導出事件所屬的故事分支。
2)斯坦納樹(Steiner Tree):該方法通過斯坦納樹算法生成故事線。由于在第3 章中提取的事件數量是固定的,而斯坦納樹問題允許在給定的點上添加額外的點。因此,本文對比過程中利用斯坦納樹的特殊情況,即最小生成樹構建故事線。
3)故事森林(Story Forest):該方法通過提取事件關鍵字,利用事件關鍵字的Jaccard 相似系數衡量是否將事件聚類到某個故事分支。
為了評價故事分支,使用第3 章中提取的首要事件集合,并以人工構建結果為標準,通過計算預測故事分支結果Ep與標準結果Es之間的相似度,建立預測故事分支與其相似度最高的標準故事分支之間的映射。用準確率、召回率和F1值對故事分支進行評估。映射關系相似度計算式為:

表2和表3分別展示了在Dataset1和Dataset2上故事分支構建的結果。其中,相較于貝葉斯模型、斯坦納樹和故事森林在F1 值上,本文方法在Dataset1 上分別高出28 個百分點、20個百分點和27個百分點,在Dataset2上分別高出19個百分點、12 個百分點和22 個百分點。在Dataset1 中本文的方法取得了最佳性能,而在Dataset2 上本文的方法在召回率上略低于斯坦納樹方法。經過分析發現,這是由數據集中事件的時間分布引起,Dataset1中事件的時間跨度約為1年,而Dataset2中事件的時間跨度僅3 個月,這直接影響了事件的時間老化關系建模。

表2 不同方法在Dataset1上的故事分支構建結果Tab.2 Story branch construction results of different methods on Dataset1

表3 不同方法在Dataset2上的故事分支構建結果Tab.3 Story branch construction results of different methods on Dataset2
本文基于時序關系將故事分支構建為故事線,并設置三種結構的故事線對照組,分別是故事時間線、斯坦納樹[16]和故事森林[1],詳細信息如下:
1)故事時間線:該方法將事件按照時間序列進行鏈接,是一種單分支故事線。
2)斯坦納樹:該方法生成的故事線為樹狀多分支結構,且故事分支上還有更細的演化分支。
3)故事森林:該方法生成的故事線為樹狀多分支結構,且故事分支上沒有更細的演化分支。
為評價故事線,首先基于標準故事分支構建標準故事線,然后借鑒文獻[1]的評測方法,把正確的邊作為故事線的結構性評價指標,其中正確的邊指同時存在于標準故事線Edges和生成故事線Edgeg中的邊,準確率由式(7)計算:

表4 展示了故事線抽取中正確的邊準確率結果。其中,相較于故事時間線、斯坦納樹和故事森林在正確的邊準確率上,本文方法在Dataset1上分別高出33個百分點、23個百分點和17個百分點,在Dataset2上分別高出12個百分點、3個百分點和9 個百分點。由于故事線抽取的主觀性,事實上正確的邊鏈接性能表現并不好。故事時間線是將事件按照時序關系排列,因此性能最差?;谒固辜{樹和故事森林的方法都考慮了事件的顯式語義關系,因此具有相似的性能。本文的方法考慮了事件的隱式語義關系,從而取得了最佳性能。

表4 不同方法的故事線抽取中正確的邊準確率對比Tab.4 Accuracy comparison of correct edge in storyline extraction by different methods
從社交網絡中抽取故事線對于人們全面了解新聞事件具有重要意義。本文通過建模微博傳播特性,提取微博新聞首要事件,并用異構圖建模事件關系,提出了一種改進的圖卷積神經網絡模型學習事件間的隱式關系,以預測事件的故事分支并鏈接事件。在真實微博數據集上進行實驗,結果表明,本文的方法能夠抽取邏輯合理、結構清晰的故事線,幫助用戶全面、準確地理解事件演化。