李良毅
(昆明理工大學,云南 昆明 650504)
事件時序關(guān)系識別旨在分析文中各事件發(fā)生的先后順序,從時間角度將不同事件聯(lián)系起來。有效地識別事件時序關(guān)系有助于讀者理清事件脈絡,快速了解事件發(fā)展趨勢,能夠推進信息檢索、文本摘要、自動問答等任務[1,2]的研究,也被應用于醫(yī)療文本等特定領域中。為區(qū)分同一句子中的不同事件,研究者使用事件觸發(fā)詞來定位事件。事件關(guān)系識別作為事件抽取的下游任務,通常使用標注事件觸發(fā)詞的文本作為模型輸入,現(xiàn)有研究通常聚焦于識別文中事件對的時序關(guān)系。以表1中的事件句為例,事件對應的觸發(fā)詞分別是“broke”“running away”與“confront”,分析可知“broke”發(fā)生在“running away”之后,因此事件對(“broke”“running away”)對應的時序關(guān)系是“before”,同理可得其余事件對的關(guān)系。
表1 事件時序關(guān)系識別示例
事件時序關(guān)系識別是一種分類任務,其特殊性在于不僅需要模型理解事件句中的文本信息,還需要模型學習到文中句法信息。句法信息有助于模型總結(jié)上下文的特定模式,理清事件邏輯,一些特殊句法甚至能在關(guān)系識別中起決定作用,但由于句法屬于隱式信息,模型對于句法信息的學習較為困難。因此,本文提出一種融入事件依存路徑的事件時序關(guān)系識別方法。該方法在事件表征的過程中,將事件依存路徑作為額外的增強信息來強調(diào)不同文本中的句法差異,再利用傳統(tǒng)的雙向長短期記憶網(wǎng)絡(Bi-Long Short-Term Memory,Bi-LSTM)提 取事件句的語義信息,最后提出使用特征門控將事件語義信息與句法信息進行結(jié)合。該方法顯式地將事件依存路徑展露給模型,以外部知識的形式將句法信息加入事件表征中,幫助模型分析文本結(jié)構(gòu),總結(jié)句法規(guī)律,通過編碼后的事件句對來建立事件對之間的聯(lián)系,實現(xiàn)對事件時序關(guān)系的準確識別。
作為重要的自然語言理解任務,事件時序關(guān)系識別被納入文本時間解析任務Tempeval[3]中,眾多學者對此展開了研究。
在早期,人們通過歸納文本中的規(guī)律,提出了基于規(guī)則匹配的文本時序關(guān)系識別方法。Bethard等人[4]基于該思想,提出了使用詞性、二進制碼、時態(tài)等語言特征來制定匹配規(guī)則;然而,規(guī)則匹配的方法在召回率與實用性方面均不理想。隨后研究者嘗試使用機器學習方法來識別事件時序關(guān)系,例如,Mani等人[5]利用文本時態(tài)、實體詞性、事件類型等特征,構(gòu)建了最大熵分類器以實現(xiàn)時序關(guān)系的識別。隨著機器學習的發(fā)展,統(tǒng)計機器學習逐漸應用于事件時序關(guān)系識別任務,如Chambers等人[6]提出了將時序識別任務劃分為兩個任務,首先識別出文中事件與時間表達式,其次對識別出的事件進行時序關(guān)系分類。此外,Chambers等人[7]將識別范圍從部分事件擴大到全體事件與時間表達式的時序關(guān)系識別,并提出了一種聯(lián)合規(guī)則匹配與機器學習的方法。
隨著深度學習在眾多自然語言處理任務中取得成功,神經(jīng)網(wǎng)絡模型也被大量應用于事件時序關(guān)系識別領域中,研究者通過各類神經(jīng)網(wǎng)絡結(jié)構(gòu)來提升識別效果。Meng等人[8]提出了類神經(jīng)圖靈機的時序關(guān)系識別模型,該模型能將處理過的事件信息當作先驗知識存儲下來,輔助后續(xù)事件的時序關(guān)系識別。Han等人[9]提出了使用聯(lián)合訓練模型來識別事件時序關(guān)系,該模型同時訓練事件檢測與事件時序關(guān)系識別兩個任務,通過孿生網(wǎng)絡來共享編碼層,并使用線性規(guī)劃的方法進行邏輯推理。Han等人[10]又提出了針對特定領域的事件時序關(guān)系識別方法,統(tǒng)計不同事件之間的時序關(guān)系比例作為先驗知識,并將其轉(zhuǎn)換為線性規(guī)劃問題來輔助事件時序關(guān)系識別。Zhou等人[11]針對醫(yī)學文本領域,提出在訓練過程中為損失函數(shù)加入基于概率軟邏輯的正則化項。上述方法在事件時序關(guān)系識別領域中取得巨大成功,這些方法或使用聯(lián)合模型來增強模型的閱讀理解能力,或使用外部規(guī)則來輔助模型識別事件時序關(guān)系,但它們對于句法知識的利用較少。Cheng等人[12]曾提出公共根的概念,并使用事件依存路徑代替文本作為輸入,在不需要額外標注信息的情況下,使用Bi-LSTM模型編碼事件句的最短依存路徑,證明了最短依存路徑在事件時序關(guān)系識別中的有效性;然而該方法僅截取了部分事件句作為輸入,而丟失的上下文中包含著文本語義信息,造成識別性能不佳。因此將事件依存路徑作為外部知識更有合理性與可解釋性,在保留事件句原貌的情況下加入事件依存路徑,可以有效地提高模型性能。
本文提出融入事件依存路徑的事件時序關(guān)系識別模型,將事件依存路徑轉(zhuǎn)換為特定形式的連續(xù)序列,在標志位的輔助下,使用自注意力編碼器對文本與句法知識進行編碼,并通過Bi-LSTM提取文本的語義信息,最后利用門控結(jié)構(gòu)計算事件特征。本文模型的總體框架如圖1所示,由網(wǎng)絡輸入層、特征提取層與關(guān)系分類層3部分構(gòu)成。其中,BERT為預訓練模型,Sen1和Sen2代表輸入的事件句,Input1,Input2和Input3為處理過后的輸入。
圖1 事件時序關(guān)系模型框架
網(wǎng)絡輸入層將事件句文本預處理為適合編碼的形式,再通過預訓練模型實現(xiàn)文本到低維詞嵌入矩陣的轉(zhuǎn)換。
本文將事件依存路徑作為外部知識融入到事件句文本中。事件依存路徑是指在依存句法樹中事件觸發(fā)詞到依存樹根中最短的一條通路,圖2展示了事件句S3的依存句法樹,以事件“confront”為例,它所對應的事件最短依存路徑應為[confront,rushed,running]。
圖2 依存句法樹示例
S3:He was running away,when the neighbor rushed out to confront him.
受Fan等人[13]啟發(fā),本文利用標志位來表示事件的最短依存路徑,將隱藏的句法信息顯式地展現(xiàn)出來。首先通過句法解析工具得到各個事件的最短依存路徑,將該路徑轉(zhuǎn)換為[單詞<依存關(guān)系>]的模板,如S3中的依存關(guān)系路徑轉(zhuǎn)換為confront
將路徑插入到事件句文本中,并使用
通過預訓練模型BERT來獲得文本對應的詞嵌入矩陣,預訓練模型要求輸入為單個或多個句子。傳統(tǒng)方法在編碼事件對時序特征時,往往將兩個事件句各自獨立編碼,再將兩個句子的事件時序表示進行拼接,造成編碼過程中事件句之間的交互較弱,因此模型將輸入的兩個事件句進行拼接,從拼接后的事件句來提取出全局信息。在開頭加入標志位CLS為行業(yè)公認,將末尾句號替換為標志位SEP,預處理過后的事件句形式為:
式中:Sen1與Sen2為兩個預處理過后的事件句,Input1為處理過后的輸入。
在事件句語義的提取方面,本文沿用Bi-LSTM來編碼事件語義特征,直接使用兩個事件句原文作為Bi-LSTM輸入,將兩個事件句分別記作Input2與Input3。將上述Input1,Input2,Input3送入預訓練模型BERT中,實現(xiàn)文本到詞嵌入矩陣的轉(zhuǎn)換,將轉(zhuǎn)換后的向量序列分別對應記作Seq1,Seq2與Seq3。
特征編碼層如圖3所示,該結(jié)構(gòu)含有句法與語義兩個編碼器以及一個計算事件時序表示的特征門控。特征編碼層的主要任務是從各類輸入的詞向量序列中提取出事件的語義特征F2與句法特征F1,并權(quán)衡兩種特征的重要性,計算出最適合的事件特征向量。
圖3 特征編碼層模塊
2.2.1 語義編碼器
語義編碼器以事件句向量序列Seq2與Seq3作為輸入,Bi-LSTM包含前向與后向LSTM,如式(2)、式(3)所示,該結(jié)構(gòu)分別從前后兩個方向讀取輸入序列,最后將前后兩組向量按式(4)所示進行拼接,得到輸入序列的向量表征hin,為向量序列融入上下文信息。
2.2.2 句法編碼器
句法特征編碼器旨在將事件依存路徑加入到事件時序表征的編碼過程中,建立依存句法與事件句文本的聯(lián)系,豐富事件時序表征的信息。以Seq1作為句法編碼器的輸入,基于自注意力機制進行編碼。
多頭自注意力機制將輸入向量Seq1進行3次不同的線性變換,將結(jié)果分別記作Q=Rlen×d,K=Rlen×d,V=Rlen×d3個矩陣,其中l(wèi)en代表向量序列的長度,d代表詞向量維度。之后按照頭的個數(shù)切分向量序列中的各個向量,每個頭含有一組矩陣,自注意力機制將計算單詞兩兩之間的關(guān)聯(lián)程度,為每個頭計算注意力矩陣與注意力得分,計算方式為:
式中:k′為矩陣k的轉(zhuǎn)置;*為點乘。
將各頭注意力得分拼接,將結(jié)果記作Att,取Att中
2.2.3 特征門控
針對特征編碼器輸出的語義特征與句法特征,由于模型在面對不同文本時語義與句法特征所占比重不同,因此使用門控機制來計算適合當前事件對的時序表征。將e1與e2進行拼接并記作F1,將e1′與e2′拼接并記作F2。再如式(7)所示,將F1與F2再次拼接后送入tanh激活函數(shù),計算出當前事件對中不同特征所占比例o,依式(8)所示計算出事件對特征F3。
式中:w1為線性層權(quán)重矩陣;b1為偏置;*為點乘;⊕代表按最后一位拼接。
在給定事件特征與事件句特征后,將事件對特征F3與事件句特征c拼接,再通過歸一化函數(shù)Softmax計算事件時序關(guān)系概率分布,具體計算公式為:
式中:σ為激活函數(shù)ReLu;p為關(guān)系的概率分布,u為最終的事件時序特征;b2為偏置。
選用交叉熵函數(shù)作為模型的損失函數(shù):
式中:n為關(guān)系類別總數(shù);當前時序關(guān)系屬于第i類時,yi為1,否則為0;pi為Softmax函數(shù)計算的時序關(guān)系屬于第i類的概率。
由于在時序關(guān)系識別任務中,常常會遇到如“Before”與“After”這類句法角色相似而語義不同的單詞,相似的用法導致模型較難區(qū)分,因此本文引入對抗訓練策略來增強模型的理解能力。對抗訓練是Miyato等人[14]提出的一種面向文本序列的監(jiān)督學習算法,通過重新編碼文本向量來擾動模型的判斷能力,增強模型對于詞語的分辨能力。在訓練過程中需要為Seq1,Seq2,Seq3進行再編碼,再編碼過程為:
式中:X為需要加入再編碼的向量序列;為再編碼后的事件句向量序列;T為序列長;frn為事件句文本中第n個單詞在訓練集中出現(xiàn)的頻率;xn為序列中任意詞向量,當取某一固定xn時,使用th將詞向量遍歷。
在訓練過程中為句向量序列加入擾動后,在更新參數(shù)時將梯度累加,設訓練過程中存在batch個批次,按照如下操作進行模型訓練:
(1)將該批次中各事件句送入網(wǎng)絡輸入層,通過預處理與預訓練模型將文本轉(zhuǎn)換為Seq1-3。
(2)依式(12),計算詞向量對應的擾動ri。
(3)依式(13),為向量序列Seq1-3中各詞向量加入擾動,將被干擾后的文本序列記作Seq1-3。
(6)在更新參數(shù)時,使用原詞嵌入向量序列Seq1-3和梯度grad1更新模型參數(shù)θ。
TimeBank-Dense(TB-Dense)是事件時序關(guān)系識別任務中使用最為廣泛的數(shù)據(jù)集,已有大量工作基于該語料庫進行研究。該英文數(shù)據(jù)庫于2014年發(fā)布,從36篇新聞文章中抽取出事件對及對應時序關(guān)系共6 088例,并標注了事件觸發(fā)詞、事件句與事件之間的時序關(guān)系。TB-Dense語料庫共包含6種類型的時序關(guān)系:VAGUE、AFTER、BEFORE、SIMULTANEOUS、INCLUDES與IS INCLUDED。各類事件對的具體分布情況如表2所示。
表2 TB-Dense語料庫關(guān)系分布情況
本文使用谷歌提供的BERT作為預訓練模型,與其他事件時序關(guān)系方法相同,沿用Micro-F1值作為模型評價指標,選用斯坦福自然語言解析工具Standford CoreNLP作為句法分析工具來生成事件依存路徑,模型的超參數(shù)設置如表3所示。
表3 參數(shù)設置
選用近年優(yōu)秀方法作為基準模型,下面對各基準模型進行簡單介紹:
(1)CAEVO[7]:由Chambers等人于2014年提出的一種基于篩網(wǎng)式結(jié)構(gòu)的方法,該結(jié)構(gòu)中各個篩網(wǎng)由機器學習與規(guī)則匹配方法組合而成。
(2)Cheng等人方法[12]:由Cheng等人于2017年提出的一種基于Bi-LSTM的方法,該方法沒有使用傳統(tǒng)的事件句文本作為輸入,轉(zhuǎn)而使用事件句的最短依存路徑作為輸入。
(3)GCL[8]:由Meng等人于2018年提出的一種基于類神經(jīng)圖靈機的方法,該方法使用類神經(jīng)圖靈機來存儲已識別的事件信息,并使用這些信息作為先驗知識指導后續(xù)事件時序關(guān)系的識別。
(4)Joint Structured[9]:由Han等人于2019年提出的一種事件識別與事件時序關(guān)系識別的聯(lián)合訓練方法,通過共享事件編碼層來豐富事件表示,增強模型理解能力,還利用支持向量機(Support Vector Machine,SVM)降低模型前后矛盾的問題。
(5)CTRL-PG[11]:由Zhou等人于2021年提出的一種面向特定領域的事件時序關(guān)系方法,提出在損失函數(shù)中加入基于概率軟邏輯的正則化項。
(6)CE-TRE[15]:由Wang等人于2020年提出的一種篇章級事件時序關(guān)系抽取方法,使用自注意力機制模型融入篇章中其他事件對信息,豐富事件特征。
3.4.1 驗證本文模型有效性
表4列出了本文模型與基準模型在TB-Dense數(shù)據(jù)庫上的F1值比對結(jié)果。
表4 不同模型在TB-Dense數(shù)據(jù)集上的實驗
由表4可以看出,本文模型相較于CEAVO有著17.4%的提升,證明該任務中深度學習方法優(yōu)于機器學習方法。與同樣使用事件依存路徑的Cheng等人方法相比,本文模型在F1值上提升了13.9%,這是因為Cheng等人方法丟棄了大量的事件上下文,而本文使用事件的最短依存路徑輔助事件句文本的編碼,幫助模型總結(jié)單詞搭配對于時序關(guān)系的影響。本文方法與CTRL-PG都涉及外部知識輔助模型識別,CTRL-PG將領域知識轉(zhuǎn)換為規(guī)則的形式,進而通過線性規(guī)劃來優(yōu)化識別效果。相較于固定的規(guī)則,本文將事件依存路徑以文本形式加入,并通過門控計算事件特征,模型通過學習與總結(jié)事件句的依存關(guān)系,提高了文本理解能力與可解釋性。與其余深度學習方法相比本文方法均具有優(yōu)勢,可以說明本文模型的有效性。
3.4.2 模型消融實驗
為探究模型中各部分對于識別能力的影響,本文設置兩個基線方法來進行消融實驗,實驗結(jié)果見表5。
(1)基線方法1:在本文模型中去除事件依存路徑與特征門控,即在數(shù)據(jù)預處理時將事件依存路徑視為空,將語義特征與句法特征拼接并視作最終的事件特征。
(2)基線方法2:在本文模型中去除門控機制,即在預處理階段中使用事件依存路徑作為外部知識,將語義特征與句法特征拼接并視作最終的事件特征。
由表5可以看出,從F1值上看,本文模型明顯優(yōu)于剩余方法?;鶞史椒?相較于基準方法1,在總體F1值上提高了2.4%,其原因在于基準方法2使用了事件依存路徑,增強了模型的句法分析能力。本文模型相較于基準方法2又有所提升,原因是門控機制能夠參考事件句文本來動態(tài)調(diào)整事件特征,增強了模型的魯棒性與識別能力。
表5 不同模型在TB-Dense數(shù)據(jù)集上的結(jié)果
3.4.3 探究句法信息對于模型的影響
為進一步探究加入事件路徑信息對模型的影響,本實驗將數(shù)據(jù)集細分為跨句事件對與同句事件對,研究在加入事件句特征前后,模型對兩種事件對識別效果的變化,實驗結(jié)果見表6。
表6 TB-Dense數(shù)據(jù)集中句內(nèi)與跨句事件對的F1值對比
從表6可看出,在句內(nèi)事件對方面,本文方法相較基線方法1在總體F1值上提升了5.1%,在各類別上均有一定提升,跨句事件對中也有著2.7%的提升,這是因為事件最短依存路徑后,模型能夠通過依存句法建立事件間的聯(lián)系。對比跨句事件對與句內(nèi)事件對的提升效果,可以看出句內(nèi)事件對的提升更加明顯,分析原因是當兩個事件觸發(fā)詞位于同一事件句時,依存句法容易建立事件對的聯(lián)系,而不同事件句之間差異較大,通過句法建立聯(lián)系相對困難,故跨句事件對的提升相對遜色。
3.4.4 實驗樣本分析
表7為TB-Dense數(shù)據(jù)集中的一個樣例,在加入事件依存路徑知識前,模型預測的結(jié)果是“Vague”,加入事件依存路徑后,模型能夠正確預測事件對的關(guān)系,兩條事件依存路徑分別是[has
表7 TB-Dense數(shù)據(jù)集的樣例
為在事件時序關(guān)系識別中將句法信息與文本信息結(jié)合,本文提出將事件依存路徑作為外部知識融入到編碼過程中。將事件依存路徑視作一個連續(xù)表示序列,通過使用標志位的方法將外部知識嵌入到文本序列中,構(gòu)建該序列幫助模型捕捉事件句中的句法信息;提取句向量以建立事件對間的聯(lián)系,同時使用Bi-LSTM對事件句的語義進行編碼;最后利用門控機制來對不同特征進行約束,豐富模型可提取的事件句文本特征。在TB-Dense數(shù)據(jù)集上的實驗結(jié)果表明,該方法可以顯著改善模型在事件時序關(guān)系識別模型上的性能。下一步研究擬在跨文檔的時序關(guān)系任務中,嘗試識別同一主題下不同文檔中的事件時序關(guān)系。