论文笔记 | 利用Argument信息以及Attention机制提升事件检测的效果

原论文:Exploiting Argument Information to Improve Event Detection via Supervised Attention Mechanism

原论文的著作权属于中科院自动化所,本文只针对原论文进行了学习及记录。

1. 前言

众所周知,在ACE 2005的语料库中,每一个事件都由事件触发词Trigger和事件元素Argument组成,在目前的研究中,针对事件检测任务,各个研究小组都没有充分的利用数据集,他们更多地依赖句子的语义信息直接进行事件检测,而几乎没有使用到已经被标注好的Argument信息。

本文中,研究人员提出,Argument信息能够对Trigger的识别和分类起到积极作用,并通过实验验证了他们的想法。

举个例子:Mohamad fired Anwar, his former protege, in 1998

上面的例子中,fired是一个触发词,但是这个触发词可能代表两个事件类型,一个是Attack, 另一个是 End-Position, 那么到底应该将这个事件归为哪一个类呢?如果我们看到 former protege(Role = Position) 这个argument,我们就能知道这多半是一个 End-position 事件。

2. 模型

整体上来说,该模型是一个多分类模型,将句子中的每一个token(之后会详细叙述此概念)当作是Trigger Candidate,最后输出对于每个Candidate 的分类情况(33个事件类型再加上一个NA Type)。

那么,一个句子中的Token是什么呢,或者说Trigger Candidate 具体是什么样子的呢?我们将每一个单词与其上下文单词信息、上下文实体信息一起结合,组成针对这个单词的Trigger Candidate。下图展示了本文模型的整体结构,这个模型分成两个部分:(1) Context Representation Learning (CRL),是在Trigger Candidate向量化表示的基础上,利用有监督的注意力机制进一步提取其中的有效信息;(2) Event Detector,是包含一个输入层,一个隐含层和一个Softmax层的神经网络。

论文笔记 | 利用Argument信息以及Attention机制提升事件检测的效果_第1张图片

2.1 Context Representation Learning

为了准备CRL,我们对每一个单词的上下文的长度进行了限制,取该单词的前后各 n2 n 2 个单词,形成一个长度为 n n 的上下文信息。之前提到过,上下文信息包括两部分,上下文单词信息以及上下文实体信息,那么设当前的单词为 w0 w 0 ,它的上下文单词信息为 Cw=[wn2,wn2+1,,w1,w1,wn21,wn2] C w = [ w − n 2 , w − n 2 + 1 , … , w − 1 , w 1 , w n 2 − 1 , w n 2 ] ,上下文实体信息即为与上下文单词相对应的实体类别(包括NA Type),表示为 Ce=[en2,en2+1,,e1,e1,en21,en2] C e = [ e − n 2 , e − n 2 + 1 , … , e − 1 , e 1 , e n 2 − 1 , e n 2 ] 。在之后的叙述之中,为了方便表示,我们将当前单词称为 w w ,将 Cw C w 表示为 Cw=[w1,w2,,wn] C w = [ w 1 , w 2 , … , w n ] ,将 Ce C e 表示为 Ce=[e1,e2,,en] C e = [ e 1 , e 2 , … , e n ]

2.1.1 Word Embedding Table

使用Word2Vec, Skip-Gram 方法在NYT数据集上训练得到了词嵌入的向量。

2.1.2 Entity Type Embedding Table

对ACE 2005中所提到的事件类型初始化了嵌入向量,并在训练的过程中进行更新。之前不是很懂怎么能更新这种变量,因为在更新权重的同时,变量还需要更新,感觉这种不太现实。之后听师姐给我解释,用最简单的例子,假设我们有一个线性回归的函数 y=Wx+b y = W x + b W W 是权重矩阵,需要在反向传播中更新,而 x x 是输入的变量,它也需要更新,那这时,我们只需要为 W W x x 各求一次偏导数,这样二者就能分别更新,并同时趋向同一个优化方向(Word2Vec是同一个道理)

2.1.3 表示学习

上下文单词Attention向量 αw α w w w Cw C w 共同计算得到,首先我们将所有 wk w k (包括 w w )转变成一个隐含表示 w¯¯¯¯k w ¯ k

w¯¯¯¯k=f(wkWw) w ¯ k = f ( w k ⋅ W w )

f() f ( ⋅ ) 是非线性函数,比如 tanh t a n h Ww W w 是一个变换矩阵,之后,我们就可以利用隐含表示来计算 Cw C w 中每一个单词的Attention值:
αkw=exp(w¯¯¯¯w¯¯¯¯Tk)iexp(w¯¯¯¯w¯¯¯¯Tk) α w k = e x p ( w ¯ ⋅ w ¯ k T ) ∑ i e x p ( w ¯ ⋅ w ¯ k T )

用相同的方法,我们可以计算出上下文实体的Attention值:

αke=exp(weeTk)iexp(weeTk) α e k = e x p ( w e ⋅ e k T ) ∑ i e x p ( w e ⋅ e k T )

需要注意到,因为 w w 本身是单词,而 ek e k 是实体类型,所以我们要将 w w 映射到实体域:
we=f(wWe) w e = f ( w ⋅ W e )

在得到 αw α w αw α w 后,可以将二者相加得到一个最终的Attention权重值: α=αw+αe α = α w + α e
cw=CwαT c w = C w α T

ce=CeαT c e = C e α T

最后,将 [cw;ce;w] [ c w ; c e ; w ] 作为Event Detector 的输入。

2.2 Event Detector

2.2.1 Basic Model

对于一个给定的样本 x x , 这个有参数矩阵 θ θ 的神经网络能输出一个向量 O O ,其中的第i个值 oi o i 代表 x x 被分成第i个事件类型的置信度。为了得到条件概率 p(i|x,θ) p ( i | x , θ ) ,研究人员使用了Softmax方法:

p(i|x,θ)=eoimk=1eok p ( i | x , θ ) = e o i ∑ k = 1 m e o k

同时,假设我们的样本总量是 T T ,我们可以根据softmax来进行损失函数的定义:
J(θ)=i=iTlogp(y(i)|x(i),θ) J ( θ ) = − ∑ i = i T l o g p ( y ( i ) | x ( i ) , θ )

2.2.2 Supervised Attention

这个部分是整个模型的要点,一般的Attention机制是通过计算输入与输出的相似程度,来为各个维度确定权重值,而本文中的Supervised Attention,是给定一个Attention的黄金标准,并用监督学习的方法降低网络中的Attention和黄金标准的差距。

本文使用了两种方法确定黄金标准:
1. 只对Argument赋Attention值
为所有与标记Trigger相关的Argument都赋值为1,其余为0,之后再对Argument进行平均归一化操作,得到黄金Attention的值

论文笔记 | 利用Argument信息以及Attention机制提升事件检测的效果_第2张图片

2.对Argument和它周围的值都赋予一定的Attention
总体思路和上面相同,不同之处在于,在为Argument赋值为1之后,我们创建一个新的初始化为0的向量 α α ′ ,对于每一个 α¯¯¯i=1 α ¯ i = 1 ,我们更新 α α ′ 的值为:
论文笔记 | 利用Argument信息以及Attention机制提升事件检测的效果_第3张图片

其中 g() g ( ⋅ ) 是高斯分布, w w 是人为设定的高斯分布的窗口大小。可以想象,这个方法实质上是对前一种方法进行了平滑。得到 α α ′ 后,我们再对其进行归一化,得到 α α ∗ 作为黄金标准。

2.2.3 Jointly Training ED and Attention

给定了Attention 的黄金标准 α α ∗ ,也有了我们运算得到的 α α ,我们就可以对其进行监督学习了。使用如下loss函数:

D(θ)=i=1Tj=1N(αijαij)2 D ( θ ) = ∑ i = 1 T ∑ j = 1 N ( α j ∗ i − α j i ) 2

之后,我们将 D(θ) D ( θ ) J(θ) J ( θ ) 结合,得到一个joint loss function:
J(θ)=J(θ)+λD(θ) J ′ ( θ ) = J ( θ ) + λ D ( θ )

之后,使用mini-Batch的Adadelta训练方法,可以进行联合训练。

3. 效果

这里可以看到此模型的实验效果。

论文笔记 | 利用Argument信息以及Attention机制提升事件检测的效果_第4张图片

你可能感兴趣的:(NOTE)