1 简介
论文题目:Document-level Event Extraction via Parallel Prediction Networks 论文来源:ACL 2021 论文链接:https://aclanthology.org/2021.acl-long.492.pdf 代码链接:https://github.com/HangYang-NLP/DE-PPN
1.1 创新
- 提出一个编码-解码模型进行文档级事件抽取,分别基于文档级别的编码和多粒度的解码。
- 介绍一种匹配损失函数用于训练端到端模型,它可以加强全局优化。
2 方法
模型的整体框架如上图所示,分为下面5部分。
- 候选论元识别:首先使用第一个Transformer对句子进行编码,然后以序列标注的形式进行句子级的候选论元识别。
- 文档级别编码:实现对候选论元和句子编码进行max-pooling,然后经过第二个Transformer建模全部的句子和论元之间的关系(句子的编码中加入位置编码)。然后对
H
s
H^s
Hs进行max-pooling操作,在对每个事件类型进行二分类,进行事件类型分类。
- 多粒度解码:多粒度的编码器包括三个部分:事件编码器、角色编码器、事件-角色编码器。
在事件编码器中设置m为生成事件的数量(大于文档中的平均数量),其中
Q
e
v
e
n
t
Q^{event}
Qevent为事件query。 在角色编码器中设置n为角色类型的数量(大于文档中的平均数量),其中
Q
r
o
l
e
Q^{role}
Qrole为角色query。 在事件-角色编码器中,建模事件查询和论元查询的关系。 - 事件预测:使用下面公式过滤虚假的事件,进行二分类(非空,空)。
使用下面公式对论元进行分类(
N
a
′
+
1
N'_a+1
Na′?+1分类), 得到m个事件
Y
^
=
(
Y
^
1
,
Y
^
2
,
.
.
.
.
,
Y
^
m
)
\widehat{Y} =(\widehat{Y}_1,\widehat{Y}_2,....,\widehat{Y}_m)
Y
=(Y
1?,Y
2?,....,Y
m?),其中每个事件包含n个预测论元。
Y
^
i
=
(
P
i
1
,
P
i
2
,
.
.
.
,
P
i
n
)
\widehat{Y}_i=(P_i^1,P_i^2,...,P_i^n)
Y
i?=(Pi1?,Pi2?,...,Pin?)。 - 匹配loss函数:定义双向匹配的损失公式如下:
C
m
a
t
c
h
C_{match}
Cmatch?公式如下,其中
j
u
d
g
e
i
judge_i
judgei?为判断事件i是否为空, 则损失函数如下: 最终的损失函数如下(候选论元识别、事件类型分类):
3 实验
数据集为ChFinAnn,实验结果如下图: 在不同发散程度的论元情况下的实验结果: 单事件和多事件实验结果: 消融实验的实验效果:
不同解码层数的实验效果: 不同事件生成数量的实验效果:
|