文章目录
1 简介
论文题目:Event Detection without Triggers
论文来源:NAACL 2019
论文链接:https://aclanthology.org/N19-1080.pdf
代码链接:https://github.com/liushulinle/event_detection_without_triggers
1.1 动机
- 事件触发词对于事件检测任务不是必需的,事件检测任务的目标是识别和分类事件,因此触发词可以被视为这个任务的中间结果。
- 标注触发词是耗时的,同时限制了目前事件抽取方法的应用。
- 没有事件触发词,将遇到两个问题:多标签问题和触发词缺少问题
1.2 创新
- 首次不使用触发词解决事件检测任务
- 提出一个新的模型Type-aware Bias Neural Network with Attention Mechanisms
2 方法
为了解决多标签问题,将该任务当作多个二分类问题。给定一个句子,它和每一个候补事件类型进行二分类,添加NA标签表示句子中不包含任何事件。为了捕捉隐藏的触发词信息,提出了一个简单但是高效的模型,称为Type-aware Bias Neural Network with Attention Mechanisms(TBNNAM).这个模型是类型感知的,因为它计算一个句子的表示基于目标事件类型。下面展示了TBNNAM的框架,它的输入包含两个部分:带命名实体识别标签的句子token和一个目标事件类型,如果给定的句子表达目标类型的事件则输出o为1,否则为0.
2.1 输入
给定一个句子,使用Stanford CoreNLP工具转变文本为token,ACE 2005语料库中不仅标注了给定句子中的事件,而且标注了实体。跟随先前的工作,利用标注的实体标签在模型中。
2.2 单词和实体编码
在NYT语料库中,使用Skip-gram模型学习单词编码,随机初始化每个实体标签的编码表,单词编码的维度为 d w d_w dw,实体编码的维度为 d e d_e de.
2.3 事件类型编码
根据上面结构图,一个事件类型被转换为两个编码向量 t 1 t_1 t1和 t 2 t_2 t2, t 1 t_1 t1用来捕捉局部信息, t 2 t_2 t2用来捕捉全局信息,它们两个被随机初始化,事件类型编码的维度为 d e v t d_evt devt.
2.4 LSTM层
LSTM运行在单词和实体编码的拼接序列中。LSTM有三个门控单元(输入i,遗忘f,输出o)和cell记忆向量c
2.5 注意力层
每个事件类型被一系列特殊单词触发,它们被称为事件触发词。因此事件触发词是事件检测中的重要线索。然而,这些信息在任务中是隐藏的。为了建模这些隐藏的触发词,引入注意力机制。注意力向量
a
a
a基于目标事件类型编码
t
1
t_1
t1和LSTM的隐藏状态
h
h
h。具体地,在给定的句子中,第k个token的注意力分数计算公式如下:
目标事件类型的触发词是被期望获得更高的分数超过其他词。最后,句子的表示
s
a
t
t
s_{att}
satt计算公式如下,其中
a
=
[
a
1
,
.
.
.
,
a
n
]
a=[a_1,...,a_n]
a=[a1,...,an]是注意力向量,
H
=
[
h
1
,
h
2
,
.
.
.
,
h
n
H=[h_1,h_2,...,h_n
H=[h1,h2,...,hn,其中
h
k
h_k
hk是LSTM层的第k个token的输出。
2.6 输出层
最终的输出o包括两个部分:
v
a
t
t
v_{att}
vatt和
v
g
l
o
b
a
l
v_{global}
vglobal,
v
a
t
t
v_{att}
vatt是被计算于
s
a
t
t
s_{att}
satt和
t
1
t_1
t1的点乘,用来捕捉局部特征(具体地,特征关于隐藏的触发词)。LSTM层的最后输出
h
n
h_n
hn编码整个句子的全局信息,因此
v
g
l
o
b
a
l
=
h
n
⋅
t
2
T
v_{global}=h_n·t_2^T
vglobal=hn⋅t2T是被期望捕捉句子的全局信息。最终输出o的计算公式如下:
2.7 偏置loss函数
定义一个偏置loss函数加强正样本的印象,理由有两个:
- 正样本远少于负样本,训练样本是一个<句子,数据类型>二元组,它的标签是1或者0根据给定的句子是否表达事件类型t.
- 正样本比负样本提供更多的信息,一个正样本<s,t>意味着s表达事件类型t.
loss函数定义如下,其中T为训练样本,x是句子和目标事件类型二元组,
y
∈
{
0
,
1
}
y{\in}\{0,1\}
y∈{0,1}。
(
1
+
y
(
i
)
⋅
β
)
(1+y^{(i)}·{\beta})
(1+y(i)⋅β)是偏置,它的值对于负样本为1,正样本为
1
+
β
1+\beta
1+β,其中
β
≥
0
{\beta}{\geq}0
β≥0.
3 实验
实验数据库为ACE 2005,使用Stanford CoreNLP工具对文档进行分句,根据ACE 2005样本库的原始标注为每个句子设置一系列标签,如下:
3.1 多类别分类和二分类对比实验
3.1.1 二分类
下图表示该方法的框架,以一个句子和一个目标事件类型作为输入,这些模型的loss与上节提出模型的loss一样。关键部分为句子的编码,根据编码句子的编码策略,实现下面三种模型:
- BC-CNN:使用CNN编码句子
- B C − L S T M l a s t BC-LSTM_{last} BC−LSTMlast:使用LSTM编码,以最后一个token的隐藏状态作为句子的表示
-
B
C
−
L
S
T
M
a
v
g
BC-LSTM_{avg}
BC−LSTMavg:使用LSTM编码,以全部token的隐藏状态的平均值作为句子的表示
3.1.2 多类别分类
全部存在的方法将事件检测任务当作多类别分类。给定一个句子,这些方法预测每个token是否是一个事件触发词和它触发什么类型的事件。这些方法的框架如下图,损失函数为 J ( θ ) = − 1 T ∑ i = 1 T l o g ( p ( y ( i ) ∣ x ( i ) , θ ) ) J(\theta)=-\frac{1}{T}\sum_{i=1}^Tlog(p(y^{(i)}|x^{(i)},\theta)) J(θ)=−T1∑i=1Tlog(p(y(i)∣x(i),θ)),其中T为训练样本的数量,根据编码句子的编码策略,实现下面三种模型:
- MC-CNN:使用CNN编码句子
- M C − L S T M l a s t MC-LSTM_{last} MC−LSTMlast:使用LSTM编码,以最后一个token的隐藏状态作为句子的表示
-
M
C
−
L
S
T
M
a
v
g
MC-LSTM_{avg}
MC−LSTMavg:使用LSTM编码,以全部token的隐藏状态的平均值作为句子的表示
对比实验结果如下图,可以发现二分类的方法显著地超过多类别分类的方法,因为多类别分类预测每个句子最后一个事件;CNN的方法优于LSTM的方法,因为触发词是事件检测任务中的重要线索,CNN擅长提出局部的特征。
3.2 实验结果
实验结果如下图,其中
B
C
−
L
S
T
M
a
t
t
BC-LSTM_{att}
BC−LSTMatt中的
λ
{\lambda}
λ为1.0,以展示注意力机制的作用
3.3 注意力向量分析
下图展示模型学到的注意力向量:
3.4 loss中偏置的影响
偏置的对比实验结果如下图,实验结果表明带偏置的系统显著地超过不带偏置的系统,表明正样本要得到更多的关注。
4 总结
- 提出了一个事件检测模型,不使用触发词完成事件检测任务,解决触发词缺失问题。
- 使用多个二分类解决多标签问题