论文笔记 | 利用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层的神经网络。
2.1 Context Representation Learning
为了准备CRL,我们对每一个单词的上下文的长度进行了限制,取该单词的前后各个单词,形成一个长度为的上下文信息。之前提到过,上下文信息包括两部分,上下文单词信息以及上下文实体信息,那么设当前的单词为,它的上下文单词信息为,上下文实体信息即为与上下文单词相对应的实体类别(包括NA Type),表示为。在之后的叙述之中,为了方便表示,我们将当前单词称为,将表示为,将表示为。
2.1.1 Word Embedding Table
使用Word2Vec, Skip-Gram 方法在NYT数据集上训练得到了词嵌入的向量。
2.1.2 Entity Type Embedding Table
对ACE 2005中所提到的事件类型初始化了嵌入向量,并在训练的过程中进行更新。之前不是很懂怎么能更新这种变量,因为在更新权重的同时,变量还需要更新,感觉这种不太现实。之后听师姐给我解释,用最简单的例子,假设我们有一个线性回归的函数,是权重矩阵,需要在反向传播中更新,而是输入的变量,它也需要更新,那这时,我们只需要为和各求一次偏导数,这样二者就能分别更新,并同时趋向同一个优化方向(Word2Vec是同一个道理)
2.1.3 表示学习
上下文单词Attention向量 由和共同计算得到,首先我们将所有(包括)转变成一个隐含表示:
是非线性函数,比如,是一个变换矩阵,之后,我们就可以利用隐含表示来计算中每一个单词的Attention值:
用相同的方法,我们可以计算出上下文实体的Attention值:
需要注意到,因为本身是单词,而是实体类型,所以我们要将映射到实体域:
在得到和 后,可以将二者相加得到一个最终的Attention权重值:
最后,将作为Event Detector 的输入。
2.2 Event Detector
2.2.1 Basic Model
对于一个给定的样本, 这个有参数矩阵的神经网络能输出一个向量,其中的第i个值代表被分成第i个事件类型的置信度。为了得到条件概率,研究人员使用了Softmax方法:
同时,假设我们的样本总量是,我们可以根据softmax来进行损失函数的定义:
2.2.2 Supervised Attention
这个部分是整个模型的要点,一般的Attention机制是通过计算输入与输出的相似程度,来为各个维度确定权重值,而本文中的Supervised Attention,是给定一个Attention的黄金标准,并用监督学习的方法降低网络中的Attention和黄金标准的差距。
本文使用了两种方法确定黄金标准:
1. 只对Argument赋Attention值
为所有与标记Trigger相关的Argument都赋值为1,其余为0,之后再对Argument进行平均归一化操作,得到黄金Attention的值
2.对Argument和它周围的值都赋予一定的Attention
总体思路和上面相同,不同之处在于,在为Argument赋值为1之后,我们创建一个新的初始化为0的向量,对于每一个,我们更新的值为:
其中是高斯分布, 是人为设定的高斯分布的窗口大小。可以想象,这个方法实质上是对前一种方法进行了平滑。得到后,我们再对其进行归一化,得到作为黄金标准。
2.2.3 Jointly Training ED and Attention
给定了Attention 的黄金标准 ,也有了我们运算得到的,我们就可以对其进行监督学习了。使用如下loss函数:
之后,我们将和结合,得到一个joint loss function:
之后,使用mini-Batch的Adadelta训练方法,可以进行联合训练。
3. 效果
这里可以看到此模型的实验效果。