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

【论文解读 AAAI 2018|GCN-ED】Graph Convolutional Networks with Argument-Aware Pooling for Event Detection_第1张图片

论文题目: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 摘要
  • 2 引言
  • 3 模型
    • 3.1 编码模块
    • 3.2 图卷积模块
      • 3.2.1 一些定义
      • 3.2.2 引入自环和反向边
      • 3.2.3 图卷积
    • 3.3 池化模块
  • 4 实验
  • 5 总结


1 摘要

现有的用于事件检测的神经网络模型只考虑了句子的序列表示,没有考虑句子中的句法表示。

本文作者提出了基于句法依存树的CNN,来进行事件检测(ED)。作者还提出了新的 pooling 方法,该方法依赖于实体提及(entity mentions)来聚合卷积向量。

实验表明了“基于句法依存的CNN”和“基于实体提及的pooling方法”在ED任务上的有效性,并实现了state-of-the-art。


2 引言

(1)ED的介绍及其挑战性

ED的目的就是对事件触发器(event trigger)进行定位并将其分类。本文所涉及的情况是在一个句子中进行ED,句中有一个事件触发器与该事件关联。事件触发器通常是单个的动词或名词。

【论文解读 AAAI 2018|GCN-ED】Graph Convolutional Networks with Argument-Aware Pooling for Event Detection_第2张图片

图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可视为多类别分类问题,目的就是为文档中的每个事件触发器候选词预测事件标签。标签是预先定义的 L L L个事件类型中的一种,或者是NONE,表示该词不是一个候选的触发词。ED问题就转换为了 ( L + 1 ) (L+1) (L+1)类的分类问题

长度为 n n n的句子表示为: w = w 1 , w 2 , . . . , w n w=w_1, w_2,..., w_n w=w1,w2,...,wn。使用 BIO 模式对句子进行序列标注,为每个单词 w i w_i wi分配一个实体类型标签 e i e_i ei,例如图1所示。

本文的用于ED的GCN由三个模块组成:

(1)编码模块:将输入句子编码成特征矩阵,作为GCN的输入;

(2)图卷积模块:在句子对应的句法依存图上进行卷积操作;

(3)池化模块:基于句中实体的位置,聚合卷积向量,用于ED。


3.1 编码模块

编码模块通过级联句子中的每个token w i w_i wi词嵌入位置嵌入实体类型嵌入,将 w i w_i wi转化为实值向量 x i x_i xi

(1)词嵌入:捕获了 w i w_i wi的句法和语义信息

(2)位置嵌入 w a w_a wa为当前词,将 w i w_i wi w a w_a wa的相对距离(例如 i − a i-a ia)编码成实值向量,将这个向量作为 w i w_i wi的额外表示。编码过程是通过在lookup table中查找实现的。

(3)实体类型嵌入:和位置嵌入相似,我们维护一个实体类型嵌入的table,将tokens的实体类型标签(BIO标签)映射为实值的随机向量。通过查表得到 w i w_i wi的实体类型标签 e i e_i ei的嵌入向量。

编码模块得到了句子的向量表示 X = x 1 , x 2 , . . . , x n X=x_1, x_2, ..., x_n X=x1,x2,...,xn作为图卷积模块的输入


3.2 图卷积模块

3.2.1 一些定义

  • 将句子 w w w的句法依存树表示成 G = { V , E } \mathcal{G}={\{\mathcal{V}, \mathcal{E}}\} G={V,E}

  • V \mathcal{V} V中有 n n n个节点, V = { w 1 , w 2 , . . . , w n } \mathcal{V}={\{w_1, w_2, ..., w_n}\} V={w1,w2,...,wn}

  • E \mathcal{E} E中的有向边 ( e i , r j ) (e_i, r_j) (ei,rj)上有一个依存标签 L ( w i , w j ) L(w_i, w_j) L(wi,wj),表示不同的句法关系。例如图1中有: L ( " f i r e d " , " o f f i c e r " ) = n s u b j p a s s L("fired", "officer")=nsubjpass L("fired","officer")=nsubjpass


3.2.2 引入自环和反向边

为了在卷积过程中引入节点自身的信息,在原始图的基础上为每个节点添加一个自环(self loop),还为每条边添加了一个反向边。添加这两种边之后的边集合变为如下:

添加的这两类边也是有向的且有标签的。自环的标签为“LOOP”反向边的标签是在原始边标签的基础上添加了**“’”**,如下所示:

于是原始的图被转化为 G ′ = { V , E ′ } \mathcal{G}^{'}={\{\mathcal{V}, \mathcal{E}^{'}}\} G={V,E}在这个图上进行卷积操作


3.2.3 图卷积

节点 u ∈ G ′ u\in \mathcal{G}^{'} uG(对应于输入句子中的一个单词 w i w_i wi)在第 ( k + 1 ) (k+1) (k+1)层的卷积向量 h u ( k + 1 ) h^{(k+1)}_u hu(k+1)计算如下:

【论文解读 AAAI 2018|GCN-ED】Graph Convolutional Networks with Argument-Aware Pooling for Event Detection_第3张图片

其中 N u \mathcal{N}_u Nu表示节点 u u u在图 G ′ \mathcal{G}^{'} G中的邻居。 W L ( u , v ) k ∈ R d k + 1 × d k , b L ( u , v ) k ∈ R d k + 1 W^k_{L(u, v)}\in \mathbb{R}^{d_{k+1}\times d_k}, b^k_{L(u, v)}\in \mathbb{R}^{d_{k+1}} WL(u,v)kRdk+1×dk,bL(u,v)kRdk+1分别表示边 ( u , v ) (u,v) (u,v)的权重矩阵和偏置。

为了方便,作者为所有的图卷积层的设定相同数量的隐藏层单元,即 d 1 = d 2 = . . . = d d_1=d_2=...=d d1=d2=...=d。使用编码模块得到的向量表示初始化 h u 0 h^0_u hu0

图卷积操作也就是对目标节点邻居信息进行聚合,所以如果不引入自环(self loop)的话就无法聚合节点自身的信息


(1)减少参数量

等式(1)假定不同的边标签 L ( u , v ) L(u, v) L(u,v)有不同的权重矩阵 W L ( u , v ) k W^k_{L(u, v)} WL(u,v)k,这个参数量是很大的。

为了减少参数量,作者只维护三种类型的标签 t y p e ( u , v ) type(u, v) type(u,v)1) E \mathcal{E} E中的原始边2)自环3) E ′ \mathcal{E}^{'} E中的反向边。因此根据边 ( u , v ) (u, v) (u,v)的标签,每个卷积层只有三个不同的参数矩阵 W L ( u , v ) k W^k_{L(u, v)} WL(u,v)k

(2)为边赋权重

节点的邻居对该节点的重要性不同,所以为不同的邻居赋予不同的权重

例如图1中第二次出现的“fired”在句法依存图上有“officer, was, Tuesday”三个一阶邻居。其中“officer, was”对决定“fired”是End-Position类型事件的触发词有着重要作用,“Tuesday”没有提供什么信息。

因此,对于第 k k k层卷积,我们为每个节点 u u u的一阶邻居边 ( u , v ) (u,v) (u,v)计算权重 s ( u , v ) k s^k_{(u, v)} s(u,v)k,以权衡该邻居对ED的重要性:

根据式(3)和式(4),我们将式(1)重写为如下的形式:

【论文解读 AAAI 2018|GCN-ED】Graph Convolutional Networks with Argument-Aware Pooling for Event Detection_第4张图片

可以看出权重值 s ( u , v ) k s^k_{(u, v)} s(u,v)k是直接交给神经网络去优化了。

作者提出,权重值 s ( u , v ) k s^k_{(u, v)} s(u,v)k的引入有助于减轻错误的句法边对模型的影响


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

一层GCN只能捕获到一阶邻居的信息, K K K层GCN可以捕获到K-hop的邻居信息。但是 K K K值过小时,就不能捕获到在句法依存图上相隔较远的单词间的依赖关系; K K K值过大时,会对上下文信息进行冗余的建模,可能不能捕获距离较短的单词间的依赖关系。

因此作者提出,先使用BiLSTM抽象出初始的向量表示 x i x_i xi,然后再输入给GCN。

具体的方法是,在向量表示 ( x 1 , x 2 , . . . , x n ) (x_1, x_2,...,x_n) (x1,x2,...,xn)上进行向前和向后的LSTM,生成前向和后向的隐层向量序列: ( r 1 ⃗ , r 2 ⃗ , . . . , r n ⃗ ) (\vec{r_1}, \vec{r_2},..., \vec{r_n}) (r1 ,r2 ,...,rn ) ( r 1 ← , r 2 ← , . . . , r n ← ) (\overleftarrow{r_1}, \overleftarrow{r_2},...,\overleftarrow{r_n}) (r1 ,r2 ,...,rn )。然后将两个向量拼接,得到 r i = [ r i → , r i ← ] r_i=[\overrightarrow{r_i}, \overleftarrow{r_i}] ri=[ri ,ri ]用新得到的向量 r 1 , r 2 , . . . , r n r_1, r_2, ..., r_n r1,r2,...,rn替换等式(2)中的 x 1 , x 2 , . . . , x n x_1, x_2,..., x_n x1,x2,...,xn,以用于式(4)和式(5)中的计算

使用BiLSTM得到初始化的表示作为GCN的输入,实现了在使用较少层数的GCN的情况下,自适应地整合了单词间的较长依赖信息(long-range dependencies)。


3.3 池化模块

图卷积模块得到了卷积向量表示: h w 1 K , h w 2 K , . . . , h w n K h^K_{w_1}, h^K_{w_2}, ..., h^K_{w_n} hw1K,hw2K,...,hwnK。池化模块的目的是:聚合这些卷积向量,生成向量表示 v E D v^{ED} vED。然后将 v E D v^{ED} vED作为分类层的输入。

作者回顾了如下的三种池化操作

(1)Anchor Pooling(ANCHOR)

v E D v^{ED} vED设为当前词 w a w_a wa的向量表示,即 v E D = h w a K v^{ED}=h^K_{w_a} vED=hwaK。也就是说对哪个token进行预测,就只保留它对应的特征向量,舍弃其他token的特征向量。

(2)Overall Pooling(OVERALL)

对向量序列 h w 1 K , h w 2 K , . . . , h w n K h^K_{w_1}, h^K_{w_2}, ..., h^K_{w_n} hw1K,hw2K,...,hwnK按元素取最大值,得到 v E D v^{ED} vED。即 v E D = m a x _ e l e m e n t − w i s e ( h w 1 K , h w 2 K , . . . , h w n K ) v^{ED}=max\_element-wise(h^K_{w_1}, h^K_{w_2}, ..., h^K_{w_n}) vED=max_elementwise(hw1K,hw2K,...,hwnK)

(3)Dynamic Pooling(DYNAMIC)

将向量序列基于当前词 w a w_a wa的位置分成两部分 ( h w 1 K , h w 2 K , . . . , h w a K ) (h^K_{w_1}, h^K_{w_2}, ..., h^K_{w_a}) (hw1K,hw2K,...,hwaK) ( h w a + 1 K , h w a + 2 K , . . . , h w n K ) (h^K_{w_{a+1}}, h^K_{w_{a+2}}, ..., h^K_{w_n}) (hwa+1K,hwa+2K,...,hwnK)。然后对这两个序列分别使用element-wise max操作,再将其拼接得到 v E D v^{ED} vED

即, v E D = [ m a x _ e l e m e n t − w i s e ( h w 1 K , h w 2 K , . . . , h w a K ) , m a x _ e l e m e n t − w i s e ( h w a + 1 K , h w a + 2 K , . . . , h w n K ) ] 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})] vED=[max_elementwise(hw1K,hw2K,...,hwaK),max_elementwise(hwa+1K,hwa+2K,...,hwnK)]


这些方法不能有效利用句中实体的向量表示。然而,这些实体的向量表示中编码了重要信息,有助于提升ED的性能。

ANCHOR忽视了entity mentions的表示向量;OVERALL和DYNAMIC同等地考虑了entity mentions的表示和其他表示,若entity mentions的表示向量中的元素值比其他单词表示向量的小,则就不能获取到实体的信息。


(4)作者提出

因此,作者依赖于entity mentions的表示向量来进行ED的池化操作。这一方法称为entity mention-based pooling(ENTITY):

【论文解读 AAAI 2018|GCN-ED】Graph Convolutional Networks with Argument-Aware Pooling for Event Detection_第5张图片

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数据集上的实验结果:

【论文解读 AAAI 2018|GCN-ED】Graph Convolutional Networks with Argument-Aware Pooling for Event Detection_第6张图片

在ACE 2005数据集上进行实验,使用不同池化方法的实验结果:

【论文解读 AAAI 2018|GCN-ED】Graph Convolutional Networks with Argument-Aware Pooling for Event Detection_第7张图片

和state-of-the-art方法的对比结果:

【论文解读 AAAI 2018|GCN-ED】Graph Convolutional Networks with Argument-Aware Pooling for Event Detection_第8张图片

使用和表2中相同的超参数在TAC KBP 2015数据集上进行实验:

【论文解读 AAAI 2018|GCN-ED】Graph Convolutional Networks with Argument-Aware Pooling for Event Detection_第9张图片

5 总结

本文提出了用于ED的神经网络模型,该模型在句法依存树上进行图卷积,并且使用了entity mention-guided的池化

ACE 2005TAC KBP 2015数据集上进行了实验,取得了state-of-the-art的效果。

未来工作:使用句法结构进行事件抽取联合模型的研究(事件检测和参数预测);将GCN模型应用于其他的信息抽取任务,例如关系抽取、实体链接等。


模型的亮点在于将GCN方法引入到了ED任务中,有效地利用了句子中的句法依存结构。并且还考虑到了实体类型的信息,在编码时就对实体类型进行了编码。在池化操作中进一步增强了实体向量表示的影响。

不足之处在于,由于参数量的限制没有考虑到不同的句法关系标签,只是将关系分为了:原始边、自环、反向边三类。

这一问题在Event Detection with Relation-Aware Graph Convolutional Networks中得到了解决,并超越了本文模型的效果。

你可能感兴趣的:(事件抽取)