【论文解读 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

论文题目: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,句中有一个事件触发器与该事件关联。事件触发器通常是单个的动词或名词。

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

图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),还为每条边添加了一个反向边。添加这两种边之后的边集合变为如下:

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

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

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

于是原始的图被转化为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计算如下:

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

其中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

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

图卷积操作也就是对目标节点邻居信息进行聚合,所以如果不引入自环(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)}

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

(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的重要性:

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

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

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

可以看出权重值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)中的计算

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

使用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):

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

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

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

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

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

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

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

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

5 总结

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

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

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


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

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

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