紀婉婷,馬宇航,魯聞一,王俊陸,宋寶燕
遼寧大學(xué)信息學(xué)院,沈陽 110036
事件抽取(event extraction,EE)是自然語言處理領(lǐng)域一項重要且極具挑戰(zhàn)性的信息抽取任務(wù),旨在利用自然語言處理技術(shù)從非結(jié)構(gòu)化文本中抽取出用戶感興趣的事件并進行結(jié)構(gòu)化展示。目前,事件抽取在金融、立法、醫(yī)療等領(lǐng)域的文本分析類工作中被廣泛應(yīng)用,極大地提升了人們在海量文本中檢索關(guān)鍵信息的準確率和效率。
根據(jù)輸入數(shù)據(jù)不同,事件抽取可分為句子級事件抽取和文檔級事件抽取。早期方法[1-8]多為句子級事件抽取,即從單個句子中提取其中的事件信息。然而,一些事件(如金融事件)包含的事件要素較多,這些要素?zé)o法完全同時存在于單一句子中,需要從多個句子中抽取。因此,文檔級事件抽取方法被提出,旨在從輸入文檔(包含多個句子的輸入)中直接提取事件相關(guān)的要素信息。
目前,文檔級事件抽取主要存在兩大挑戰(zhàn)亟待解決:(1)事件要素分散:事件要素散亂分布在文本的多個句子中,如何從全局角度建模,充分利用文本上下文語義特征,準確高效地從文檔中抽取事件要素;(2)多事件共存:輸入文本中可能存在多個事件,同一個實體可能在不同事件中扮演不同的事件角色,如何充分考慮構(gòu)成多個事件的事件要素之間的交互性,以及如何充分利用多事件之間的依賴關(guān)系。如圖1 所示,在輸入文本中,稀疏分布于各個句子中的事件要素構(gòu)成兩個“股東增持”類型事件,并且“B 公司”作為事件要素同時存在于這兩個事件中?,F(xiàn)有的研究[9-11]將文檔級事件抽取轉(zhuǎn)化為對預(yù)定義事件表的填充任務(wù),并根據(jù)預(yù)定義事件角色的順序依次識別事件要素,但是這種序列式的要素抽取流程導(dǎo)致了嚴重的錯誤傳播問題,并且無法充分利用多事件之間的依賴關(guān)系。
圖1 多事件文本案例Fig.1 Example of multi-event text
為了應(yīng)對上述挑戰(zhàn),同時避免序列式預(yù)測導(dǎo)致的錯誤傳播[1]問題,提出了一種面向文檔級事件抽取任務(wù)的反向推理模型(reverse inference model for documentlevel event extraction,RⅠDEE),將事件抽取轉(zhuǎn)化為兩個子任務(wù):候選事件要素抽取和事件觸發(fā)推理。在候選事件要素抽取階段,利用命名實體識別技術(shù)從文本中識別出全部實體(候選事件要素)以及對應(yīng)的實體標簽(經(jīng)標注后的事件角色)。在事件觸發(fā)推理階段,以事件類型為單位,通過廣義笛卡爾積運算組合扮演不同事件角色的事件要素,進而反向推理組合事件的真實性。此外,設(shè)計了一種用于存儲歷史事件的事件依賴池,并通過對待推理事件和歷史事件之間的依賴關(guān)系進行建模,幫助模型對多事件文本的抽取。在CCKS 2020 提供的文檔級事件要素抽取數(shù)據(jù)集(https://www.biendata.xyz/competition/ccks_2020_4_2/data/)上的實驗結(jié)果表明,相比于當(dāng)前最先進的方法,RⅠDEE 取得了更優(yōu)的抽取性能。
本文的主要貢獻如下:
(1)面向文檔級事件抽取任務(wù)提出了一種端到端的反向推理模型RⅠDEE,并設(shè)計了一種聯(lián)合損失函數(shù)來匹配上下游損失,引導(dǎo)全局優(yōu)化。
(2)基于無觸發(fā)詞的設(shè)計,將事件抽取轉(zhuǎn)化為候選事件要素抽取和事件觸發(fā)推理兩個子任務(wù),并行式抽取事件要素并檢測事件類型。
(3)設(shè)計了一種用于存儲歷史事件信息的事件依賴池,通過事件之間的依賴關(guān)系幫助模型對多事件文本的抽取。
(4)在公開數(shù)據(jù)集上進行了實驗。實驗結(jié)果表明,在進行文檔級事件抽取時,RⅠDEE的性能優(yōu)于當(dāng)前最先進的方法。
早期事件抽取方法主要關(guān)注于句子級事件抽取,即從單個句子中抽取事件信息。Li等人[1]使用人工設(shè)計的文本特征實現(xiàn)了對事件信息的結(jié)構(gòu)化預(yù)測,而Chen 等人[2]和Liu 等人[3]則利用神經(jīng)網(wǎng)絡(luò)自動地從文本中提取特征。為了融入更多的語義信息,Chen等人[4]對句子的上下文信息進行建模,而Yang等人[5]直接采用了預(yù)訓(xùn)練語言模型,并通過整數(shù)動態(tài)規(guī)劃解決了事件角色重疊的問題。此外,Li 等人[6]、Du 等人[7]以及Wang 等人[8]將機器閱讀理解框架應(yīng)用于事件抽取任務(wù)中,并基于問答的形式抽取觸發(fā)詞和事件要素。然而,即使上述部分方法在提取特征時超出了句子的范圍,但抽取的水平仍處于句子級別。
隨著從文本中提取事件信息的需求增多,文檔級事件抽取受到了越來越多的關(guān)注。針對文檔級事件抽取存在的事件要素分散問題,Yang等人[12]提出一種關(guān)鍵事件檢測策略從文本中檢測關(guān)鍵句,并提出一種要素填充策略從關(guān)鍵句周圍的句子中填充缺失的事件要素。在此基礎(chǔ)上,Wang 等人[13]引入了事件要素的重要度來檢測關(guān)鍵句,Zhong 等人[14]采用整型線性規(guī)劃的方法進行全局推理,Wang 等人[15]將詞匯之間的依賴關(guān)系融入到上下文編碼中,并利用改進后的Transformer 編碼器進一步幫助對事件類型的檢測。此外,Du 等人[16]提出了一種多粒度閱讀器,動態(tài)地聚合不同粒度(即句子級和段落級)的上下文信息。雖然上述方法都能夠從文本上下文的全局信息中提取特征,并且實現(xiàn)了跨句子的事件要素抽取,但并未解決文檔級事件抽取多事件共存的問題。
針對文檔級事件抽取存在的多事件共存問題,Zheng等人[9]將文檔級事件抽取轉(zhuǎn)化為基于事件要素的有向無環(huán)圖的路徑擴展問題,以多路徑擴展的方式實現(xiàn)了對多事件的抽取。Xu等人[10]提出了一種包含實體節(jié)點和句子節(jié)點的異構(gòu)圖交互神經(jīng)網(wǎng)絡(luò),并且設(shè)計了跟蹤器模塊來捕獲不同類型事件之間的依賴關(guān)系,從而幫助對不同類型多事件的抽取。Huang等人[11]將文本轉(zhuǎn)化為一個融合實體和句子信息的無向無權(quán)圖,并且通過圖注意力網(wǎng)絡(luò)在相關(guān)句子之間建立關(guān)聯(lián),緩解了要素角色重疊問題。上述方法雖有效應(yīng)對了文檔級事件抽取任務(wù)當(dāng)前面臨的兩大挑戰(zhàn),但事件類型檢測和事件角色分類子任務(wù)間的串行化執(zhí)行流程以及基于前序要素信息的序列式事件要素抽取流程都導(dǎo)致了嚴重的錯誤傳播問題。此外,上述方法僅有Xu 等人[10]通過設(shè)計跟蹤器模塊利用了不同類型事件之間的依賴關(guān)系,然而在真實語料中同文本下的多事件大多屬于同一種事件類型。
本文將文檔級事件抽取轉(zhuǎn)化為候選事件要素抽取和事件觸發(fā)推理兩個子任務(wù),并以組合事件為單位進行反向抽取,能夠解決事件要素分散和多事件共存帶來的挑戰(zhàn),并有效解決上述方法存在的錯誤傳播問題。此外,通過對同文本下任意類型事件之間的依賴關(guān)系進行建模,能夠有效幫助模型對多事件文本的抽取。
本章首先介紹模型的整體構(gòu)建架構(gòu),然后詳細介紹模型的各個模塊以及全局損失函數(shù)。
如圖2 所示,RⅠDEE 模型共包含兩個模塊:候選事件要素抽取(左側(cè))和事件觸發(fā)推理(右側(cè))。
圖2 RⅠDEE模型架構(gòu)Fig.2 Model structure of RⅠDEE
候選事件要素抽取模塊首先利用預(yù)訓(xùn)練BERT[17]獲取句子中字符對應(yīng)的詞向量表示,然后通過條件隨機場(conditional random fields,CRF)[18]抽取出扮演特定事件角色的候選事件要素。
事件觸發(fā)推理模塊主要分為要素編碼、事件組合和觸發(fā)推理三個子模塊。要素編碼子模塊首先通過最大池化(max-pooling)壓縮得到實體提及以及句子對應(yīng)的編碼,其次利用Transformer編碼器[19]得到融合了實體關(guān)系、句子位置和事件角色等語義信息的候選事件要素編碼。事件組合子模塊以事件類型為單位,通過廣義笛卡爾積運算組合候選事件要素得到所有待推理的組合事件編碼。觸發(fā)推理子模塊首先將所有組合事件編碼融入相應(yīng)的事件類型信息,然后將當(dāng)前組合事件編碼和事件依賴池中的歷史事件編碼拼接,并交由Transformer編碼器捕獲事件之間的依賴關(guān)系,最后通過相應(yīng)類型的事件觸發(fā)器推理是否觸發(fā)事件。若觸發(fā)成功,將組合事件拆分為多個事件要素,即可得完整事件信息。
候選事件要素抽取旨在從文本中抽取出可能會在事件中扮演特定事件角色的候選事件要素,供下游任務(wù)組合事件信息。本文將候選事件要素抽取定義為傳統(tǒng)的以句子為單位的序列標注任務(wù),而實體標簽由事件角色通過BⅠO標注生成。此外,沿用了經(jīng)典命名實體識別模型BⅠ-LSTM-CRF[20]的整體架構(gòu)。不同的是,本文采用預(yù)訓(xùn)練語言模型BERT獲取詞向量表示,由于其內(nèi)部的Transformer 編碼器相比于LSTM 具有更強的上下文語義編碼能力,因此后續(xù)并未繼續(xù)使用LSTM。
給定一個文本,首先將其表示為長度為q的句子序列{S1,S2,…,Sq} 。然后,通過BERT得到文本中所有字符的詞向量表示wi∈Rdm,dm表示詞向量的維度。最后,以句子為單位將句子對應(yīng)的字符編碼序列交由CRF,抽取出所有與實體標簽(經(jīng)過標注后的事件角色)相匹配的實體提及(候選事件要素):
其中,ci∈Rdm表示由CRF 處理后的字符編碼,n表示句子的最大長度。
2.3.1 要素編碼
由于一個實體提及通常包含長度不定的字符跨度,因此需要通過最大池化(Max-pooling)壓縮實體提及對應(yīng)的字符編碼序列,使得每一個實體提及對應(yīng)一個固定維度的編碼。例如,給定一個跨度長為l的實體提及∈Rl×dm,對應(yīng)第i句子中第j個字符到第k個字符的位置跨度。經(jīng)過最大池化壓縮后,得到實體提及對應(yīng)的固定編碼∈Rdm:
此外,基于此種方式,將每一個句子對應(yīng)的字符編碼序列{c1,c2,…,cn} 映射為一個固定維度的句子編碼∈Rdm。
為使抽取出的實體提及編碼充分融入所在句子之外的上下文語義信息,需要將句子編碼和實體編碼進行充分的交互。首先,針對所有事件角色分別設(shè)計了可訓(xùn)練的事件角色編碼r∈Rdm,并通過簡單的相加,將實體提及對應(yīng)的事件角色編碼融入到實體提及編碼中,增強實體提及編碼和事件主題之間的關(guān)聯(lián)性。然后,聯(lián)合文本對應(yīng)的句子編碼序列和實體編碼序列得到聯(lián)合編碼,g表示從該文本抽取出的實體提及的個數(shù),并且此處的實體提及編碼以及句子編碼都融入了對應(yīng)句子的位置信息。接著,將聯(lián)合編碼交由Transformer-1編碼器:
通過截取即可得到融合了上下文語義信息的實體編碼序列{e1,e2,…,eg} ∈Rg×dm。最后,由于一個候選事件要素可能對應(yīng)多個位置的實體提及,因此利用平均池化(Mean-pooling)對其實體提及編碼序列{e1,e2,…,eo}進行壓縮,得到候選事件要素對應(yīng)的固定編碼ai∈Rm:
其中,o表示第i個候選事件要素在文本中對應(yīng)的實體提及數(shù)量。至此,便得到了文本中全部待組合事件的候選事件要素編碼{a1,a2,…,at},t表示候選事件要素的數(shù)量。
2.3.2 事件組合
反向推理任務(wù)的關(guān)鍵在于通過已抽取的候選事件要素組合事件信息。本文將事件組合任務(wù)轉(zhuǎn)化為數(shù)據(jù)庫關(guān)系表的廣義笛卡爾積連接過程。
首先,根據(jù)事件角色將所有候選事件要素分配到不同的要素集合里,每一種事件角色對應(yīng)一個事件要素集合。根據(jù)預(yù)定義的事件結(jié)構(gòu)(如表1所示),可以判斷出事件角色所屬的事件類型,而每種事件角色對應(yīng)的事件要素集合可理解為只包含一個屬性(事件角色)的關(guān)系,從而一種事件類型對應(yīng)了多個關(guān)系,關(guān)系的數(shù)量即相應(yīng)事件類型包含的事件角色數(shù)量。
表1 CCKS 2020數(shù)據(jù)集的事件結(jié)構(gòu)Table 1 Event structure of CCKS 2020 dataset
其次,通過廣義笛卡爾積運算將相同事件類型下的關(guān)系進行連接,從而得到每種事件類型對應(yīng)的唯一合成關(guān)系R?,合成關(guān)系中的所有元組都是通過笛卡爾積組合而成的事件信息:
其中,R?表示特定事件類型廣義笛卡爾積運算后的合成關(guān)系,R?i表示特定事件類型的第i個事件角色對應(yīng)的關(guān)系,xi表示關(guān)系R?i中唯一的屬性,Nr表示特定事件類型下的事件角色數(shù)量。
最后,基于預(yù)定義的事件角色順序(事件結(jié)構(gòu)中各事件類型對應(yīng)角色列表中的索引順序),將組合事件對應(yīng)的候選事件要素編碼序列拼接,即可得到對應(yīng)的組合事件編碼Ei={a1,a2,…,aNr} ∈RNr×dm。此外,為使相同事件類型的組合事件編碼具備相同的維度,對于未識別出要素的事件角色,采用填補零向量的方式進行補齊組合事件編碼。
例如,針對圖1案例文檔中的“股東增持”類型下的多事件,只需將該類型下的所有關(guān)系做廣義笛卡爾積連接操作,如圖3 所示。經(jīng)運算后得到合成關(guān)系R,其包含的四條元組都是由候選事件要素組合而來的事件信息,通過拼接要素編碼可得到這四個事件對應(yīng)的組合事件編碼。在訓(xùn)練時,通過和數(shù)據(jù)集包含的真實事件比對,即可得到所有組合事件編碼在后續(xù)進行觸發(fā)推理任務(wù)時的真實分類標簽。由圖1事件表可知,組合事件Ⅰ和組合事件Ⅳ是文本的真實事件,因此將其標注為正例(T);相反,將組合事件Ⅱ和組合事件Ⅲ標注為反例(F)。
圖3 廣義笛卡爾積組合事件信息Fig.3 Event information combination based on generalized Cartesian product
2.3.3 觸發(fā)推理
通過前文工作,得到了所有待推理的組合事件編碼{E1,E2,…,Eu} ∈Ru×(Nr×dm),u表示組合事件的數(shù)量。接下來的任務(wù)即推理每個組合事件Ei∈RNr×dm的真實性。為了幫助模型推理,本文在該模塊引入了三處關(guān)鍵設(shè)計:(1)為每一種事件類型分別提供了一個可訓(xùn)練的事件類型編碼ti∈Rdw,使得組合事件編碼充分融入對應(yīng)的事件類型信息。(2)提出了一種用于存儲歷史事件信息的事件依賴池,通過捕獲待推理事件和歷史事件之間的依賴關(guān)系,可以更好地幫助模型提取文本中的多事件信息。在初始階段,初始化事件依賴池為一個可訓(xùn)練的歷史事件編碼p∈Rdw。(3)為每一種事件類型分別設(shè)計了Softmax 事件觸發(fā)器,使其專攻于推理特定類型的組合事件。
以第一個組合事件編碼E1∈RNr×dm為例,首先將其與對應(yīng)的事件類型編碼t1∈Rdw相加,得到融入事件類型信息的組合事件編碼。然后,將候選事件編碼與事件依賴池中的歷史事件編碼拼接起來,并使用Transformer-2 編碼器捕獲當(dāng)前事件和事件依賴池中的歷史事件之間的依賴關(guān)系,并截取得到融入了歷史事件信息的組合事件編碼E?1∈RNr×dm:
最后,經(jīng)過簡單的線性變換后,通過相應(yīng)類型的事件觸發(fā)器得到推理結(jié)果:
其中,Wt表示可訓(xùn)練的線性變換參數(shù),相同事件類型下的組合事件共享該參數(shù)。若觸發(fā)器推理為真實事件,即可通過平均池化(mean-pooling)將當(dāng)前組合事件對應(yīng)的要素編碼序列壓縮為一個歷史事件編碼h1∈Rdw,并將其加入事件依賴池中,然后開始預(yù)測下一個組合事件;若推理為非真實事件,則直接處理后續(xù)組合事件。例如,第k個組合事件前已有m個推理為正例的組合事件,事件依賴池中則存在m+1 個歷史事件編碼,Transformer-2編碼器的處理過程應(yīng)為:
其余步驟與針對第一個組合事件的處理過程一致。基于上述流程,待推理完所有組合事件后,所有推理成功的事件即從文本中抽取出的多事件信息。
候選事件要素抽取模塊在訓(xùn)練階段,采用負對數(shù)似然函數(shù)以句子為單位計算CRF層的損失L1:
其中,q表示文本中有效句子的數(shù)量,Pi表示第i條路徑的分數(shù),N表示路徑的個數(shù),PRealPath表示真實路徑的分數(shù)。在預(yù)測階段,使用Viterbi解碼算法得到最優(yōu)標簽路徑。
事件觸發(fā)推理模塊在訓(xùn)練階段,采用交叉熵損失函數(shù)計算所有組合事件進行觸發(fā)推理的損失L2:
其中,yp表示第i個組合事件在特定事件類型下的預(yù)測標簽,y表示第i個組合事件在特定事件類型下的真實標簽。在預(yù)測階段,使用Argmax 函數(shù)獲取組合事件經(jīng)事件觸發(fā)器推理后的分類標簽(0 和1 分別表示觸發(fā)成功和觸發(fā)失?。?。
通過聯(lián)合候選事件要素抽取模塊和事件觸發(fā)推理模塊可計算模型的全局損失,可實現(xiàn)整體優(yōu)化:
其中,λ表示損失率,用于調(diào)控兩個模塊在模型總損失中的比率。
為測試RⅠDEE 模型的性能,本文在CCKS 2020 面向金融領(lǐng)域提供的文檔級事件抽取數(shù)據(jù)集上與基線模型進行了對比實驗。實驗環(huán)境如下:操作系統(tǒng)版本為Windows 10,顯卡為GeForce RTX 3080,顯存大小為10 GB,python版本為3.8,pytorch版本為1.9。
CCKS 2020面向金融領(lǐng)域提供了文檔級事件要素抽取數(shù)據(jù)集,共定義了9種事件類型(破產(chǎn)清算、重大資產(chǎn)損失、重大對外賠付、重大安全事故、股權(quán)凍結(jié)、股權(quán)質(zhì)押、股東增持、股東減持、高層死亡)以及相應(yīng)的事件角色列表,詳細的事件結(jié)構(gòu)信息如表1所示。由于原始數(shù)據(jù)集并未包含候選事件要素抽取模塊所需的實體標簽,不能滿足模型設(shè)計的需求。因此,本文對原始數(shù)據(jù)集進行了手工處理,即根據(jù)數(shù)據(jù)集中的真實要素及其角色來標注實體、實體位置、實體標簽等信息。經(jīng)處理后,數(shù)據(jù)集中共包含3 485 條文本,其中609 條包含多事件信息,分布于“股權(quán)凍結(jié)”“股權(quán)質(zhì)押”“股東增持”“股東減持”4種類型中,其余類型的文本僅包含單事件。詳細的單、多事件數(shù)據(jù)集統(tǒng)計信息,如表2所示。
表2 CCKS 2020數(shù)據(jù)集統(tǒng)計Table 2 Statistics of CCKS 2020 dataset
在文本輸入階段,將最大句子個數(shù)和最大句子長度分別設(shè)為64和128。在詞向量表示階段,采用了預(yù)訓(xùn)練模型BERT,并將詞向量維度設(shè)為768。在語義編碼階段,采用了8 層Transformer 編碼器。此外,模型中的兩處Transformer 編碼器都采用相同的網(wǎng)絡(luò)結(jié)構(gòu),但并不共享參數(shù)。在訓(xùn)練階段,將損失率設(shè)為0.1,學(xué)習(xí)率設(shè)為10-4,訓(xùn)練周期設(shè)為100。其余超參數(shù)信息如表3所示。
表3 超參數(shù)設(shè)置Table 3 Hyper-parameter setting
本文選取目前最先進的文檔級事件抽取模型DCFEE[12](DCFEE-O、DCFEE-M)、Doc2EDAG[9]以及GⅠT[10]作為對比實驗的基線模型。DCFEE首先通過關(guān)鍵事件檢測策略從文本中檢測關(guān)鍵句,然后從關(guān)鍵句周圍的句子中填充缺失的事件要素,從而實現(xiàn)跨句子的事件要素抽取。DCFEE-O、DCFEE-M 是DCFEE 的兩個版本,分別面向單事件和多事件抽取任務(wù)。Doc2EDAG 將文檔級事件抽取轉(zhuǎn)化為基于事件要素的有向無環(huán)圖的路徑擴展問題,以多路徑擴展的方式實現(xiàn)了對多事件的抽取。在Doc2EDAG序列式預(yù)測事件要素的基礎(chǔ)上,GⅠT提出了一種包含實體節(jié)點和句子節(jié)點的異構(gòu)圖交互神經(jīng)網(wǎng)絡(luò)檢測事件類型,并且設(shè)計了跟蹤器模塊捕獲不同類型事件之間的依賴關(guān)系。
本文采用精確率(precision,P)、召回率(recall,R)和綜合評價指標F1分數(shù)(F1 score,F(xiàn)1)聯(lián)合作為模型的評估標準,在相同的實驗環(huán)境下與基線模型進行了詳細的對比分析。精確率P用于計算在預(yù)測為正例的樣本中,預(yù)測正確的樣本所占的比例。其計算公式為:
其中,TP為正例中預(yù)測正確的個數(shù),F(xiàn)P為負例中預(yù)測錯誤的個數(shù),F(xiàn)N 為正例中預(yù)測錯誤的個數(shù)。召回率R 用于計算在真實正例樣本中,預(yù)測正確的樣本所占的比例。其計算公式為:
F1分數(shù)可看作是模型精確率和召回率的一種加權(quán)平均,同時兼顧了精確率和召回率。其計算公式為:
在評估過程中,以事件要素作為統(tǒng)計項單位,并聯(lián)合事件類型以及事件角色得到事件級別的評估指標。具體的統(tǒng)計規(guī)則為:在事件類型預(yù)測正確的前提下,若事件要素及其事件角色均預(yù)測正確則將事件要素統(tǒng)計為正確項,否則統(tǒng)計為錯誤項。若事件類型預(yù)測錯誤,則將該類型下的事件要素均統(tǒng)計為錯誤項。此外,本文將訓(xùn)練周期中在驗證集上F1得分最高的模型視為最佳模型,而模型的性能由最佳模型在測試集上進行評估。
RⅠDEE 和基線模型在測試集各類型上的總體實驗結(jié)果如表4所示。與最佳基線模型(各指標分數(shù)最高的基線模型)相比,RⅠDEE在精確率上雖未展現(xiàn)出優(yōu)勢,但將召回率提升了4.3 個百分點,從而將F1 分數(shù)提升了2.1個百分點。這歸因于RⅠDEE充分考慮了同類型下事件要素之間進行交互的可能性,以事件為單位進行整體預(yù)測,極大地提升了真實正例要素被正確預(yù)測的可能性。此外,嚴謹?shù)氖录|發(fā)推理流程同時保證了預(yù)測的精確性。
表4 測試集上的總體實驗結(jié)果Table 4 Overall experimental results evaluated on test set單位:%
表5 詳細展示了RⅠDEE 和基線模型在所有事件類型的測試集上的F1 分數(shù)對比情況??傮w來看,RⅠDEE顯著優(yōu)于其他基線模型,RⅠDEE 在“破產(chǎn)清算”“重大資產(chǎn)損失”“重大對外賠付”“重大安全事故”“股權(quán)凍結(jié)”“股權(quán)質(zhì)押”“股東增持”“股東減持”“高層死亡”類型上的F1分數(shù)相比最佳基線模型分別提升了1.2個百分點、1.4個百分點、2.2個百分點、2.5個百分點、1.6個百分點、2.3 個百分點、3.1 個百分點、3.5 個百分點、1.5 個百分點。這表明RⅠDEE通過組合與推理并行地預(yù)測事件要素是可行的,且相比于基線模型更為有效。此外,相比于“破產(chǎn)清算”等僅包含單事件文本的事件類型,RⅠDEE在“股東減持”等包含多事件文本的事件類型上的F1分數(shù)提升的更為顯著,這證明了RⅠDEE 在多事件抽取任務(wù)中的優(yōu)越性。
表5 各事件類型測試集上的事件級別的F1分數(shù)Table 5 Overall event-level F1 scores evaluated on test sets of all event types單位:%
事件要素分散和多事件共存是文檔級事件抽取任務(wù)面臨的兩大挑戰(zhàn),為驗證RⅠDEE 在面向上述挑戰(zhàn)時的有效性,本文將“股權(quán)凍結(jié)”“股權(quán)質(zhì)押”“股東增持”“股東減持”4種類型的測試集依次劃分為單事件測試集(文本中僅存在單個事件)和多事件測試集(文本中存在多個事件)并額外進行了實驗。
表6 展示了RⅠDEE 和基線模型在各類型單事件測試集(S)和多事件測試集(M)上的F1 分數(shù)以及平均F1分數(shù)??傮w來看,所有模型在多事件測試集上的F1 分數(shù)都明顯低于在單事件測試集上的F1 分數(shù),這也證明了多事件抽取任務(wù)的挑戰(zhàn)性。在單事件測試集的實驗中,RⅠDEE在4種事件類型上的平均F1分數(shù)高于最佳基線模型1.2個百分點,這表明RⅠDEE通過組合事件要素反向整體推理可以很好地應(yīng)對事件要素分散的挑戰(zhàn),能夠更加精確地從文本中抽取出分散于各個句子中的要素信息;在多事件測試集的實驗中,RⅠDEE 在4 種事件類型上的平均F1分數(shù)高于最佳基線模型2.1個百分點,這表明RⅠDEE 通過對事件之間的依賴關(guān)系進行建模,更能夠捕獲同文本多事件之間的語義相關(guān)性,從而在多事件抽取任務(wù)中表現(xiàn)得更為優(yōu)異。
表6 單事件(S)集和多事件(M)集上的F1分數(shù)Table 6 F1 scores on single-event(S)and multi-event(M)sets單位:%
為了測試模型各個關(guān)鍵模塊設(shè)計的有效性,進行了如下消融實驗:使用單一事件觸發(fā)器代替多類型事件觸發(fā)器、移除事件編碼補齊模塊、使用隨機初始化詞向量搭配Transformer 編碼器代替BERT、移除要素信息(上下文信息、角色編碼、位置編碼)填充模塊、移除事件依賴池模塊、將Transformer編碼層改為4層、將Transformer編碼層改為12層。通過在原模型的基礎(chǔ)上單獨移除或更改上述模塊,可依次得到7個版本的子模型。消融實驗后,各子模型在所有事件類型下的平均F1 分數(shù)下降情況如表7所示。
表7 消融實驗結(jié)果Table 7 Ablation experiment results 單位:%
總體來看,依次改動相應(yīng)的設(shè)計模塊后,F(xiàn)1分數(shù)分別下降了14.5%、6.2%、3.8%、3.2%、2.5%、2.2%、1.5%。其中,改動觸發(fā)器模塊后,模型性能下降的最為明顯,這表明了不同類型事件之間存在明顯的語義差異,也證明了多類型事件觸發(fā)器對于整體模型設(shè)計的必要性。此外,通過在編碼補齊、詞向量表示、語義擴充、事件依賴關(guān)系以及網(wǎng)絡(luò)結(jié)構(gòu)等模塊進行改動,模型的性能也有所下降,表明了所有模塊在模型運轉(zhuǎn)過程中都是至關(guān)重要的,也證明了RⅠDEE整體設(shè)計的有效性。
圖4 展示了Doc2EDAG 和RⅠDEE 對“股東增持”類型下一個多事件文本的預(yù)測案例。當(dāng)候選事件要素“陳柏元”未被識別為事件角色“增持的股東”時,同事件中的后續(xù)事件要素“978 458”以及“二〇一九年六月五日”均未被成功識別,這證明了Doc2EDAG 基于前序要素信息序列式地識別候選事件要素會不可避免地導(dǎo)致級聯(lián)錯誤預(yù)測。而本文所提模型通過組合事件,充分考慮了要素交互的可能性,以事件為單位進行整體預(yù)測,并利用事件之間的依賴關(guān)系幫助模型對多事件的抽取,從而成功預(yù)測出了所有事件信息。
圖4 Doc2EDAG和RⅠDEE案例分析Fig.4 Case study of Doc2EDAG and RⅠDEE
本文提出了一種基于端到端的反向推理模型RⅠDEE,以解決文檔級事件抽取任務(wù)所面臨的事件要素分散和多事件共存的挑戰(zhàn)。該模型基于無觸發(fā)詞的設(shè)計,將事件抽取轉(zhuǎn)化為候選事件要素抽取和事件觸發(fā)推理兩個子任務(wù),通過廣義笛卡爾積運算組合事件要素,以整體事件為單位進行反向抽取,從而消除了傳統(tǒng)方法帶來的錯誤傳播的問題。此外,設(shè)計了一種用于存儲歷史事件信息的事件依賴池,通過事件之間的依賴關(guān)系幫助模型對多事件文本的抽取。實驗結(jié)果表明,本文所提方法的性能優(yōu)于當(dāng)前最先進的方法。展望未來,將致力于提升模型對相似事件的級聯(lián)推理能力。