dbRNN事件抽取
原论文:Jointly Extracting Event Triggers and Arguments by Dependency-Bridge RNN and Tensor-Based Argument Interaction
1. 概括
本论文的创新点我个人总结如下:
- 实现了事件触发词以及Argument的联合抽取,避开了Pipeline方法中错误的触发词识别结果会在网络中传播的问题;同时联合抽取的过程中,有可能通过元素抽取的步骤反过来纠正事件检测的结果。
- 将元素的互信息作为影响元素抽取结果的因素。举例说明:在下面的Figure 1中,如果确定了Palestine Hotel 是fired这一触发词的角色,又知道American tank与Palestine Hotel都依赖于动词fired,那么American tank也是一个事件角色的概率就会增加。
- 在构建模型的过程中使用了句法信息
2.模型
2.1 带有Dependency Bridges 的 Bi-LSTM
Bi-LSTM 不需要过多介绍,即在每一个时间步都同时计算前向和后向的隐藏状态。在时刻t,前向和后向的隐藏状态分别为:
ht=LSTM(ht−1,xt)
ht=LSTM(ht+1,xt)
则时刻t的输出ht=[ht,ht]
那么,如何定义 Dependency Bridges 呢?我们可以继续看图1:
"died"和"fired"之间具有名为"advcl"的句法关系,同理,"fired"和"hotel"之间也有类似的关系。这些关系能够提供很多包括时间,因果等的有效信息,同时已经在论文 Joint event extraction via structured prediction with global features 中被证明对事件抽取任务具有益处。与上面的句法依存关系类似,我们在Bi-LSTM的节点之间建立对应的联系,使得句法依存的信息能够在LSTM节点中传播。论文作者把这一结构称为 Dependency Bridges。具体的模式如下图所示:

每一种依存结构都有其特有的权重,同时,由于依存是有方向的,所以对于每一种依存结构,前向和后向的权重都有所不同,例如对于"nsubj"结构,前向的依存权重为a+nsubj,反向的依存权重为a−nsubj。在LSTM进行计算的过程中,Dependency Bridge 会影响每个时刻的隐藏状态。在t时刻,将所有与当前cell有依存关系的cell集合设为Sin,该集合中的每一个元素都是一个元祖(index,type),表示句法依存的起点以及依存的类型。据此,当前cell的隐藏状态应该被表示为如下公式:
ht=ot⊙tanh(ct)+dt⊙(∣Sin∣1(i,p)∈sin∑aphi)
相比于LSTM中的其他门,dt是一个新的门,用来保证句法依赖信息不会过多地影响t时刻cell中原本的信息:
dt=σ(Wd[ht−1xt]+bd)
其中Wd∈Rd×2d,bd∈Rd×1
2.2 Trigger Classification
基于之前的模型,研究人员开展了触发词分类的工作。首先,研究人员划定了触发词的范围,将句子中的名词,动词以及形容词划定为触发词候选词。对于一个长度为NL的句子,它的句子表示hs=[hNL,h1],与当前触发词候选词cell的隐藏状态htri相连接,得到候选触发词的特征向量C=[htri,hs]。最后,我们利用一个多层感知机来对C进行分类。
HC=tanh(WcC+bc)
OT=softmax(WTHC+bT)
最终Ot∈RnET,代表着所有类型事件的概率
2.3 Argument Classification
在这篇论文中,研究人员在进行元素抽取的过程中考虑了元素的交互信息。他们认为,通过元素的交互信息,可以发现两个实体在句子中的相同以及相异之处,对于元素的识别和分类有益。在实验过程中,为了同时考虑所有元素候选词,将所有元素候选词对应的隐藏状态手机并形成矩阵H∈Rnhu×nA,其中nhu为隐藏状态的维数,nA为元素候选词的个数。
对于每一对元素候选词,我们都用一个全连接层来编码他们之间的相互关系。这一相互关系用维度是nT的向量进行表示。则给定H={hi∣i∈[1,nA]},全连接层被表示为
Ti,j=tanh(Wd[hi,ji]+bd)
Wd∈RnT×2nhu,bd∈RnT
这样,我们就得到了一个三维的向量T来表示所有元素候选词之间的相互关系。受 Natural language processing (almost) from scratch 这一论文的启发,作者认为,对每一个实体最有用的交互信息可以通过进行max-pooling得到。
Fmaxp(i,k)=maxj=1naT(i,j,k)
得到Fmaxp∈RnA×nT表示了所有元素候选词的最重要互信息向量。为了判断两个元素是否倾向于同时出现,研究人员还在T矩阵上进行了self-attention操作,得到自注意力矩阵A:
Aij=softmax(tanh(WaTij+ba))
A∈RnA×nA
此处有疑惑,为什么这个矩阵A能用来衡量元素同时出现的倾向呢?对我来说,这个矩阵更像是描述两个元素相互关联程度是否紧密的矩阵。而且,为何不在T矩阵上直接进行maxpooling得到这一矩阵A?个人猜想这几步是为了实验效果而增加的步骤,本身意义并不十分强。希望懂得的人进行纠正
在A矩阵的基础上,通过与H矩阵相乘,可以从句子中动态的提取元素共现信息。
FA=AHT,FA∈Rna×nhu
最终,将各种信息进行拼接,组成向量L=[FA,Fmaxp,HT,HC⊗ena],并利用Softmax方法得到最后的结果OR
OR(i)=softmax(WRLi+bR),OR(i)∈R1×nR
2.4 max margin learning
这部分类似于使用了svm的损失函数,我对于SVM的算法理解的不够透彻,没有完全理解这一损失函数,日后可以进行补充。
3. 实验效果
