王 雷,李瑞軒,李玉華,辜希武,楊 琪
華中科技大學 計算機科學與技術(shù)學院,武漢 430074
網(wǎng)絡(luò)空間里每天都會產(chǎn)生大量的文本信息。這些信息的增量發(fā)展在給人類帶來便利的同時,也讓人類完全消化理解它們變得困難。對此,相關(guān)學者針對事件抽取任務(wù)展開了廣泛研究。
作為事件抽取領(lǐng)域最具影響力的測評會議,自動內(nèi)容抽?。╝utomatic content extraction,ACE,https://www.ldc.upenn.edu/collaborations/past-projects/ace)會議給出了計算機所要抽取的事件的定義:事件就是發(fā)生在某個時間、某個地點,由某些角色參與完成的某個動作或狀態(tài)的改變。由此可以引申出,在任何一個領(lǐng)域,一個事件都可以用時間、地點、對象、動作等幾個預(yù)先定義的結(jié)構(gòu)化事件要素進行表示。如表1所示,一個由非結(jié)構(gòu)化文本描述的股權(quán)質(zhì)押事件,可以由右邊的幾個事件要素進行表示。
Table 1 Example of document-level event extraction表1 文檔級事件抽取示例
通常,事件抽取中涉及到的專業(yè)名詞包括:
實體(entity):具有特定語義的基本單元,如時間、人物、地點、數(shù)量、組織機構(gòu)等。
事件觸發(fā)詞(event trigger):標志了某種類型事件發(fā)生的詞匯。如表1 中的“質(zhì)押”是股權(quán)質(zhì)押事件的觸發(fā)詞。
事件類型(event type):所發(fā)生的事件的類別。
事件論元(event argument):參與事件發(fā)生的要素,由實體構(gòu)成,在表1 中用斜體加下劃線表示。
論元角色(argument role):事件論元在事件中扮演的角色,如表1 中的“質(zhì)押人”“質(zhì)權(quán)人”等,每種事件類型均預(yù)定義了多個不同的論元角色域。
作為自然語言處理中的一個重要方向,事件抽取研究的內(nèi)容是如何從非結(jié)構(gòu)化文本中抽取出用戶感興趣的事件,并將事件信息以結(jié)構(gòu)化要素的形式表示出來。事件抽取不僅提高了人類從海量文本中獲取有用信息的效率,并且其抽取出的結(jié)構(gòu)化事件要素也便于計算機去理解和處理,進而為構(gòu)建知識圖譜、事件關(guān)聯(lián)檢索等高級人工智能應(yīng)用提供便利。
盡管當前的事件抽取研究已經(jīng)取得了巨大進展,但現(xiàn)有方法仍然存在兩方面的不足:一方面,當前研究大多著眼于句子級事件抽取,即假設(shè)一個事件的全部論元均出現(xiàn)在單一句子之中。然而,事件表述的復(fù)雜性和靈活性決定了在現(xiàn)實場景下通常需要聯(lián)系上下文的多個句子才能抽取到一條完整的事件信息。以表1 為例,S1和S2是一篇金融公告中的兩個句子。從句子S1中可以檢測到描述了一件股權(quán)質(zhì)押事件,并抽取出質(zhì)押人和質(zhì)權(quán)人信息。但S1中的質(zhì)押份額“38 348 000 股”是兩次股權(quán)質(zhì)押份額的總和,需要結(jié)合句子S2才能抽取出第一次股權(quán)質(zhì)押的實際份額為“12 780 000 股”,開始日期為“2015 年12 月30 日”,結(jié)束日期為“2018 年1 月4 日”,最終得到一條完整的事件結(jié)構(gòu)化信息。另一方面,由于事件抽取領(lǐng)域最廣泛使用的ACE2005 數(shù)據(jù)集標記了事件觸發(fā)詞,當前研究大多通過觸發(fā)詞判斷事件類型。但實際的無結(jié)構(gòu)化文本中有時并未出現(xiàn)明顯的觸發(fā)詞(如例1 描述的交通事故事件中沒有出現(xiàn)任何事件觸發(fā)詞),并且依賴觸發(fā)詞的事件抽取將進一步加大事件抽取數(shù)據(jù)集的標注難度。
例1一輛長途客車在從巧家縣開往魯?shù)榭h的途中不慎側(cè)翻墜入江中。
針對以上兩個難點,本文提出一個文檔級無觸發(fā)詞事件抽取聯(lián)合模型(attention based document-level event extraction,ATTDEE),該模型包含聯(lián)合訓練優(yōu)化的三個子模塊:(1)實體識別模塊。利用含有多頭自注意力機制[1]的序列標注模型輸出文檔中所包含的實體及其類型。(2)事件類型檢測模塊?;诙x的論元角色對事件類型的重要度,在無觸發(fā)詞條件下定位提及事件發(fā)生的事件中心句,并判斷事件類型。(3)事件論元抽取模塊。利用實體類型信息和實體到事件中心句的距離信息,在文檔范圍內(nèi)抽取事件論元,并判斷論元角色。
本文的主要貢獻包括:
(1)提出ATTDEE 模型,將事件抽取的粒度從句子級提升到文檔級。實驗結(jié)果證明了該模型在單事件條件下具有總體上最優(yōu)的F1 值。
(2)實現(xiàn)了文檔級無觸發(fā)詞事件抽取,既解決了觸發(fā)詞不存在時事件檢測失敗的問題,也減輕了數(shù)據(jù)集標注的難度。
(3)ATTDEE 是一個聯(lián)合訓練優(yōu)化的完全由深度學習模塊組成的端到端模型,避免了管道式方法的誤差傳遞,也提升了模型的易用性。
事件抽取在研究方法上經(jīng)歷了從基于模式匹配的方法,到基于特征提取工程的統(tǒng)計學習方法,再到基于深度學習方法的轉(zhuǎn)變。早期基于模式匹配的方法,包括AutoSlog[2]、AutoSlog-TS[3]和GenPAM[4]等依靠事件模板的匹配實現(xiàn)了較好的事件抽取準確率。但這類方法的事件召回率低,領(lǐng)域遷移性差,且模板的生成往往依賴大量的人工操作,因而難以在通用事件領(lǐng)域取得更好的效果?;谔卣魈崛」こ痰慕y(tǒng)計學習方法[5-7]則主要依賴自然語言處理中的文本分詞、語義信息、詞性標注、句法依存分析等工具,先抽取適當?shù)奈谋咎卣鳎俳Y(jié)合最大熵模型、支持向量機等分類器實現(xiàn)事件抽取。這類方法不僅需要人工設(shè)計特征工程,且外部自然語言處理工具的依次使用往往會造成誤差的傳遞。隨著深度學習模型在多個人工智能領(lǐng)域展現(xiàn)了強大的自動特征表示能力,事件抽取研究進入了新的階段。Chen 等[8]提出了一種動態(tài)多池化卷積神經(jīng)網(wǎng)絡(luò),以捕捉更多文本信息。Yang 等[9]為每一種事件論元都定義一個單獨的分類器,并通過整數(shù)動態(tài)規(guī)劃解決了論元角色重疊的問題。Nguyen 等[10]和Sha 等[11]提出了觸發(fā)詞和論元的聯(lián)合抽取模型。Chen 等[12]利用知識庫和遠監(jiān)督[13]方法自動標注事件抽取數(shù)據(jù)集,并利用FrameNet(https://framenet.icsi.berkeley.edu/)標記事件觸發(fā)詞,以提升事件抽取效果。Zeng 等[14]提出利用關(guān)鍵論元判斷事件類型,以減輕遠監(jiān)督方法中標注觸發(fā)詞的工作量。
當前事件抽取方法大多關(guān)注于句子級事件抽取。為了從文檔范圍內(nèi)抽取完整的事件信息,Yang等[15]在句子級事件抽取的基礎(chǔ)上提出一種啟發(fā)式算法,在關(guān)鍵事件句附近補全缺失的論元。在此基礎(chǔ)上,仲偉峰等[16]利用整數(shù)線性規(guī)劃進行全局推理實現(xiàn)文檔級事件抽取。但上述兩種方法利用了事件觸發(fā)詞信息,且管道式方法增加了誤差傳遞。Zheng 等[17]提出一種Doc2EDAG 模型,實現(xiàn)了無觸發(fā)詞的事件類型檢測,并在論元抽取階段將每種事件包含的全部論元角色按照既定順序生成有向無環(huán)圖進行依次識別,實現(xiàn)了文檔級的多事件提取,但該模型在訓練時需要消耗巨大的硬件算力資源。
ATTDEE 模型處理的是單事件條件下的文檔級事件抽取。該模型假設(shè)當一篇文檔中包含了一條事件信息時,總是存在一個提及事件發(fā)生且包含了最多關(guān)鍵論元的事件中心句,其他事件論元則有規(guī)律地分布在事件中心句附近。ATTDEE 模型包含實體識別、事件類型檢測和事件論元抽取三個模塊,其結(jié)構(gòu)如圖1所示。
為避免分詞工具帶來的模型復(fù)雜度增加和誤差引入,本文以漢字為單位輸入模型。對于每一篇文檔D,可以用句子序列S={s1;s2;…;sNs}表示,其中Ns表示最大句子數(shù)量。對每一個句子si又可以用漢字序列{ci,1,ci,2,…,ci,Nc}表示,其中Nc表示最大句子長度。對于第i個句子中的第j個漢字ci,j,其向量實際上由兩部分拼接而成:(1)預(yù)訓練的漢字向量,維度為dw;(2)該漢字在句中位置j的向量編碼,維度為dp。為了使?jié)h字能夠在向量空間上充分體現(xiàn)語義信息,本文使用FastText[18]預(yù)訓練的中文300 維詞向量模型獲得漢字的向量查找表。
實體識別是一個常見的序列標注任務(wù),通過標注BIO 標簽的方式可以準確識別出實體的范圍及其類型。相關(guān)學者對此提出了大量成熟且性能優(yōu)良的方法。Zhang 等[19]針對中文在不同分詞情況下會產(chǎn)生不同語義的特點提出了一種Lattice LSTM 網(wǎng)絡(luò)。Zheng 等[17]在實體識別階段使用了Transformer[1]模型。Yan 等[20]則指出,原始Transformer 模型使用的三角函數(shù)位置編碼只能建模距離的遠近關(guān)系,但無法建模位置是在左邊還是右邊,因而在實體識別任務(wù)中的效果并不比雙向長短期記憶網(wǎng)絡(luò)(bi-directional long short-term memory,Bi-LSTM)提升多少,反而顯著增加了模型復(fù)雜度。該團隊提出一種命名實體識別Transformer 編碼器模型(transformer encoder for named entity recognition,TENER),通過修改位置編碼和調(diào)整注意力權(quán)重提高實體識別效果。
Fig.1 Structure of ATTDEE model圖1 ATTDEE 模型結(jié)構(gòu)圖
然而,本文提出的ATTDEE 模型是一個聯(lián)合學習模型,實體識別階段的效果好并不等價于模型整體的效果好,還需要結(jié)合其他兩個模塊整體考慮模型復(fù)雜度和訓練后的最終效果。特別的,在單一實體識別任務(wù)中,SOTA(state of the arts)模型總是希望強化實體內(nèi)部的字符信息,而淡化實體以外的字符信息,因為實體以外的字符在實體識別模型評價時不起作用。但是在事件抽取任務(wù)中,實體以外的連接詞文本對于檢測事件類型、推斷實體間關(guān)系和判斷論元角色有著重要價值。因此在ATTDEE 模型的實體識別模塊中,需要合理分配實體內(nèi)和實體外的信息權(quán)重。
多頭自注意力機制已被證明可以在多維空間上自動豐富向量所蘊含的文本信息。本文采用基于多頭自注意力機制的Bi-LSTM 網(wǎng)絡(luò)來依次建模每個句子的文本特征表示。將每一個句子si={ci,1,ci,2,…,}輸入Bi-LSTM,并在每一個漢字處取正、反兩個方向的隱層向量拼接作為多頭自注意力機制的輸入hi,t=。在每一個句子處,記Hi=[hi,1,hi,2,…,]。在單頭自注意力機制中,模型隨機初始化三個可訓練的矩陣Wq、Wk、Wv來將Hi映射到不同的空間中。三個矩陣的向量維度為,其中,dk是一個超參數(shù)。
則自注意力計算結(jié)果為:
當使用幾組不同的可訓練矩陣Wq、Wk、Wv來加強自注意力的效果時,就構(gòu)成了多頭自注意力機制,其公式如下:
其中,n表示注意力頭數(shù),h表示注意力頭的序號,[head(1) ;head(2);…;head(n)]表示向量在最后一個維度上的拼接,且dk=(dw+dp)/n??捎柧毦仃?。
最后,模型使用BIO 標簽直接標記實體的范圍和類型,并使用條件隨機場(conditional random fields,CRF)建立多頭自注意力機制的輸出和BIO 標簽的聯(lián)系。在模型訓練階段,使用負對數(shù)似然計算實體識別模塊的損失Lossner,在模型預(yù)測階段,使用Viterbi算法求解最優(yōu)標簽序列。
事件類型檢測模塊以文檔中的每個句子為對象,尋找提及某個事件發(fā)生的事件中心句,并輸出事件類型。記每一個句子si在多頭自注意力機制后的輸出為,則可得到句子的向量表示為:
記V表示訓練集中所有事件類型的集合,對任一事件類型v∈V,ATTDEE 均定義了一個可訓練的全連接層Wv,用來對句子向量G={g1;g2;…;}進行二分類(“1”表示“是”,“0”表示“否”),以判斷句子si是否為事件類型v的表述中心句。二分類下句子觸發(fā)事件類型v的概率為:
為了避免對觸發(fā)詞的使用,本文定義了論元角色對事件類型的重要度。論元重要度的定義基于數(shù)據(jù)挖掘領(lǐng)域中經(jīng)典的TF-IDF(term frequency-inverse document frequency)思想,包含了論元角色頻率(role frequency,RF)和反事件頻率(inverse event frequency,IEF)兩部分。記R表示訓練集中所有論元角色域的集合。對于r∈R,則有:
對全部v∈V,可以利用事件的真實論元情況生成一個句子標簽。當文檔D不包含事件v時,labels,v全部由“0”構(gòu)成;當文檔D包含事件v時,labels,v在事件中心句的坐標處為“1”,其余地方為“0”。事件中心句為文檔中權(quán)重最高的句子。句子權(quán)重則通過對句中實際包含的論元的重要度加權(quán)獲得。
最終,事件類型檢測模塊的交叉熵損失函數(shù)為:
設(shè)實體識別模塊得到的第l個實體覆蓋了漢字區(qū) 間{ci,j,…,ci,k},對{mi,j,…,mi,k} 進 行MaxPooling 可以得到實體的向量表示。本文同樣使用了Transformer 加強實體與文檔間的信息交換,但在實現(xiàn)方式上與文獻[17]有較大不同。在每一個實體向量后面,本文拼接一個dtype維的實體類型編碼和一個ddist維的絕對距離編碼,絕對距離的定義是實體所在句子序號和事件中心句序號的差值。最終,文檔中全部實體的向量可以表示為,其中,Ne表示文檔中實體的個數(shù),且。對每一個句子向量gi,模型同樣拼接一個dtype維的“0”編碼表明這是句子向量,以及拼接一個ddist維度的當前句子到事件中心句的絕對距離編碼,最終得到與實體向量維度對齊的全體句子向量。之后通過一個多層Transformer 網(wǎng)絡(luò),可以得到充分交換了文本信息后的實體向量Ed和句子向量Gd:
對每個事件類型v下的每個論元角色域r,模型均預(yù)定義一個可訓練的全連接層Wv,r,對以所有實體Ed組成的候選論元進行二分類(“1”表示“抽取”,“0”表示“不抽取”),判斷是否將候選論元抽取到當前論元角色域r中。在模型訓練階段,根據(jù)論元的真實標簽,通過交叉熵損失計算事件論元抽取模塊的損失為Lossarg,且為了平衡抽取每個論元時負例過多的影響,引入了一個正例補償系數(shù)β。在模型預(yù)測階段,當檢測到某種事件類型發(fā)生時,則依次對該事件類型所包含的全部論元角色域從候選論元中進行抽取。若存在歸一化抽取概率最高且概率超過50%的候選論元則抽?。环駝t,當前論元角色域為空。
ATTDEE 模型的總損失如式(13)所示,其中λ1、λ2和λ3是超參數(shù)。之后通過選擇優(yōu)化器并設(shè)定合理的學習率訓練模型,可以將模型整體優(yōu)化,實現(xiàn)端到端的文檔級事件抽取任務(wù)。
本文采用Zheng 等[17]公開的中文文檔級金融事件數(shù)據(jù)集進行實驗。該數(shù)據(jù)集包含五種類型的金融事件:股權(quán)凍結(jié)(equity freeze,EF)、股權(quán)回購(equity repurchase,ER)、股權(quán)減持(equity underweight)、股權(quán)增持(equity overweight,EO)和股權(quán)質(zhì)押(equity pledge,EP)。每種事件類型均定義了多個不同的論元角色域。由于ATTDEE 模型處理的是單事件抽取任務(wù),本文從原始數(shù)據(jù)集中抽取只包含單一事件的文檔作為最終的數(shù)據(jù)集。數(shù)據(jù)集中的文檔數(shù)量統(tǒng)計情況如表2 所示。
Table 2 Document statistics of dataset表2 數(shù)據(jù)集中的文檔數(shù)量統(tǒng)計
本文在評價模型時將文檔級事件抽取視為一個對事件中不同論元角色域的填空任務(wù),并直接使用事件抽取模型得到的結(jié)果與真實事件情況比對進行效果評價,按照結(jié)果的最大化匹配原則計算準確率(precision,P)、召回率(recall,R)和F1值,其定義如下:
模型評價的最終結(jié)果取全部訓練輪數(shù)中驗證集F1 值最高的測試集結(jié)果。
ATTDEE 模型的超參數(shù)設(shè)置如下:Ns為64,Nc為128,dw為300,dp為12,dtype為8,ddist為8,LSTM隱層維度156,注意力頭數(shù)為8,Transformer層數(shù)為4,batch size為64,學習率為2E-4。由于實體識別模塊的收斂更快,且事件類型檢測、事件論元抽取兩個模塊對事件抽取總效果的影響更大,模型總損失中各模塊的權(quán)重設(shè)置成λ1為0.15,λ2、λ3為0.85。dropout為0.1,β為3。模型采用Adam 優(yōu)化器訓練100 輪。
實驗所采用的服務(wù)器硬件配置如表3 所示。
Table 3 Configuration of server表3 服務(wù)器硬件配置
本文采用相同的模型設(shè)置,與兩種最新的文檔級事件抽取模型進行對比實驗。
DCFEE[15]:基于句子級事件抽取和啟發(fā)式論元補全的文檔級事件抽取模型。
Doc2EDAG[17]:將論元角色按照既定順序編織為有向無環(huán)圖來實現(xiàn)文檔級事件抽取。
最終,事件抽取的結(jié)果如表4 所示,模型訓練時間如表5 所示??梢钥闯?,ATTDEE 在合理的訓練時間下實現(xiàn)了最好的單事件抽取效果。
Table 4 Evaluation results of document-level event extraction表4 文檔級事件抽取評價結(jié)果 %
同DCFEE 相比,本文模型沒有簡單地將論元數(shù)量最多的句子作為關(guān)鍵事件句,而是引入了論元的重要度。因為在觀察數(shù)據(jù)集時,發(fā)現(xiàn)不同論元角色在事件中出現(xiàn)的頻率不同,且同一論元角色可能同時定義在不同事件類型下,因此每種論元角色對不同事件類型的判定作用存在差別。論元角色重要度的應(yīng)用顯著降低了貧信息論元的影響,提高了模型準確率。在文檔級論元補全階段,DCFEE 基于管道的啟發(fā)式方法將實體類型符合要求且距離關(guān)鍵事件句最近的實體直接作為論元抽取,其方法過于簡單且無法消除實體識別階段的誤差傳遞,而ATTDEE的聯(lián)合學習模型則將實體類型和實體到事件中心句的距離作為輔助信息供論元抽取模塊使用,通過深度學習方法捕捉不同論元相對于事件中心句在方位和距離兩個維度上的表述習慣,使得最終的F1值提高了19.9個百分點,而模型訓練時間僅為DCFEE模型的1.6倍。
同Doc2EDAG 相比,ATTDEE 在進行實體和文檔間的信息交換時,使用了額外的向量維度去表示實體類型和到事件中心句的距離,避免了信息混淆。模型通過“0”編碼作為句子向量的類型編碼,使句子向量的維度對齊實體向量,并指明矩陣中句子向量的范圍,提升Transformer 交換文本信息的效果。在單事件的前提下,ATTDEE 基于事件中心句的抽取思想也更加簡單有效,從而使準確率P提升了5.4 個百分點,F(xiàn)1 值提升了0.8 個百分點。同時,相較于Doc2EDAG 逐個論元角色依次建模抽取的鏈式過程,ATTDEE 可以方便地在多顯卡條件下進行并行化計算,從而大幅縮短模型的訓練時間。
本文提出了一個端到端的文檔級無觸發(fā)詞事件抽取聯(lián)合模型。模型由三個模塊組成:基于多頭自注意力機制的實體識別模塊、基于論元重要度的事件類型檢測模塊和文檔級事件論元抽取模塊。通過對三個模塊聯(lián)合訓練,避免了管道式方法的誤差傳遞,也降低了模型使用的復(fù)雜度。另外,該模型不依賴任何事件觸發(fā)詞,既減輕了數(shù)據(jù)集標注的難度,也解決了實際場景下觸發(fā)詞可能不存在的問題。模型在公開數(shù)據(jù)集上取得了總體最優(yōu)的F1 值。
然而,本文模型目前僅能處理一篇文檔中只含有一個事件的情況。如何改進模型的特征學習方式,提升多事件抽取效果,是下一步的研究方向。