原论文:Exploiting Argument Information to Improve Event Detection via Supervised Attention Mechanism
原论文的著作权属于中科院自动化所,本文只针对原论文进行了学习及记录。
众所周知,在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 事件。
整体上来说,该模型是一个多分类模型,将句子中的每一个token(之后会详细叙述此概念)当作是Trigger Candidate,最后输出对于每个Candidate 的分类情况(33个事件类型再加上一个NA Type)。
那么,一个句子中的Token是什么呢,或者说Trigger Candidate 具体是什么样子的呢?我们将每一个单词与其上下文单词信息、上下文实体信息一起结合,组成针对这个单词的Trigger Candidate。下图展示了本文模型的整体结构,这个模型分成两个部分:(1) Context Representation Learning (CRL),是在Trigger Candidate向量化表示的基础上,利用有监督的注意力机制进一步提取其中的有效信息;(2) Event Detector,是包含一个输入层,一个隐含层和一个Softmax层的神经网络。
为了准备CRL,我们对每一个单词的上下文的长度进行了限制,取该单词的前后各 n2 n 2 个单词,形成一个长度为 n n 的上下文信息。之前提到过,上下文信息包括两部分,上下文单词信息以及上下文实体信息,那么设当前的单词为 w0 w 0 ,它的上下文单词信息为 Cw=[w−n2,w−n2+1,…,w−1,w1,wn2−1,wn2] C w = [ w − n 2 , w − n 2 + 1 , … , w − 1 , w 1 , w n 2 − 1 , w n 2 ] ,上下文实体信息即为与上下文单词相对应的实体类别(包括NA Type),表示为 Ce=[e−n2,e−n2+1,…,e−1,e1,en2−1,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 ] 。
使用Word2Vec, Skip-Gram 方法在NYT数据集上训练得到了词嵌入的向量。
对ACE 2005中所提到的事件类型初始化了嵌入向量,并在训练的过程中进行更新。之前不是很懂怎么能更新这种变量,因为在更新权重的同时,变量还需要更新,感觉这种不太现实。之后听师姐给我解释,用最简单的例子,假设我们有一个线性回归的函数 y=Wx+b y = W x + b , W W 是权重矩阵,需要在反向传播中更新,而 x x 是输入的变量,它也需要更新,那这时,我们只需要为 W W 和 x x 各求一次偏导数,这样二者就能分别更新,并同时趋向同一个优化方向(Word2Vec是同一个道理)
上下文单词Attention向量 αw α w 由 w w 和 Cw C w 共同计算得到,首先我们将所有 wk w k (包括 w w )转变成一个隐含表示 w¯¯¯¯k w ¯ k :
用相同的方法,我们可以计算出上下文实体的Attention值:
最后,将 [cw;ce;w] [ c w ; c e ; w ] 作为Event Detector 的输入。
对于一个给定的样本 x x , 这个有参数矩阵 θ θ 的神经网络能输出一个向量 O O ,其中的第i个值 oi o i 代表 x x 被分成第i个事件类型的置信度。为了得到条件概率 p(i|x,θ) p ( i | x , θ ) ,研究人员使用了Softmax方法:
这个部分是整个模型的要点,一般的Attention机制是通过计算输入与输出的相似程度,来为各个维度确定权重值,而本文中的Supervised Attention,是给定一个Attention的黄金标准,并用监督学习的方法降低网络中的Attention和黄金标准的差距。
本文使用了两种方法确定黄金标准:
1. 只对Argument赋Attention值
为所有与标记Trigger相关的Argument都赋值为1,其余为0,之后再对Argument进行平均归一化操作,得到黄金Attention的值
2.对Argument和它周围的值都赋予一定的Attention
总体思路和上面相同,不同之处在于,在为Argument赋值为1之后,我们创建一个新的初始化为0的向量 α′ α ′ ,对于每一个 α¯¯¯i=1 α ¯ i = 1 ,我们更新 α′ α ′ 的值为:
其中 g(⋅) g ( ⋅ ) 是高斯分布, w w 是人为设定的高斯分布的窗口大小。可以想象,这个方法实质上是对前一种方法进行了平滑。得到 α′ α ′ 后,我们再对其进行归一化,得到 α∗ α ∗ 作为黄金标准。
给定了Attention 的黄金标准 α∗ α ∗ ,也有了我们运算得到的 α α ,我们就可以对其进行监督学习了。使用如下loss函数:
这里可以看到此模型的实验效果。