張俊青,孔 芳
(蘇州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006)
事件抽取是當(dāng)前自然語言處理(natural language processing,NLP)領(lǐng)域的研究熱點(diǎn)之一,具有重要的理論及應(yīng)用價(jià)值,不僅推動(dòng)數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)等學(xué)科理論的發(fā)展,而且其研究成果被廣泛應(yīng)用于信息檢索等領(lǐng)域。事件抽取首先進(jìn)行事件識(shí)別,即判別給定句子是否表示事件描述,如果是,則對(duì)事件描述進(jìn)行類別的判定;識(shí)別出事件后再尋找事件的各個(gè)參與對(duì)象,并為他們分配相應(yīng)的語義角色。顯然,事件識(shí)別是事件抽取的基礎(chǔ),它的性能將直接影響后續(xù)事件參與對(duì)象的語義角色的識(shí)別。
具體而言,事件識(shí)別又包含兩個(gè)子任務(wù):事件觸發(fā)詞識(shí)別和事件類型確定。例如,給定句子,“Portillo acknowledged he had killed two of his former students.”事件觸發(fā)詞識(shí)別將識(shí)別出觸發(fā)詞“killed”觸發(fā)了一個(gè)事件,而事件類型確定過程則將該事件歸為“Life.Die”類別。基于事件識(shí)別的結(jié)果,后續(xù)事件論元的識(shí)別將進(jìn)一步識(shí)別出該“Die”事件的攻擊者是“Portillo”,受害者是“two of his former students”。
目前,事件識(shí)別所用的語料主要有Doddington等[1]使用的ACE數(shù)據(jù),Kim等[2]使用的BioNLP分享的生物醫(yī)療數(shù)據(jù)和Dubbin等[3]使用的TACKBP數(shù)據(jù)。事件抽取相關(guān)的研究方法主要分為基于特征的方法和基于詞表示的方法兩類。其中,基于特征抽取的研究工作,大多數(shù)學(xué)者是基于句子級(jí)別信息進(jìn)行事件抽取,代表性的工作有Ahn等[4]、Grishman等[5]、Li等[6]。然而,對(duì)于有些事件,只考慮句子級(jí)別信息很難判斷事件所屬的類型,于是部分學(xué)者把目光放轉(zhuǎn)向跨句子的事件推理,如Gupta等[7],Hong等[8],Liao等[9],以及跨文檔的事件推理,如Ji等[10]。近年來,深度學(xué)習(xí)在自然語言處理任務(wù)中表現(xiàn)優(yōu)異,眾多學(xué)者也開始專注基于詞表示方法的事件識(shí)別研究,代表性工作包括:Nguyen等[11]利用卷積神經(jīng)網(wǎng)絡(luò)來自動(dòng)學(xué)習(xí)一些特征完成觸發(fā)詞的識(shí)別;Chen等[12]在管道框架上,利用動(dòng)態(tài)多池化卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行事件抽??;Nguyen等[13]構(gòu)建雙向循環(huán)神經(jīng)網(wǎng)絡(luò),利用記憶單元捕獲論元和觸發(fā)詞之間的依賴關(guān)系,同時(shí)完成論元和觸發(fā)詞的抽取工作;Duan等[14]通過循環(huán)神經(jīng)網(wǎng)絡(luò)利用詞向量和文檔向量的方法提高事件識(shí)別的性能。
基于句子級(jí)別的事件識(shí)別[15-16],雖然有其可取之處,但忽略了文檔中的其他信息,限制了事件識(shí)別的性能。例如,給定句子,“Elop is the one that needs to go[注]從“ENG_DF_001471_20140717_G00A0FRCS”文檔中選取”?;诰渥蛹?jí)別的事件識(shí)別模型在識(shí)別該句子時(shí),由于信息不足,不能充分理解Elop是從公司離職的語意,難以把觸發(fā)詞“go”識(shí)別為End-Position事件。但如果充分考慮事件的上下文信息,比如該文檔主旨是Stephen Elop 從Microsoft離職,那么觸發(fā)詞“go”觸發(fā)的事件類型就比較容易判別了。
此外,語料統(tǒng)計(jì)分析發(fā)現(xiàn),相似的事件經(jīng)常出現(xiàn)在相同的文檔中,比如Attack,Injure,Die事件經(jīng)常出現(xiàn)在同一個(gè)文檔,但是很少和Transfer Money事件同時(shí)出現(xiàn)。換言之,一個(gè)文檔中發(fā)生的事件具有一種很強(qiáng)的聯(lián)系。
綜上所述,為了減少因抽取大量特征而消耗的時(shí)間與精力,并把文檔信息應(yīng)用于事件抽取中,本文針對(duì)事件識(shí)別任務(wù)展開,提出了一個(gè)序列到序列(Seq2Seq)的雙向循環(huán)神經(jīng)網(wǎng)絡(luò)模型,并在模型中引入注意力機(jī)制,對(duì)局部的詞、實(shí)體和全局的文檔信息進(jìn)行統(tǒng)一向量化。在KBP2016測(cè)試集上的實(shí)驗(yàn)證明了本文方法的有效性,實(shí)驗(yàn)結(jié)果表明,觸發(fā)詞識(shí)別的F1值達(dá)到了58.56%,比實(shí)驗(yàn)基準(zhǔn)1和基準(zhǔn)2分別提高了3.76%和2.60%,而事件類型判別的F1值達(dá)到了51.82%,比實(shí)驗(yàn)基準(zhǔn)1和基準(zhǔn)2分別提高了4.83%和1.19%。
根據(jù)TAC-KBP2016的定義,事件是發(fā)生的事情或?qū)е履撤N狀態(tài)的改變,共有8大類型和18個(gè)子類型,具體如表1所示。
表1 TACKBP2016數(shù)據(jù)集上定義的事件類型
下面引入KBP測(cè)評(píng)中與事件相關(guān)的術(shù)語。
實(shí)體:現(xiàn)實(shí)世界中一個(gè)對(duì)象或者一組對(duì)象。
觸發(fā)詞:可以清晰表達(dá)出事件發(fā)生的主要詞匯。
事件類型:事件所屬的類型。
真?zhèn)涡裕罕鎰e事件所屬的REALIS類別(Actual,Generic,Other)。
本文著重于事件識(shí)別任務(wù),具體包括事件觸發(fā)詞識(shí)別和事件類型確定兩個(gè)子任務(wù)。例如,針對(duì)句子“Portillo acknowledged he had killed two of his former students”,事件識(shí)別系統(tǒng)需要識(shí)別出觸發(fā)詞“killed”和其觸發(fā)的事件類型“Life.Die”。根據(jù)先前的工作[8],我們把類型分成18子類型和None類型。
本節(jié)將詳細(xì)地描述Seq2Seq模型。假設(shè)W=w1w2…wn代表句子,n代表句子的長(zhǎng)度,wi表示句子的第i個(gè)詞。E=e1e2…ek表示在該句子中的實(shí)體,k表示句子中實(shí)體的數(shù)量。本文將事件識(shí)別任務(wù)看作對(duì)觸發(fā)詞及其他詞的序列標(biāo)注問題,對(duì)于wi詞,對(duì)其分配子類型標(biāo)簽(18類之一)或None類型標(biāo)簽。
句向量是Seq2Seq模型的基礎(chǔ),本節(jié)將詳解句向量的構(gòu)建過程。將句子W編碼成向量X,X中包含如下四個(gè)方面信息:
(1)W中wi的詞向量,詞表示可以自動(dòng)學(xué)習(xí)詞之間隱藏的豐富特征,將從預(yù)訓(xùn)練好的詞向量中查找[注]https://github.com/stanfordnlp/GloVe。
(2)E中ej的實(shí)體向量,使用Stanford工具包[注]https://stanfordnlp.github.io/CoreNLP對(duì)句子進(jìn)行實(shí)體識(shí)別,向量隨機(jī)初始化。
(3)W中wi詞性向量,詞性是用Sanford工具包進(jìn)行抽取的,并采取隨機(jī)初始化向量的方法構(gòu)建詞性向量表。
(4)W的文檔向量,文檔還有句子之外其他的信息,并且一個(gè)文檔中所發(fā)生的事件總是相關(guān)的,比如Attack 、Die和Injure事件,很有可能發(fā)生在同一個(gè)文檔中。本文通過PV-DM模型[17]訓(xùn)練文檔向量,由使式(1)最大化所得:
(1)
其中,w1,w2,…,wn是文檔中包含的詞,wt-m,…,wt+m是wt的上下文,m的窗口大小為7,doc是包含訓(xùn)練數(shù)據(jù)的向量,與詞向量維度相同的隨機(jī)初始化向量。
預(yù)測(cè)的工作主要通過多元分類器完成,例如softmax算法,如式(2)所示。
(2)
式(2)中,ywi是詞wi非正則化的統(tǒng)一概率,計(jì)算方法如式(3)所示。
y=b+Uh(wt|wt -m,…,wt +m,doc)
(3)
式(3)中,b、U是softmax參數(shù),h是將wt|wt -m,…,wt +m,doc級(jí)聯(lián)或求平均得到。由于doc是共享的,每次訓(xùn)練中輸入都包含該向量,因此能表達(dá)文檔的主旨信息。
綜上可知,最終的輸入向量是由上述向量拼接組合而成,把句子W映射成向量X,作為Seq2Seq模型的輸入。
由于我們使用了BahdanauAttention[18]注意x機(jī)制的Seq2Seq網(wǎng)絡(luò)模型,輸出序列為式(4)。即隱藏狀態(tài)si、語義向量ci和時(shí)間i-1的輸出yi-1經(jīng)過非線性變換得到時(shí)間i的輸出yi。
P(yi|y1,…,yi-1,X)=g(yi-1,si,ci)
(4)
對(duì)于隱藏狀態(tài)si,經(jīng)隱藏狀態(tài)si-1、語義向量c和時(shí)間i-1的輸出yi-1非線性變換得到,如式(5)所示。
si=f(si -1,yi -1,ci)
(5)
圖1 輸入句子“The attack by insurgents occurred on Saturday”后,識(shí)別事件Conflict.Attack示意圖
隱藏狀態(tài)ci等于Tx個(gè)輸入向量與其權(quán)重相乘求和,具體如式(6)所示。
(6)
式(6)中權(quán)重向量αij由式(7)得到,式(7)中mij由式(8)得到,式(8)中函數(shù)a通常為非線性函數(shù)。
簡(jiǎn)而言之,相互獨(dú)立的四種向量拼接成輸入向量X,向量X進(jìn)入Seq2Seq模型中,注意力機(jī)制通過給四種向量不同的權(quán)重以表達(dá)句子不同成分對(duì)事件識(shí)別的影響,再經(jīng)過解碼階段得到相應(yīng)的序列類別,根據(jù)交叉熵得到預(yù)測(cè)與標(biāo)準(zhǔn)類別的損失值,同步更新權(quán)重。
參加KBP2016測(cè)評(píng)隊(duì)伍中,觸發(fā)詞識(shí)別F1值最高的為Mihaylov 和Frank[19]的模型,觸發(fā)詞分類F1值最高的為L(zhǎng)u和Ng[20]的模型;Yang[21]等將事件識(shí)別當(dāng)作序列化標(biāo)注任務(wù),在KBP2016測(cè)試集結(jié)果表明,其方法達(dá)到了先進(jìn)水平。因此,本文選擇了兩類基準(zhǔn)平臺(tái)。
基準(zhǔn)1Mihaylov 和Frank把事件觸發(fā)詞識(shí)別當(dāng)作序列化標(biāo)注任務(wù),使用詞、詞性與依存關(guān)系等構(gòu)建詞向量,作為雙向LSTM模型的輸入向量,通過softmax進(jìn)行標(biāo)簽分類,在KBP2016語料上觸發(fā)詞的識(shí)別F1值為54.80%。 Lu和Ng的UTD1模型先對(duì)訓(xùn)練集合測(cè)試集進(jìn)行詞性還原,把測(cè)試集中詞的詞性還原和訓(xùn)練集中詞的詞性還原相同的詞作為候選觸發(fā)詞;其次利用Stanford CoreNLP抽取候選觸發(fā)詞的語義依存關(guān)系,對(duì)于動(dòng)詞性候選觸發(fā)詞,提取該詞的主客體頭部信息;對(duì)于名詞性候選觸發(fā)詞,提取該詞的施事與受事頭部信息;最后把提取的信息作為k近鄰模型輸入特征,對(duì)候選觸發(fā)詞進(jìn)行識(shí)別與分類。在KBP2016語料上對(duì)觸發(fā)詞分類結(jié)果的F1值為46.99%。
基準(zhǔn)2Yang等首先使用最大池化的卷積神經(jīng)網(wǎng)絡(luò)獲得字表示,其次利用雙向循環(huán)神經(jīng)網(wǎng)絡(luò)獲得詞表示,最后通過CRF進(jìn)行推理獲得最終的標(biāo)注標(biāo)簽。他們的方法在KBP2016語料上進(jìn)行事件識(shí)別評(píng)估,獲得的觸發(fā)詞識(shí)別與分類的F1值分別為55.96%和50.63%。
本文使用的語料為官方提供的LDC2017E02語料集,包含TACKBP2014訓(xùn)練集與測(cè)試集,TACKBP2015訓(xùn)練集與測(cè)試集和TACKBP2016測(cè)試集。采用Mihaylov 和Frank[14]的訓(xùn)練集、驗(yàn)證集和測(cè)試集的劃分方法,把2014英文訓(xùn)練集與測(cè)試集、2015英文訓(xùn)練集當(dāng)作本文的訓(xùn)練集,2015英文測(cè)試集為驗(yàn)證集,2016英文測(cè)試集為測(cè)試集,實(shí)驗(yàn)具體的文檔和事件分布情況如表2所示。
表2 訓(xùn)練集、驗(yàn)證集與測(cè)試集所包含的文檔與18類事件
對(duì)于訓(xùn)練集中的事件句,我們采用BIO標(biāo)簽,B表示事件的開始,I表表示事件的內(nèi)部,O表示非事件,可以把事件觸發(fā)詞識(shí)別和事件的識(shí)別聯(lián)合抽取出來。比如輸入句子為W={The,attack,by,insurgents,occurred,on,Saturday},對(duì)應(yīng)的標(biāo)簽為Y={O,B-Conflict.Attack,O,O,O,O,O}
對(duì)于觸發(fā)詞和事件類型,本文采用P(準(zhǔn)確率)、R(召回率)和F1值的評(píng)價(jià)指標(biāo),并采用TAC-KBP2016組織者提供的官方評(píng)價(jià)腳本[注]http://cairo.lti.cs.cmu.edu/kbp/2016/event/Event-Mention-Detection-scoring-2016-v29 Official Event Nugget Detection and Coreference Scoring for TAC KBP 2016.進(jìn)行測(cè)評(píng)。值得注意的是,事件類型評(píng)價(jià)得分是基于觸發(fā)詞識(shí)別的錯(cuò)誤傳播的,若觸發(fā)詞觸發(fā)了兩種事件類型,評(píng)價(jià)指標(biāo)中應(yīng)含有這兩種事件類型。
例如,句子“the murder[Conflict.Attack,Life.Die]of John on Tuesday and Bill on Wednesday”,觸發(fā)詞“murder”觸發(fā)了“Conflict.Attack”和“Life.Die”兩種事件。因此,如果一個(gè)文檔中含有100個(gè)觸發(fā)詞,其中6個(gè)觸發(fā)詞觸發(fā)了兩種事件,在評(píng)價(jià)指標(biāo)中應(yīng)有106個(gè)觸發(fā)詞和其觸發(fā)的相應(yīng)事件類型。
我們首先關(guān)注本文提出方法在事件抽取任務(wù)上的有效性。
表3給出了本文方法取得的事件識(shí)別的性能。從表3的結(jié)果可以看到:
(1) 在詞向量的基礎(chǔ)上依次加入詞性向量、實(shí)體向量和文檔向量,最終識(shí)別的F1值逐漸提高。
(2) 從C組實(shí)驗(yàn)和D組實(shí)驗(yàn)對(duì)比結(jié)果推理可知,實(shí)體向量與文檔向量蘊(yùn)含的信息相當(dāng),在觸發(fā)詞識(shí)別和事件類型確定兩個(gè)子任務(wù)上得到的性能相當(dāng)。
(3) E組實(shí)驗(yàn)結(jié)果表明,事件觸發(fā)詞識(shí)別的F1值為58.56%,事件類型的F1值為51.82%。對(duì)比C和D組實(shí)驗(yàn)與E組實(shí)驗(yàn)的結(jié)果可以看到,相比C和D組式樣,E組實(shí)驗(yàn)在兩個(gè)子任務(wù)上都獲得了更好的準(zhǔn)確率、召回率和F1值,說明實(shí)體向量和文檔向量具有一定的互補(bǔ)性,實(shí)體向量包含事件局部的參與者信息,而文檔向量包含事件之間的關(guān)系,將兩者結(jié)合能更好地進(jìn)行事件的識(shí)別與分類。
總體而言,本文提出的Seq2Seq模型在KBP2016語料上觸發(fā)詞識(shí)別和事件類型分類F1值分別為58.56%和51.82%,特別地,引入的實(shí)體向量和文檔向量能有效提升系統(tǒng)性能。
表3 用KBP2016官方測(cè)評(píng)各組實(shí)驗(yàn)結(jié)果(%)
觸發(fā)詞識(shí)別結(jié)果事件類型識(shí)別結(jié)果PRF1PRF1詞向量(A)61.9048.8354.5951.8843.9747.60詞向量+詞性向量(B)64.4949.2455.8453.0744.5048.40詞向量+詞性向量+實(shí)體向量(C)64.7750.7056.8753.9444.7548.91詞向量+詞性向量+文檔向量(D)60.9953.0256.7351.0147.3249.09詞向量+詞性向量+實(shí)體向量+文檔向量(E)63.6454.2358.5654.0849.7551.82
在本文提出的Seq2Seq模型中我們引入了注意力機(jī)制,接著我們關(guān)注各種注意力機(jī)制對(duì)事件識(shí)別任務(wù)性能的影響。
表4給出了不同注意力機(jī)制下本文方法在事件抽取上的性能。從表4可知:
(1) 對(duì)比加入了BahadanauAttention機(jī)制的Seq2Seq模型和沒有注意力的模型,事件觸發(fā)詞識(shí)別的F1值提高了4.45%,事件類型識(shí)別的F1值提高了6.71%,說明注意力機(jī)制的引入能較大提升系統(tǒng)的F1值;
(2) 不同注意力的表現(xiàn)略有差別。使用BahadanauAttention機(jī)制與使用LuongAttention[22]機(jī)制,我們的Seq2Seq模型在觸發(fā)詞識(shí)別上的F1值性能提高了約0.64%,事件類型識(shí)別的F1值提高了約0.56%。
表4 各種attention實(shí)驗(yàn)對(duì)比結(jié)果(%)
觸發(fā)詞識(shí)別結(jié)果事件類型識(shí)別結(jié)果PRF1PRF1withoutattention52.4958.6254.1144.9445.2945.11BahadanauAttention63.6454.2358.5654.0849.7551.82LuongAttention64.0652.8657.9254.9148.0651.26
與基準(zhǔn)系統(tǒng)相比,本文給出的方法不論在觸發(fā)詞識(shí)別還是事件類型的識(shí)別上都取得了最佳的F1值。
表5給出了E組實(shí)驗(yàn)結(jié)果與實(shí)驗(yàn)基準(zhǔn)結(jié)果的詳細(xì)對(duì)比。從表5可以看到,本文觸發(fā)詞識(shí)別最終的結(jié)果比實(shí)驗(yàn)基準(zhǔn)1和基準(zhǔn)2分別提高了3.765%和2.60%,在事件類型分類上分別比實(shí)驗(yàn)基準(zhǔn)1和基準(zhǔn)2提高了約4.8%和1.2%,證明了該方法的有效性。UID1的k近鄰模型在提取候選觸發(fā)詞時(shí),只提取了和訓(xùn)練集中觸發(fā)詞詞性還原一致的詞,這導(dǎo)致忽略了其他詞性還原不一致的詞;而本文的模型是利用Seq2Seq模型自動(dòng)挖掘詞之間的聯(lián)系,能抽取和訓(xùn)練集中觸發(fā)詞詞義相近的詞,提高了觸發(fā)詞的識(shí)別F1值。Mihaylov和Frank模型只局限于句子信息,忽略了實(shí)體信息和文檔信息;實(shí)體含有部分事件類型的信息,文檔含有句子之外的其他信息,如相似類型的事件經(jīng)常出現(xiàn)在同一個(gè)文檔中,本文利用詞性、詞、實(shí)體和文檔的信息進(jìn)行事件識(shí)別,并且加入了注意力機(jī)制,從而提高了事件類型的識(shí)別F1值。句子中不同的成分對(duì)事件識(shí)別的重要性不同,Yang等的模型并沒有對(duì)詞的權(quán)重加以區(qū)分,而本文引入注意力機(jī)制,使得模型能區(qū)別不同詞在事件識(shí)別中的作用,賦以不同權(quán)值,從而提高了事件識(shí)別的性能。
表5 E組實(shí)驗(yàn)與基準(zhǔn)對(duì)比結(jié)果(%)
觸發(fā)詞識(shí)別結(jié)果事件類型識(shí)別結(jié)果PRF1PRF1基準(zhǔn)1UTD155.3653.8554.5947.6646.3546.99Mihaylov和Frank58.4151.6054.8048.4542.8145.45基準(zhǔn)2Yang等58.4353.6955.9652.3149.0650.63Seq2Seq(本文實(shí)驗(yàn)E)63.6454.2358.5654.0849.7551.82
最后我們進(jìn)一步分析了事件類型識(shí)別在各個(gè)不同類型上的識(shí)別性能。表6給出了E組實(shí)驗(yàn)在18類不同事件上的識(shí)別性能,可以看到部分事件類型識(shí)別的F1值仍然偏低,主要原因?yàn)椋?/p>
(1) 訓(xùn)練集規(guī)模不大,共有11 684個(gè)事件實(shí)例。
(2) 詞組形式觸發(fā)詞的訓(xùn)練數(shù)據(jù)不足,訓(xùn)練集中,詞組形式的觸發(fā)詞僅有251個(gè),導(dǎo)致詞組的觸發(fā)詞識(shí)別正確的僅有兩個(gè)。
(3) 事件類型分布不平衡,有些事件類型實(shí)例比較少,比如Transaction_Transaction類型的訓(xùn)練實(shí)例僅有42個(gè),所占比例為0.36%,從表6可知,Transaction_Transaction類型識(shí)別的F1值11%,遠(yuǎn)遠(yuǎn)低于事件類型識(shí)別的F1值51.82%。
表6 E組實(shí)驗(yàn)18類事件識(shí)別結(jié)果的F1值
為了提高事件識(shí)別的性能,本文給出了一種序列到序列的神經(jīng)網(wǎng)絡(luò)模型,并將詞、詞性、實(shí)體和文檔信息以向量的形式進(jìn)行表征,并通過注意力機(jī)制的引入更好地凸顯各個(gè)成分的重要性。在TACKBP2016語料上的實(shí)驗(yàn)結(jié)果證明了方法的有效性。