論文題目:Graph Convolutional Networks with Argument-Aware Pooling for Event Detection
論文來源:AAAI 2018
論文鏈接:https://www.aaai.org/ocs/index.php/AAAI/AAAI18/paper/view/16329/16155
關鍵詞:事件檢測,GCN,句法依存結構
1 摘要
現有的用於事件檢測的神經網絡模型只考慮了句子的序列表示,沒有考慮句子中的句法表示。
本文作者提出了基於句法依存樹的CNN,來進行事件檢測(ED)。作者還提出了新的 pooling 方法,該方法依賴於實體提及(entity mentions)來聚合卷積向量。
實驗表明了“基於句法依存的CNN”和“基於實體提及的pooling方法”在ED任務上的有效性,並實現了state-of-the-art。
2 引言
(1)ED的介紹及其挑戰性
ED的目的就是對事件觸發器(event trigger)進行定位並將其分類。本文所涉及的情況是在一個句子中進行ED,句中有一個事件觸發器與該事件關聯。事件觸發器通常是單個的動詞或名詞。
如圖1所示,ED要能檢測出第一次出現的 “fired” 是事件類型 Attack 的觸發詞,第二次出現的 “fired” 是事件類型 End-Position 的觸發詞。
這個例子也可以看出ED的挑戰性:(1)同樣的單詞依據不同的上下文,可能是不同類型事件的觸發器;(2)相同類型的事件可能有不同的觸發詞(例如 killed, shot, beat都是Attack類型事件的觸發詞)。
(2)現有方法的缺點
1)連續的CNN
現有的state-of-the-art的ED方法是使用CNN的方法。通常是對句子連續的 k-grams 進行卷積操作,生成可用於ED的隱層結構特徵。
但是這種方法不能捕獲到非連續的 k-grams 信息,這些 k-grams 可以將句子中相隔較遠的單詞連接起來。在某些情況下,這些非連續的 k-grams 爲識別事件觸發器提供了關鍵信息。
如圖1的例子所示,非連續的 3-grams “officer was fired” 可以直接識別出第二次出現的 “fired” 是 End-Position 事件的觸發詞。
2)非連續的CNN(NCNN)
有學者提出了非連續的CNN模型,對句子中非連續的 k-grams 進行卷積操作,該方法在ED任務上實現了 state-of-the-art。
但是,由於NCNN考慮到了所有可能的非連續 k-grams,因此可能對不必要的噪聲信息也進行了建模,這就可能會損害模型的性能。
而且NCNN對所有非連續的k-grams使用了max-pooling進行信息聚合。由於非連續的k-grams 可能包含不相關的或誤導的單詞序列,max-pooling可能會關注這些有誤導信息的k-grams,然後在最終的預測產生錯誤的結果。
(3)作者提出
1)在句法依存圖上進行GCN
爲了避免上述問題,本文作者提出在由句子構成的句法依存圖上進行卷積操作(GCN),以進行ED。圖1中表示了例句的句法依存樹。
在句法依存樹上進行卷積操作就可以關注與當前節點最相關的單詞,避免對不相關的單詞/k-grams的關注。
GCN得到每個單詞的卷積向量來進行ED的預測任務,即預測該詞是否是事件觸發詞,對應什麼類型的事件。
然而,卷積向量傾向於只保留和當前詞最相關的鄰居的信息(局部信息),也就是在依存樹上的一階鄰居,它不能編碼句子中的實體信息。
實體提及(例如 實體類型),尤其是事件的參與者(參數)對ED提供了重要的信息。例如圖1例句中的兩個 “fired” 應該在句法相關的上下文中分別和實體 “car”、“officer” 相對應。
2)pooling
爲了解決上述不能編碼實體信息的問題,作者提出在當前詞的卷積向量和句中的實體提及(entity mentions)上進行pooling操作。這一操作將卷積向量聚合,得到單個的向量表示,以用於事件類型的預測。這使得實體的信息得以被利用,有助於ED效果的提升。
作者進行了人工標註實體和自動識別實體兩種方法,對本文提出的pooling方法進行評估。
(4)貢獻
-
第一個將句法信息整合到基於神經網絡方法的ED,結果顯示了GCN對ED任務的有效性;
-
基於實體提及,提出用於ED的pooling方法;
-
模型在ED的數據集上實現了state-of-the-art。
3 模型
ED可視爲多類別的分類問題,目的就是爲文檔中的每個事件觸發器候選詞預測事件標籤。標籤是預先定義的個事件類型中的一種,或者是NONE,表示該詞不是一個候選的觸發詞。ED問題就轉換爲了類的分類問題。
長度爲的句子表示爲:。使用 BIO 模式對句子進行序列標註,爲每個單詞分配一個實體類型標籤,例如圖1所示。
本文的用於ED的GCN由三個模塊組成:
(1)編碼模塊:將輸入句子編碼成特徵矩陣,作爲GCN的輸入;
(2)圖卷積模塊:在句子對應的句法依存圖上進行卷積操作;
(3)池化模塊:基於句中實體的位置,聚合卷積向量,用於ED。
3.1 編碼模塊
編碼模塊通過級聯句子中的每個token 的詞嵌入、位置嵌入和實體類型嵌入,將轉化爲實值向量。
(1)詞嵌入:捕獲了的句法和語義信息
(2)位置嵌入:爲當前詞,將到的相對距離(例如 )編碼成實值向量,將這個向量作爲的額外表示。編碼過程是通過在lookup table中查找實現的。
(3)實體類型嵌入:和位置嵌入相似,我們維護一個實體類型嵌入的table,將tokens的實體類型標籤(BIO標籤)映射爲實值的隨機向量。通過查表得到的實體類型標籤的嵌入向量。
編碼模塊得到了句子的向量表示:,作爲圖卷積模塊的輸入。
3.2 圖卷積模塊
3.2.1 一些定義
-
將句子的句法依存樹表示成
-
中有個節點,。
-
中的有向邊上有一個依存標籤,表示不同的句法關係。例如圖1中有:。
3.2.2 引入自環和反向邊
爲了在卷積過程中引入節點自身的信息,在原始圖的基礎上爲每個節點添加一個自環(self loop),還爲每條邊添加了一個反向邊。添加這兩種邊之後的邊集合變爲如下:
添加的這兩類邊也是有向的且有標籤的。自環的標籤爲“LOOP”,反向邊的標籤是在原始邊標籤的基礎上添加了**“’”**,如下所示:
於是原始的圖被轉化爲,在這個圖上進行卷積操作。
3.2.3 圖卷積
節點(對應於輸入句子中的一個單詞)在第層的卷積向量計算如下:
其中表示節點在圖中的鄰居。分別表示邊的權重矩陣和偏置。
爲了方便,作者爲所有的圖卷積層的設定相同數量的隱藏層單元,即。使用編碼模塊得到的向量表示初始化:
圖卷積操作也就是對目標節點的鄰居信息進行聚合,所以如果不引入自環(self loop)的話就無法聚合節點自身的信息。
(1)減少參數量
等式(1)假定不同的邊標籤有不同的權重矩陣,這個參數量是很大的。
爲了減少參數量,作者只維護三種類型的標籤:1)中的原始邊;2)自環;3)中的反向邊。因此根據邊的標籤,每個卷積層只有三個不同的參數矩陣:
(2)爲邊賦權重
節點的鄰居對該節點的重要性不同,所以爲不同的鄰居賦予不同的權重。
例如圖1中第二次出現的“fired”在句法依存圖上有“officer, was, Tuesday”三個一階鄰居。其中“officer, was”對決定“fired”是End-Position類型事件的觸發詞有着重要作用,“Tuesday”沒有提供什麼信息。
因此,對於第層卷積,我們爲每個節點的一階鄰居邊計算權重,以權衡該鄰居對ED的重要性:
根據式(3)和式(4),我們將式(1)重寫爲如下的形式:
可以看出權重值是直接交給神經網絡去優化了。
作者提出,權重值的引入有助於減輕錯誤的句法邊對模型的影響。
(3)使用LSTM抽象出初始表示
一層GCN只能捕獲到一階鄰居的信息,層GCN可以捕獲到K-hop的鄰居信息。但是值過小時,就不能捕獲到在句法依存圖上相隔較遠的單詞間的依賴關係;值過大時,會對上下文信息進行冗餘的建模,可能不能捕獲到距離較短的單詞間的依賴關係。
因此作者提出,先使用BiLSTM抽象出初始的向量表示,然後再輸入給GCN。
具體的方法是,在向量表示上進行向前和向後的LSTM,生成前向和後向的隱層向量序列:和。然後將兩個向量拼接,得到。用新得到的向量替換等式(2)中的,以用於式(4)和式(5)中的計算:
使用BiLSTM得到初始化的表示作爲GCN的輸入,實現了在使用較少層數的GCN的情況下,自適應地整合了單詞間的較長依賴信息(long-range dependencies)。
3.3 池化模塊
圖卷積模塊得到了卷積向量表示:。池化模塊的目的是:聚合這些卷積向量,生成向量表示。然後將作爲分類層的輸入。
作者回顧瞭如下的三種池化操作:
(1)Anchor Pooling(ANCHOR)
將設爲當前詞的向量表示,即。也就是說對哪個token進行預測,就只保留它對應的特徵向量,捨棄其他token的特徵向量。
(2)Overall Pooling(OVERALL)
對向量序列按元素取最大值,得到。即。
(3)Dynamic Pooling(DYNAMIC)
將向量序列基於當前詞的位置分成兩部分:和。然後對這兩個序列分別使用element-wise max操作,再將其拼接得到。
即,
這些方法不能有效利用句中實體的向量表示。然而,這些實體的向量表示中編碼了重要信息,有助於提升ED的性能。
ANCHOR忽視了entity mentions的表示向量;OVERALL和DYNAMIC同等地考慮了entity mentions的表示和其他表示,若entity mentions的表示向量中的元素值比其他單詞表示向量的小,則就不能獲取到實體的信息。
(4)作者提出
因此,作者依賴於entity mentions的表示向量來進行ED的池化操作。這一方法稱爲entity mention-based pooling(ENTITY):
ENTITY的思想是:輸入序列有對應的實體的標籤,我們只保留待預測token以及具有特定實體類別的token(也就是捨棄類別爲‘O’的token),將這些保留下來的token對應的輸出特徵求max pooling。
本文模型的流程總結如下:
1、使用編碼模塊,將詞嵌入、位置嵌入和實體類型嵌入級聯,得到初始化的表示向量;
2、對初始化的表示向量進行BiLSTM操作;
3、在句子對應的句法依存樹上進行圖卷積,上一步的輸出作爲圖卷積的輸入;
4、基於entity mentions的位置,對上一步卷積輸出的向量表示進行池化操作;
5、將池化後的向量作爲分類層的輸入,進行分類預測。
4 實驗
(1)數據集:ACE 2005和TAC KBP 2015
(2)實驗任務:事件檢測
(3)對比方法:
-
感知機
-
Cross-Entity
-
Framenet
-
CNN
-
DM-CNN:dynamic multi-pooling CNN模型
-
DM-CNN+:自動獲取標註數據的dynamic multi-pooling CNN模型
-
B-RNN:雙向RNN模型
-
NCNN:非連續的CNN模型
-
ATT:基於attention的模型
-
ATT+:使用Framenet中標註數據的基於attention的模型
-
CNN-RNN
(4)實驗結果
使用ENTITY池化方法,在ACE 2005數據集上的實驗結果:
在ACE 2005數據集上進行實驗,使用不同池化方法的實驗結果:
和state-of-the-art方法的對比結果:
使用和表2中相同的超參數在TAC KBP 2015數據集上進行實驗:
5 總結
本文提出了用於ED的神經網絡模型,該模型在句法依存樹上進行圖卷積,並且使用了entity mention-guided的池化。
在ACE 2005和TAC KBP 2015數據集上進行了實驗,取得了state-of-the-art的效果。
未來工作:使用句法結構進行事件抽取聯合模型的研究(事件檢測和參數預測);將GCN模型應用於其他的信息抽取任務,例如關係抽取、實體鏈接等。
模型的亮點在於將GCN方法引入到了ED任務中,有效地利用了句子中的句法依存結構。並且還考慮到了實體類型的信息,在編碼時就對實體類型進行了編碼。在池化操作中進一步增強了實體向量表示的影響。
不足之處在於,由於參數量的限制,沒有考慮到不同的句法關係標籤,只是將關係分爲了:原始邊、自環、反向邊三類。
這一問題在Event Detection with Relation-Aware Graph Convolutional Networks中得到了解決,並超越了本文模型的效果。