1.事件抽取介紹:
事件在不同領域中有着不同的含義,對於事件目前還沒有統一的定義。在IE ( Information Extraction) 中,事件是指在某個特定的時間片段和地域范圍內發生的,由一個或多個角色參與,由一個或多個動作組成的一件事情,一般是句子級的,事件抽取技術是從非結構化的信息中抽取出用戶感興趣的事件,並以結構化的形式呈現給用戶。根據ACE2005 評測,組成事件的各元素包括: 觸發詞(event trigger)、事件類型(event type)、論元(event argument)及論元角色(argument role)。事件抽取任務可分解為4 個子任務: 觸發詞識別、事件類型分類、論元識別和角色分類任務。其中,觸發詞識別和事件類型分類可合並成事件識別任務。論元識別和角色分類可合並成論元角色分類任務。事件識別判斷句子中的每個單詞歸屬的事件類型,是一個基於單詞的多分類任務。角色分類任務則是一個基於詞對的多分類任務,判斷句子中任意一對觸發詞和實體之間的角色關系。
2.摘要:
ACE事件提取任務的傳統方法主要依靠精心設計的功能和復雜的自然語言處理(NLP)工具。這些傳統方法缺乏通用性,需要大量的人工,並且易於出現錯誤傳播和數據稀疏性問題。本文提出了一種新穎的事件提取方法,其目的是在不使用復雜的NLP工具的情況下自動提取詞匯級和句子級特征。本文引入了一種詞表示模型來捕獲詞的有意義的語義規律,並采用基於卷積神經網絡(CNN)的框架來捕獲句子級線索。但是CNN只能捕獲句子中最重要的信息,並且在考慮多個事件句子時可能會丟失有價值的事實。本文提出了一種動態多池化卷積神經網絡(DMCNN),它根據事件trigger和argument使用一個動態多池化層來保留更多關鍵信息,實驗結果證明本文的方法比其他最好的方法(SOTA)都要明顯地好。
3.任務與創新:
本篇論文將事件抽取分為兩個子任務:1.trigger classification:利用DMCNN將句子中trigger word識別出來,若句子中存在觸發詞則進行第二步;2.argument classification:利用一個相似的DMCNN去識別arguments,並且識別出這些arguments對應的roles。
本文提出了一種新穎的事件提取框架,該框架可以自動從純文本中引入詞匯級和句子級功能,而無需復雜的NLP預處理;設計了一個動態多池化卷積神經網絡(DMCNN),目的在於在捕獲句子中更有價值的信息以進行事件提取;在廣泛使用的ACE2005事件提取數據集上進行了實驗,實驗結果表明本文的方法優於其他最新方法。
4.模型介紹:
圖片一:argument classification體系結構。其中觸發詞:fired,候選論元:cameraman
本篇論文兩個子任務的模型結構是一樣的,任務二argument classification相比於任務一有更多的特征信息,故文中主要對任務二的情況進行了記錄,后面會闡述兩個任務的DMCNN的不同。
- embedding learning和lexical-level feature representation
本文以無監督的方式得到詞的嵌入向量,具體是用Skip-gram在NYT預料上訓練得到,得到所有詞的embedding后,進行觸發詞的向量、候選論元的向量、以及他們的左右相鄰的詞向量首位逐個拼接得到lexical-level feature representation,這也是模型的input之一。
- sentence-level feature extraction與卷積、Dynamic Multi-Pooling:
句子級的向量使用了三種向量拼接:Context-word feature(上下文詞向量,維度為dw,模型中的例子維度為4)、Position feature(當前詞語與預測trigger以及候選argument之間的相對距離的向量,維度為dp,文中沒有具體展開講解如何求解這個PF,但是可以知道的是采用的是相對位置信息,可以簡單地認為就是位置距離:以 cameraman 為例,則a:-1,cameraman:0,died:1,when:2,an:3,等,也可以參考transformer中的PE編碼方式)、Event-type feature(事件類型編碼的向量,維度為de),最后三種向量拼接后形成一個新的向量,其中每一個詞向量的維度為:d=dw+dp*2+de,若句子的長度為n則整個拼接向量的大小就是n*d。
卷積部分,設置h個詞大小的窗口,filter大小就為h*d,本文實驗部分選取的參數為:h為3,卷積核數為300,步長為1。多個filter與這個n*d大小的矩陣進行卷積后得到對應個數feature maps,結構語義信息被壓縮到這些 feature map 中,不同的filter可能學習到不同的信息,比如一個 filter學 compositional feature,一個學習詞依賴,一個學習構詞法等。對於m個filter$( W = w1,w2,...,wm)$,則卷積運算可以表示為:$c_{ji}= f\left ( w_{j}\cdot x_{i:i+h-1}+b_{j} \right )$,卷積的結果是一個矩陣C,大小為$m*(n-h+1)$。
動態池化部分是論文的一個創新之處,傳統的pooling策略有:max pooling即原來最大池化將一個經過卷積之后生成的特征序列池化成1個值,和average pooling ,而動態多池化操作則是使用候選論元以及觸發詞將每個特征圖分割為3個部分(如上文模型結構圖中,特征序列被“cameraman”和“fired”分成三個部分),然后每段分別做最大池化,與Chunk Max-Pooling類似,池化的過程公示為:$p_{ji}= max\left ( c_{ji} \right )$
最后將所有pji連接起來形成一個向量$P∈R(3m)$,這個向量就是sentence-level feature extraction,也是整個模型的第二個input。
- argument classifier output:
將上面所講的兩個input進行拼接,得到一個新的特征向量F,然后過一個全連接層+softmax做分類,分類的結果包括各個 argument role 和 none role,為了計算每個argument role的置信度,將特征向量F大小$(3m + dl)$(其中m是feature map的數目,dl是lexical-level feature representation的維數)輸入到分類器。
其中$Ws∈R[n1×(3m+dl)]$是變換矩陣,n1是argument role的個數,O就是最終的output。
- Trigger classification :
觸發詞的分類也用同樣的模型架構,但是輸入少了EF,dynamic pooling 分割時候也只根據當前 trigger candidate 進行分割,其他的都一樣,這里不再贅述。
- 訓練過程
本文實驗中將argument classification階段的所有參數定義為$θ=(E,P F1,P F2,EF,W,b,WS,bs)$。具體來說,E是詞嵌入,PF1和PF2是位置嵌入,EF是事件類型的嵌入,W和b是filter的參數,Ws和bs是輸出層參數。損失函數為交叉熵,采用隨機梯度下降來更新參數θ,優化算法為AdaDelta,優化算法超參 𝜌為0.95,ε設置為$1e^-6$。
- 結果對比
從結果可以看出,本文提出的具有自動學習功能的DMCNN模型在所有比較方法中均實現了最佳性能。DMCNN可以將最先進的F1(Li et al,2013)提高到1.6%,而將自變量角色分類提高0.8%。這證明了所提出方法的有效性。
5.總結
這篇論文提出的Dynamic multi-pooling 可以有效解決 argument candidate 可能作為多個 trigger 的 argument 但是扮演不同 role 的問題,並且對特征輸入做的十分清晰,輸入特征比較完整,這篇文章對事件抽取比較有啟發性。
6.參考文獻
- http://www.nlpr.ia.ac.cn/cip/yubochen/yubochenPageFile/acl2015chen.pdf
- https://blog.csdn.net/muumian123/article/details/82258819
- https://www.jianshu.com/p/84fd666b1900
- Li Q , Ji H , Huang L . Joint Event Extraction via Structured Prediction with Global Features[C]// Meeting of the Association for Computational Linguistics. 2013.