環志剛,蔣國權,周澤云,陳 濤,嚴 浩
(1.國防科技大學 第六十三研究所,江蘇 南京 210007;2.東南大學 網絡空間安全學院,江蘇 南京 210096;3.裝備發展部 信息中心,北京 100034;4.裝備發展部某局,北京 100034)
事件共指消解(event coreference resolution,ECR)是對文本中指代現實中相同事件的提及進行聚類的任務[1]。情報文檔中存在大量重復的事件提及,增加了情報數據的復雜性和自動處理的難度,并影響后續情報應用效果。事實上,文檔中部分事件提及指代同一情報事件,通過ECR技術進行事件消歧、信息融合,可以消除情報數據中的事件冗余,降低自動處理事件數據的難度。情報信息往往具有多個來源,跨文檔事件共指消解技術允許識別多個文檔中共指的情報事件,從而融合多源情報信息。不同于文檔內事件共指消解只需為每個文檔內的每對事件提及計算共指分數,大多數的跨文檔事件共指消解需要計算語料庫中所有事件對(可能來自同一文檔,也可能不是)的共指得分。本文提出一種利用事件共指消解技術融合多元情報信息的框架。首先,利用標注好的情報語料訓練事件預測模塊,并用其識別未標注語料中的情報事件、類型和論元等信息。然后,將這些信息輸入文檔內共指消解模塊,實現單個情報文檔內的信息融合。最后,設計了一個跨文檔共指消解的算法,利用文檔內事件共指消解的結果優化跨文檔事件共指消解,融合多源情報文檔中的共指情報信息。本文所提的模型,只需在訓練階段使用少量標注語料訓練模型,在實施情報融合工作時不需要額外使用任何標注信息,模型自動實現情報事件識別和融合。
早期文檔內事件共指消解使用傳統方法,如基于概率的模型和基于圖的模型[2]。這類方法大多源自實體共指消解并且關注英文事件共指消解,效果不佳。針對各種注釋事件屬性,成對事件共指模型被提出,但是傳統成對分類器沒有考慮文檔內的全局信息,成對結果轉化為共指事件鏈時存在很多沖突。近年來,神經網絡在各種英文NLP應用中得到了廣泛的應用。Lu和Ng[3]探索了基于跨度模型的事件共指消解方法,并驗證了跨任務依賴和實體共指信息可以被有益地用于事件共指消解。Wei等[4]提出了一種基于事件觸發詞來選擇性表達句子語義的方法,以判斷短文本中的事件共指關系。Lai等[5]設計了一種基于事件觸發詞的上下文相關的門控神經網絡,獲取無噪聲的事件成對特征解決英文事件共指。Peng等[6]提出一種是基于最小監督的事件檢測和事件共指消解的聯合方法,共同改善事件檢測和事件共指消解兩個任務的性能。
大多數跨文檔事件共指消解方法將其看作是一個二分類問題。早期的工作利用手工標注的特征(例如文章主旨、詞嵌入相似度等)?,F在更多的方法依賴神經網絡,并利用基于特征的嵌入[7,8]或上下文嵌入[9,10]。最近的方法[9]利用預訓練語言模型編碼整個文檔,得到較強的基準模型。但是,這種方法必須為語料庫所有文檔中共n個事件提及兩兩組成的每對提及計算一個相似度得分,因此共要計算n2次。
相比于英文事件共指消解,中文語料上的研究更少。針對事件的語義信息主要由觸發詞和論元表示這一個特點,Huan等[11]將事件進行結構化表示并輸入一個基于門控注意力機制的模型,進行文檔內中文事件共指消解。為解決事件提及中事件無關信息的影響以及中文句子結構靈活多樣的問題,Cheng等[12]設計一種門控注意力神經網絡模型從事件提及中選擇事件相關信息,然后過濾噪聲信息。這些方法都是利用語料中已經標注好的事件信息(事件觸發詞、類型和論元等)解決中文共指問題,然而現實任務中標注語料的代價昂貴,因此這些方法泛化性差,難以應用到現實任務中。此外,情報語料中的事件具有特殊性,在通用語料庫上訓練的模型直接應用到情報領域效果不佳。
目前,事件共指消解應用于各種自然語言處理任務,包括主題檢測[13]、信息抽取[14]和閱讀理解[15]等。本文提出將其應用到情報領域,融合多源情報文檔中的共指事件,消除冗余,提高自動處理信息的效率。針對現有中文事件共指消解方法過度依賴標注好的特征的問題,提出了端到端的中文事件共指方法,消除模型對標注信息的依賴。此外,重新定義情報事件類型和論元角色,使模型適應解決情報事件共指,融合多源情報信息的工作。本文的貢獻主要包括4個方面:①提出一種用于融合多源情報的端到端事件共指消解方法;②提出一種用于解決文檔內事件共指的方法,融合文檔內的情報信息;③設計一種解決跨文檔的事件共指消解算法,利用文檔內事件共指消解的結果融合多源情報信息;④實驗結果表明,本文提出的方法對消除冗余信息、簡化情報文本,融合情報信息具有明顯增益。
模型總共包括3個模塊:事件預測模塊、文檔內共指消解模塊和跨文檔共指消解模塊,如圖1所示。

圖1 模型結構
首先,通過手動標注的情報語料庫,重新訓練事件抽取模型ONEIE[16],使其適應情報事件的預測工作;其次,通過訓練好的事件預測模塊預測待消解的情報數據,得到事件觸發詞、類型和事件論元;然后,將原始文檔和這些信息輸入文檔內共指消解模塊得到文檔內事件共指鏈;最后,通過跨文檔共指消解模塊,完成跨文檔的情報融合。下面將依次介紹事件預測模塊、文檔內共指消解模塊和跨文檔共指消解模塊。
本文采用ONEIE來識別事件提及和它們的子類型和論元。ONEIE是一種捕獲跨子任務和跨實例的相互依賴關系的聯合神經框架,旨在提取全局最優的信息抽取結果。ONEIE分4個階段進行端到端的搜索:將給定的句子編碼為上下文化的單詞表示;識別實體提及和事件觸發詞為圖節點;使用局部分類器計算所有節點及其成對鏈接的標簽得分;使用解碼器搜索全局最優圖。在解碼階段,結合全局特征來捕獲跨子任務和跨實例的交互。ONEIE是最先進的信息抽取聯合神經模型,在ACE2005數據集上獲得了最優效果。ACE2005數據集定義了8種事件類型和33種事件子類型,并為每種子類型的事件定義了若干種論元。為了在情報文檔中獲取最佳的情報事件預測結果,本文選擇了情報事件可能的5種類型和16種子類型,見表1。

表1 情報事件的類型和子類型
此外,本文還為每種類型的情報事件定義了4種角色的論元:arg0、arg1、arg_t和arg_p。各種論元的解釋見表2。

表2 情報事件的論元
提及編碼的輸入是一個包含n個詞元和k個事件提及 {m1,m2,…,mk} 的文檔D。 文檔內事件共指消解模塊如圖2所示。

圖2 文檔內事件共指消解模塊
模型首先使用BERT為每個輸入詞元形成上下文表示,用X=(X1,X2,…,Xn) 表示編碼器的輸出,其中Xi∈Rd,d表示每個詞元編碼后的向量維度。對于每個mi, 用si和ei分別表示觸發詞的開始和結束索引,它的觸發詞的表示ti被定義為其詞元嵌入的平均值
(1)


(2)

給定兩個提及mi和mj, 觸發詞對和對應角色r的論元對的表示分別被定義為
tij=FFNNt(ti,tj,ti°tj)
(3)
(4)

事件抽取任務中可能包含錯誤,且在特定的上下文中,某些論元包含的信息更有利于解決事件共指。受到Lai等[1,5]的啟發,引入一種門控過濾機制,利用觸發詞有選擇地從論元中提取信息。如圖3所示。

圖3 門控模塊

(5)

本文使用以下方法獲取兩個分量的權重系數

(6)

(7)
將觸發詞表示、論元表示簡單拼接,得到最終的事件提及對表示fij
(8)
最后,對于事件提及mi和mj, 將事件提及對表示fij輸入一個前饋神經網絡打分器,輸出mi和mj的共指得分
s(i,j)=FFNNc(fij)
(9)
其中,FFNNc是一個R5×p→R的前饋神經網絡。

(10)
利用2.3節中的方法,可以得到每個情報文檔的事件共指鏈集合,根據這些鏈可以初步融合每個文檔內的情報事件。但是,同一情報事件不僅會出現在同一文檔中,還可能會出現在多源情報中。為了降低計算,本文提出了跨文檔事件共指消解算法,利用文檔內事件共指消解的結果進一步融合多源情報。如算法1所示。
算法1:跨文檔事件共指消解
輸入:文檔1和文檔2的事件共指鏈集合S1和S2
輸出:跨文檔事件共指鏈集合S
for each chainS1//循環S1中的每條共指鏈
C={} //存放當前鏈和S2中每條鏈的共指得分
for each chainS2//循環S2中的每條共指鏈
計算兩條鏈的共指得分
將得分加入集合C
end for
/計算當前鏈(S1中)與S2中最有可能共指的鏈
計算C中最高的分數cij
ifcij>0 //判斷為共指
合并ci和cj并作為一條新鏈加入集合S,更新S2
else //判斷為不共指
將ci加入集合S
end else
end if
end for
將S2中的剩余鏈加入集合S
在算法1中,對于每條文檔內共指鏈,本文使用該鏈中所有事件提及表示的平均池化作為鏈的表示。計算鏈與鏈共指得分的打分器與2.3節中的打分器相同。首先,計算文檔1中的鏈與文檔2中每條鏈的共指得分;然后,取出共指得分最高的兩條鏈(文檔1中的每條鏈至多只能在文檔2中找到一條共指鏈,即不存在鏈與其它文檔中多條鏈共指)判斷是否共指。如果存在共指,將兩條鏈合并成一條新的事件鏈加入跨文檔事件鏈集合;如果不共指,將文檔1中的鏈加入跨文檔事件鏈集合,繼續判斷其它鏈。最后,得到跨文檔事件共指鏈集合。利用得到的跨文檔事件鏈完成多源情報事件融合。
受限于數據集,本文在ACE2005中文數據集上進行所有的實驗。ACE事件被分為8個大類,33個小類,根據每類事件的特點,ACE2005定義了事件論元,包括事件參與者和事件發生的時間地點等。下面將介紹相關定義:
事件提及:描述事件的短語或句子;
事件觸發詞:清楚表示事件發生的主要單詞,通常是名詞或者是動詞;
事件論元:實體或短語,包括事件參與者和事件發生的時間和地點;
事件類型:由觸發詞類型決定。
ACE中文語料庫共計632個文檔,但不是每個文檔中都存在共指事件對。因此本文使用ONEIE識別文檔中的事件提及其特征,并移除不存在共指事件對的文檔。本實驗選擇其中含有相同類型事件對的文檔(事件類型不相同的事件對不具有共指關系,故舍棄),最終共提取出445個文檔。將同一文檔中的任意兩個事件組成事件對,剔除事件類型不相同的事件對,共計14 394個事件對。
本文實驗在一臺配備Intel(R)Xeon(R)Gold 5120 CPU @ 2.20GHz和NVIDIA Tesla V100 gpu的服務器上進行。已分配內存為187G。GPU內存為16G。
根據表2定義的事件類型和論元,標注情報語料,并利用標注好的語料訓練ONEIE,使其預測情報文檔中事件和抽取事件信息的準確度達到最佳。將待消解的文檔輸入訓練好的事件預測模塊,輸出事件觸發詞、子類型和論元。利用情報事件重新訓練ONEIE得到事件預測模塊,事件預測模塊中預測觸發詞和論元的F1分數見表3。

表3 事件預測模塊的效果
事件預測模塊中預測觸發詞和論元的F1分數見表3,觸發詞的識別和分類任務的F1分數分別達到75.6和72.8,論元的F1分數分別為57.3和54.8。
表4是事件預測模塊應用的一個示例。如表所示,觸發詞有5個參數,分別是觸發詞的id、文本、類型(子類型)、始末位置和置信分數。其中始末位置表示,觸發詞文本在文檔中的起始位置和結束位置,置信分數表示觸發詞的置信度。論元中有6個參數,前5個參數定義與觸發詞類似,第6個參數是對應的觸發詞的id。
模型的目標輸出文檔中的所有共指事件鏈。當一個事件提及的預測先行詞是它的真實共指事件時,認為這個預測的先行詞是正確的先行詞。為了得到最佳的結果,模型優化所有正確的先行詞的邊際對數似然[17]
(11)
其中,GOLD(i) 表示mi的真實共指事件鏈,如果mi不存在真實共指事件,則GOLD(i)={ε},P(i,j) 表示mi與mj共指的概率。
通過優化這個目標函數,模型可以自動學習如何利用真實共指鏈準確修剪預測共指事件鏈,最終獲得最佳的模型性能。

(12)
MUC:事件共指消解最重要的評估指標,它是基于事件鏈接的分數。MUC分數計算了將預測的事件共指鏈映射到標注的事件共指鏈(正確的事件共指鏈)所需插入或刪除的最少鏈接數量。它的缺陷是無法衡量模型預測不存在共指關系的事件的性能。
B3:基于事件節點的分數,它彌補了MUC對非共指事件評估的不足。B3主要對每個事件提及分別計算精確率和召回率,然后以所有事件提及的分數平均值作為最終的指標。
CEAFe:類似于B3,但它添加了實體相似度來評估事件共指消解的性能。CEAFe主要基于這樣一種思想:如果兩個事件提及是共指的,那么它們對應角色的參數(實體)也是共指的。
BLANC:衡量非共指事件和共指事件之間的平均性能。BLANC實現了蘭德指數,主要用于聚類算法。BLANC正確地處理不存在共指關系的事件,并根據被提及的數量獎勵正確的事件提及。BLANC背后的一個基本假設是,對于給定的事件提及,所有共指鏈接和非共指鏈接的總和是不變的。
此外,本文還使用了CoNLL(式(13))和AVG(式(14))作為對比指標[1]
(13)
(14)
本文在ACE2005中文數據集上測試文檔內共指消解,結果見表5,模型的CoNLL分數和AVG分數分別達到了58.2和56.3。Peng的方法是基于最小監督的事件檢測和事件共指消解的聯合方法。Lai等[5]的工作在ACE2005英文數據集上取得了最好的成績,我們在中文數據集上重新訓練并測試了Lai等的工作。由表5可以看出相比于Peng和Lai等的工作,我們的文檔內事件共指消解方法在對多個指標上獲得了不錯的提升,其中相比于最好的模型,本文的模型在CoNLL和AVG兩個指標上分別提升了0.8和0.7。

表5 端到端事件共指消解的效果
圖4展示了文檔內事件共指消解的一個示例,文檔中用粗體標注了事件觸發詞,事件鏈中粗體標注了模型判斷共指的事件。

圖4 文檔內事件共指消解的應用示例
俄烏沖突初期,烏軍可以發動密集、精確的伏擊戰的一個重要原因是每個烏克蘭人都可以對看到的俄軍進行拍攝,附加文字說明后上傳到特定APP。烏軍就會對俄軍在各個位置的坦克、裝甲車、補給車、運輸車隊等的精確位置和實時動態,有一個比較準確的認識。
情報上傳的時間和地點由APP自動提供。例如,下面有3條上傳APP的情報:
5月26日15:00,甲地上傳了一條情報:“俄羅斯的坦克從我這經過”。
5月26日15:30,乙地上傳了一條情報:“有5輛俄軍坦克駛過乙地”。
5月26日16:00,丙地上傳了一條情報:“俄軍正在向南方向前進”。
對于這3條情報,首先使用事件預測技術分別得到3個事件觸發詞“經過”、“駛過”和“前進”,它們的事件子類型均為“轉移”并且有相似語義的論元“俄羅斯的坦克”、“俄軍坦克”和“俄軍”,通過事件共指消解技術可以判斷這3條情報指代同一條情報。信息融合之后可以得知“5月26日,俄軍5輛坦克于15:00從甲地出發,于15:30經過乙地,于16:00駛向丙地,并且仍在向南方前進”。
對于上述情報,“甲—乙—丙”這條路線上的每個烏克蘭人都有可能上傳一條相似情報,數據量龐大,很難通過人力處理。對于這種多源情報,使用跨文檔事件共指消解技術可以很好地融合情報信息。然后根據情報中不同的時間、地點,繪制出俄軍轉移的具體路線和實時路線,并預測俄軍的下一步動作,發動靈活、精確的伏擊戰。
本文提出將事件共指消解技術用于融合多源情報信息。情報文檔中存在大量重復冗余的事件信息,嚴重影響自動處理信息的效率,大量積累的情報數據無法及時轉化成知識應用。通過一種端到端的事件共指消解模型,首先識別每個情報文檔中的事件,然后對每個文檔進行事件共指消解,最后利用各個情報文檔共指消解的結果實現多源情報的融合。結果表明,本文提出的方法可以較好融合多源情報,降低自動處理數據的難度。