【論文解讀 AAAI 2018|GCN-ED】Graph Convolutional Networks with Argument-Aware Pooling for Event Detection

論文題目: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可視爲多類別分類問題,目的就是爲文檔中的每個事件觸發器候選詞預測事件標籤。標籤是預先定義的LL個事件類型中的一種,或者是NONE,表示該詞不是一個候選的觸發詞。ED問題就轉換爲了(L+1)(L+1)類的分類問題

長度爲nn的句子表示爲:w=w1,w2,...,wnw=w_1, w_2,..., w_n。使用 BIO 模式對句子進行序列標註,爲每個單詞wiw_i分配一個實體類型標籤eie_i,例如圖1所示。

本文的用於ED的GCN由三個模塊組成:

(1)編碼模塊:將輸入句子編碼成特徵矩陣,作爲GCN的輸入;

(2)圖卷積模塊:在句子對應的句法依存圖上進行卷積操作;

(3)池化模塊:基於句中實體的位置,聚合卷積向量,用於ED。


3.1 編碼模塊

編碼模塊通過級聯句子中的每個token wiw_i詞嵌入位置嵌入實體類型嵌入,將wiw_i轉化爲實值向量xix_i

(1)詞嵌入:捕獲了wiw_i的句法和語義信息

(2)位置嵌入waw_a爲當前詞,將wiw_iwaw_a的相對距離(例如 iai-a)編碼成實值向量,將這個向量作爲wiw_i的額外表示。編碼過程是通過在lookup table中查找實現的。

(3)實體類型嵌入:和位置嵌入相似,我們維護一個實體類型嵌入的table,將tokens的實體類型標籤(BIO標籤)映射爲實值的隨機向量。通過查表得到wiw_i的實體類型標籤eie_i的嵌入向量。

編碼模塊得到了句子的向量表示X=x1,x2,...,xnX=x_1, x_2, ..., x_n作爲圖卷積模塊的輸入


3.2 圖卷積模塊

3.2.1 一些定義

  • 將句子ww的句法依存樹表示成G={V,E}\mathcal{G}={\{\mathcal{V}, \mathcal{E}}\}

  • V\mathcal{V}中有nn個節點,V={w1,w2,...,wn}\mathcal{V}={\{w_1, w_2, ..., w_n}\}

  • E\mathcal{E}中的有向邊(ei,rj)(e_i, r_j)上有一個依存標籤L(wi,wj)L(w_i, w_j),表示不同的句法關係。例如圖1中有:L("fired","officer")=nsubjpassL("fired", "officer")=nsubjpass


3.2.2 引入自環和反向邊

爲了在卷積過程中引入節點自身的信息,在原始圖的基礎上爲每個節點添加一個自環(self loop),還爲每條邊添加了一個反向邊。添加這兩種邊之後的邊集合變爲如下:

添加的這兩類邊也是有向的且有標籤的。自環的標籤爲“LOOP”反向邊的標籤是在原始邊標籤的基礎上添加了**“’”**,如下所示:

於是原始的圖被轉化爲G={V,E}\mathcal{G}^{'}={\{\mathcal{V}, \mathcal{E}^{'}}\}在這個圖上進行卷積操作


3.2.3 圖卷積

節點uGu\in \mathcal{G}^{'}(對應於輸入句子中的一個單詞wiw_i)在第(k+1)(k+1)層的卷積向量hu(k+1)h^{(k+1)}_u計算如下:

其中Nu\mathcal{N}_u表示節點uu在圖G\mathcal{G}^{'}中的鄰居。WL(u,v)kRdk+1×dk,bL(u,v)kRdk+1W^k_{L(u, v)}\in \mathbb{R}^{d_{k+1}\times d_k}, b^k_{L(u, v)}\in \mathbb{R}^{d_{k+1}}分別表示邊(u,v)(u,v)的權重矩陣和偏置。

爲了方便,作者爲所有的圖卷積層的設定相同數量的隱藏層單元,即d1=d2=...=dd_1=d_2=...=d。使用編碼模塊得到的向量表示初始化hu0h^0_u

圖卷積操作也就是對目標節點鄰居信息進行聚合,所以如果不引入自環(self loop)的話就無法聚合節點自身的信息


(1)減少參數量

等式(1)假定不同的邊標籤L(u,v)L(u, v)有不同的權重矩陣WL(u,v)kW^k_{L(u, v)},這個參數量是很大的。

爲了減少參數量,作者只維護三種類型的標籤type(u,v)type(u, v)1)E\mathcal{E}中的原始邊2)自環3)E\mathcal{E}^{'}中的反向邊。因此根據邊(u,v)(u, v)的標籤,每個卷積層只有三個不同的參數矩陣WL(u,v)kW^k_{L(u, v)}

(2)爲邊賦權重

節點的鄰居對該節點的重要性不同,所以爲不同的鄰居賦予不同的權重

例如圖1中第二次出現的“fired”在句法依存圖上有“officer, was, Tuesday”三個一階鄰居。其中“officer, was”對決定“fired”是End-Position類型事件的觸發詞有着重要作用,“Tuesday”沒有提供什麼信息。

因此,對於第kk層卷積,我們爲每個節點uu的一階鄰居邊(u,v)(u,v)計算權重s(u,v)ks^k_{(u, v)},以權衡該鄰居對ED的重要性:

根據式(3)和式(4),我們將式(1)重寫爲如下的形式:

可以看出權重值s(u,v)ks^k_{(u, v)}是直接交給神經網絡去優化了。

作者提出,權重值s(u,v)ks^k_{(u, v)}的引入有助於減輕錯誤的句法邊對模型的影響


(3)使用LSTM抽象出初始表示

一層GCN只能捕獲到一階鄰居的信息,KK層GCN可以捕獲到K-hop的鄰居信息。但是KK值過小時,就不能捕獲到在句法依存圖上相隔較遠的單詞間的依賴關係;KK值過大時,會對上下文信息進行冗餘的建模,可能不能捕獲距離較短的單詞間的依賴關係。

因此作者提出,先使用BiLSTM抽象出初始的向量表示xix_i,然後再輸入給GCN。

具體的方法是,在向量表示(x1,x2,...,xn)(x_1, x_2,...,x_n)上進行向前和向後的LSTM,生成前向和後向的隱層向量序列:(r1,r2,...,rn)(\vec{r_1}, \vec{r_2},..., \vec{r_n})(r1,r2,...,rn)(\overleftarrow{r_1}, \overleftarrow{r_2},...,\overleftarrow{r_n})。然後將兩個向量拼接,得到ri=[ri,ri]r_i=[\overrightarrow{r_i}, \overleftarrow{r_i}]用新得到的向量r1,r2,...,rnr_1, r_2, ..., r_n替換等式(2)中的x1,x2,...,xnx_1, x_2,..., x_n,以用於式(4)和式(5)中的計算

使用BiLSTM得到初始化的表示作爲GCN的輸入,實現了在使用較少層數的GCN的情況下,自適應地整合了單詞間的較長依賴信息(long-range dependencies)。


3.3 池化模塊

圖卷積模塊得到了卷積向量表示:hw1K,hw2K,...,hwnKh^K_{w_1}, h^K_{w_2}, ..., h^K_{w_n}。池化模塊的目的是:聚合這些卷積向量,生成向量表示vEDv^{ED}。然後將vEDv^{ED}作爲分類層的輸入。

作者回顧瞭如下的三種池化操作

(1)Anchor Pooling(ANCHOR)

vEDv^{ED}設爲當前詞waw_a的向量表示,即vED=hwaKv^{ED}=h^K_{w_a}。也就是說對哪個token進行預測,就只保留它對應的特徵向量,捨棄其他token的特徵向量。

(2)Overall Pooling(OVERALL)

對向量序列hw1K,hw2K,...,hwnKh^K_{w_1}, h^K_{w_2}, ..., h^K_{w_n}按元素取最大值,得到vEDv^{ED}。即vED=max_elementwise(hw1K,hw2K,...,hwnK)v^{ED}=max\_element-wise(h^K_{w_1}, h^K_{w_2}, ..., h^K_{w_n})

(3)Dynamic Pooling(DYNAMIC)

將向量序列基於當前詞waw_a的位置分成兩部分(hw1K,hw2K,...,hwaK)(h^K_{w_1}, h^K_{w_2}, ..., h^K_{w_a})(hwa+1K,hwa+2K,...,hwnK)(h^K_{w_{a+1}}, h^K_{w_{a+2}}, ..., h^K_{w_n})。然後對這兩個序列分別使用element-wise max操作,再將其拼接得到vEDv^{ED}

即,vED=[max_elementwise(hw1K,hw2K,...,hwaK),max_elementwise(hwa+1K,hwa+2K,...,hwnK)]v^{ED}=[max\_element-wise(h^K_{w_1}, h^K_{w_2}, ..., h^K_{w_a}), max\_element-wise(h^K_{w_{a+1}}, h^K_{w_{a+2}}, ..., h^K_{w_n})]


這些方法不能有效利用句中實體的向量表示。然而,這些實體的向量表示中編碼了重要信息,有助於提升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 2005TAC KBP 2015數據集上進行了實驗,取得了state-of-the-art的效果。

未來工作:使用句法結構進行事件抽取聯合模型的研究(事件檢測和參數預測);將GCN模型應用於其他的信息抽取任務,例如關係抽取、實體鏈接等。


模型的亮點在於將GCN方法引入到了ED任務中,有效地利用了句子中的句法依存結構。並且還考慮到了實體類型的信息,在編碼時就對實體類型進行了編碼。在池化操作中進一步增強了實體向量表示的影響。

不足之處在於,由於參數量的限制沒有考慮到不同的句法關係標籤,只是將關係分爲了:原始邊、自環、反向邊三類。

這一問題在Event Detection with Relation-Aware Graph Convolutional Networks中得到了解決,並超越了本文模型的效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章