论文解读 AAAI 2018|GCN-EDGraph 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 摘要
  • 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,句中有一个事件触发器与该事件关联。事件触发器通常是单个的动词或名词。

图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

L个事件类型中的一种,或者是NONE,表示该词不是一个候选的触发词。ED问题就转换为了

(L+1)(L+1)

(L+1)类的分类问题

长度为

nn

n的句子表示为:

w=w1,w2,...,wnw=w_1, w_2,..., w_n

w=w1?,w2?,...,wn?。使用 BIO 模式对句子进行序列标注,为每个单词

wiw_i

wi?分配一个实体类型标签

eie_i

ei?,例如图1所示。

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

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

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

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

3.1 编码模块

编码模块通过级联句子中的每个token

wiw_i

wi?的词嵌入位置嵌入实体类型嵌入,将

wiw_i

wi?转化为实值向量

xix_i

xi?。

(1)词嵌入:捕获了

wiw_i

wi?的句法和语义信息

(2)位置嵌入

waw_a

wa?为当前词,将

wiw_i

wi?到

waw_a

wa?的相对距离(例如

i?ai-a

i?a)编码成实值向量,将这个向量作为

wiw_i

wi?的额外表示。编码过程是通过在lookup table中查找实现的。

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

wiw_i

wi?的实体类型标签

eie_i

ei?的嵌入向量。

编码模块得到了句子的向量表示

X=x1,x2,...,xnX=x_1, x_2, ..., x_n

X=x1?,x2?,...,xn?,作为图卷积模块的输入

3.2 图卷积模块

3.2.1 一些定义

  • 将句子

    ww

    w的句法依存树表示成

    G={V,E}\mathcal{G}={\{\mathcal{V}, \mathcal{E}}\}

    G={V,E}

  • V\mathcal{V}

    V中有

    nn

    n个节点,

    V={w1,w2,...,wn}\mathcal{V}={\{w_1, w_2, ..., w_n}\}

    V={w1?,w2?,...,wn?}。

  • E\mathcal{E}

    E中的有向边

    (ei,rj)(e_i, r_j)

    (ei?,rj?)上有一个依存标签

    L(wi,wj)L(w_i, w_j)

    L(wi?,wj?),表示不同的句法关系。例如图1中有:

    L("fired","officer")=nsubjpassL("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 图卷积

节点

uGu\in \mathcal{G}^{'}

u∈G′(对应于输入句子中的一个单词

wiw_i

wi?)在第

(k+1)(k+1)

(k+1)层的卷积向量

hu(k+1)h^{(k+1)}_u

hu(k+1)?计算如下:

其中

Nu\mathcal{N}_u

Nu?表示节点

uu

u在图

G\mathcal{G}^{'}

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}}

WL(u,v)k?∈Rdk+1?×dk?,bL(u,v)k?∈Rdk+1?分别表示边

(u,v)(u,v)

(u,v)的权重矩阵和偏置。

为了方便,作者为所有的图卷积层的设定相同数量的隐藏层单元,即

d1=d2=...=dd_1=d_2=...=d

d1?=d2?=...=d。使用编码模块得到的向量表示初始化

hu0h^0_u

hu0?:

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

(1)减少参数量

等式(1)假定不同的边标签

L(u,v)L(u, v)

L(u,v)有不同的权重矩阵

WL(u,v)kW^k_{L(u, v)}

WL(u,v)k?,这个参数量是很大的。

为了减少参数量,作者只维护三种类型的标签

type(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)的标签,每个卷积层只有三个不同的参数矩阵

WL(u,v)kW^k_{L(u, v)}

WL(u,v)k?:

(2)为边赋权重

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

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

因此,对于第

kk

k层卷积,我们为每个节点

uu

u的一阶邻居边

(u,v)(u,v)

(u,v)计算权重

s(u,v)ks^k_{(u, v)}

s(u,v)k?,以权衡该邻居对ED的重要性:

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

可以看出权重值

s(u,v)ks^k_{(u, v)}

s(u,v)k?是直接交给神经网络去优化了。

作者提出,权重值

s(u,v)ks^k_{(u, v)}

s(u,v)k?的引入有助于减轻错误的句法边对模型的影响

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

一层GCN只能捕获到一阶邻居的信息,

KK

K层GCN可以捕获到K-hop的邻居信息。但是

KK

K值过小时,就不能捕获到在句法依存图上相隔较远的单词间的依赖关系;

KK

K值过大时,会对上下文信息进行冗余的建模,可能不能捕获距离较短的单词间的依赖关系。

因此作者提出,先使用BiLSTM抽象出初始的向量表示

xix_i

xi?,然后再输入给GCN。

具体的方法是,在向量表示

(x1,x2,...,xn)(x_1, x_2,...,x_n)

(x1?,x2?,...,xn?)上进行向前和向后的LSTM,生成前向和后向的隐层向量序列:

(r1?,r2?,...,rn?)(\vec{r_1}, \vec{r_2},..., \vec{r_n})

(r1??,r2??,...,rn??)和

(r1,r2,...,rn)(\overleftarrow{r_1}, \overleftarrow{r_2},...,\overleftarrow{r_n})

(r1??,r2??,...,rn??)。然后将两个向量拼接,得到

ri=[ri,ri]r_i=[\overrightarrow{r_i}, \overleftarrow{r_i}]

ri?=[ri??,ri??]。用新得到的向量

r1,r2,...,rnr_1, r_2, ..., r_n

r1?,r2?,...,rn?替换等式(2)中的

x1,x2,...,xnx_1, x_2,..., x_n

x1?,x2?,...,xn?,以用于式(4)和式(5)中的计算

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

3.3 池化模块

图卷积模块得到了卷积向量表示:

hw1K,hw2K,...,hwnKh^K_{w_1}, h^K_{w_2}, ..., h^K_{w_n}

hw1?K?,hw2?K?,...,hwn?K?。池化模块的目的是:聚合这些卷积向量,生成向量表示

vEDv^{ED}

vED。然后将

vEDv^{ED}

vED作为分类层的输入。

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

(1)Anchor Pooling(ANCHOR)

vEDv^{ED}

vED设为当前词

waw_a

wa?的向量表示,即

vED=hwaKv^{ED}=h^K_{w_a}

vED=hwa?K?。也就是说对哪个token进行预测,就只保留它对应的特征向量,舍弃其他token的特征向量。

(2)Overall Pooling(OVERALL)

对向量序列

hw1K,hw2K,...,hwnKh^K_{w_1}, h^K_{w_2}, ..., h^K_{w_n}

hw1?K?,hw2?K?,...,hwn?K?按元素取最大值,得到

vEDv^{ED}

vED。即

vED=max_element?wise(hw1K,hw2K,...,hwnK)v^{ED}=max\_element-wise(h^K_{w_1}, h^K_{w_2}, ..., h^K_{w_n})

vED=max_element?wise(hw1?K?,hw2?K?,...,hwn?K?)。

(3)Dynamic Pooling(DYNAMIC)

将向量序列基于当前词

waw_a

wa?的位置分成两部分

(hw1K,hw2K,...,hwaK)(h^K_{w_1}, h^K_{w_2}, ..., h^K_{w_a})

(hw1?K?,hw2?K?,...,hwa?K?)和

(hwa+1K,hwa+2K,...,hwnK)(h^K_{w_{a+1}}, h^K_{w_{a+2}}, ..., h^K_{w_n})

(hwa+1?K?,hwa+2?K?,...,hwn?K?)。然后对这两个序列分别使用element-wise max操作,再将其拼接得到

vEDv^{ED}

vED。

即,

vED=[max_element?wise(hw1K,hw2K,...,hwaK),max_element?wise(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})]

vED=[max_element?wise(hw1?K?,hw2?K?,...,hwa?K?),max_element?wise(hwa+1?K?,hwa+2?K?,...,hwn?K?)]


这些方法不能有效利用句中实体的向量表示。然而,这些实体的向量表示中编码了重要信息,有助于提升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中得到了解决,并超越了本文模型的效果。