论文浅尝 | 探索将预训练语言模型用于事件抽取和事件生成
论文笔记整理: 郝凯龙,南京大学硕士
链接: https://www.aclweb.org/anthology/P19-1522.pdf
动机
传统的 ACE 事件抽取任务依赖于人工标注的数据,耗费大量的人力并且数据量有限,数据量不足给事件抽取带来了阻碍。传统的事件抽取不能解决 role overlap 角色重叠的问题。 PLMEE 模型通过对不同的角色分别进行 augument prediction 论元预测解决了角色重叠问题。另外,论文提出了一种利用 BERT 生成训练数据的方法,并证明有效。在 ACE2005 数据集上,超过了 state-of-the-art 的结果,将触发词分类和论元分类的 F1 值分别提高到了 81.1 和 58.9 。
亮点
PLMEE 的亮点主要包括:
( 1 )解决了一个论元扮演多个角色即角色重叠问题,通过对不同的角色构建多个分类器的方式。例如“ The explosion killed thebomber and three shopers ”在这句话中, bomber 既是 Attacker 也是 Victim 。
( 2 )提出了利用 BERT 生成训练数据的方法,并证明方法有效。
概念及模型
-
事件抽取
事件抽取分为触发词抽取、论元抽取、论元范围检测、损失函数重写
1. 触发词抽取
将触发词抽取建模为多分类问题,在 BERT 后添加 MLP 做分类,用 cross-entropy 作为损失函数。
2. 论元抽取
对于每一个 token 有多组二分类器,每个分类器决定改 token 是否为对应 role 的开头或结尾。通过这种方式,一个 token/argument 可以是多个 role ,可解决 role overlap 问题。
3. 论元范围检测
利用一个有限自动机,进行短语的检测,可以表示成下图:
尽可能的选择概率更高的 token 作为 argument 的开头和结尾。并且可以为一个 role 检测出多个 argument 。
4. 损失函数重写
按照 TF-IDF 的方式,计算不同 role 的重要程度,作为 weight 。
r 表示 role ,即角色。 v 代表某一事件类型, V 代表所有事件类型集合。
对 RF-IEF 规范化,得到 I(r, v) 代表对于事件 v 角色 r 的重要程度。
Ls 表示 start ,即论元开头的 loss ; Le 表示 end 的损失。两者求和为最终的损失函数。
-
事件生成
首先在数据集中进行论元收集,将角色相同并且上下文相似的 token/phrase 构成集合,如上图框中示例。
对于句子,对其中的 argument 论元,在构建的相似集合中随机选择进行替换。
对于触发词和论元以外的词,即附加词,利用 bert 进行 [mask] 遮掩,利用 BERT 预测的结果作为替换。
最后得到打分函数,用于筛选生成数据。
理论分析
实验
1. 实验结果
作者采用了相较于以往方法更严苛的评判标准。
但是实验的结果依然是极好的,对于 Trigger Identification 触发词检测和 Trigger Classification 触发词分类甚至提升了 10%
1. 触发词只有类型和范围均检测正确,才认为结果正确
2. 论元只有范围正确,并且所有的 role overlap 重叠角色均被检测出来,才认为结果正确。
总结
本文利用预训练语言模型,对事件抽取证明有极大的提高,说明 BERT 得到的 embedding 蕴含的语义信息是非常有意义的。另外,采用 BERT 生成数据也是一种不错的思路。对于 role overlap 等问题,论文提出了一种基于多分类器的改进方式。
OpenKG
开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。
点击 阅读原文 ,进入 OpenKG 博客。