GPLinker:基于GlobalPointer的事件联合抽取
大约两年前,笔者在百度的“2020语言与智能技术竞赛”中首次接触到了事件抽取任务,并在文章《bert4keras 在手,baseline 我有:百度 LIC2020》[1] 中分享了一个转化为 BERT+CRF 做 NER 的简单 baseline。不过,当时的 baseline 更像是一个用来凑数的半成品,算不上一个完整的事件抽取模型。而这两年来,关系抽取的模型层见迭出,SOTA 一个接一个,但事件抽取似乎没有多亮眼的设计。
最近笔者重新尝试了事件抽取任务,在之前的关系抽取模型 GPLinker 的基础上,结合完全子图搜索,设计一个比较简单但相对完备的事件联合抽取模型,依然称之为 GPLinker,在此请大家点评一番。
任务简介
事件抽取是一个比较综合的任务。一个标准的事件抽取样本如下:
▲ 标准的事件抽取样本(图片来自百度DuEE的GitHub)
每个事件会有一个事件类型以及相应的触发词,并且配有不同角色的论元。事件类型和论元角色是在约定的有限集合(schema)中选择,而触发词和论元一般情况下都是输入句子的片段,少数情况下也是可枚举的分类对象(百度的 DuEE-fin 出现过)。
原则上来说,事件抽取模型的设计取决于评价指标,在 LIC2020 中,我们之所以可以将事件抽取转化为一个 NER 问题,是因为当时的评测指标只考察(事件类型,论元角色,论元)构成的三元组,因此我们可以将(事件类型, 论元角色)组合成一个大类,然后就跟 NER 对应上了。
当然,这只是针对该指标的一种取巧方式。对于真实的事件抽取场景,我们自然是希望把标准格式的事件抽取出来,也就是设计一个尽量完备的模型。下面将介绍我们用于事件抽取的 GPLinker 模型,它基本达到了简单而完备的要求。
统一论元
我们多次提到了“完备”这个词,它是什么含义呢?具体来说,我们希望最终设计出来的模型,至少在理论上能适用于尽可能多情形的事件抽取任务。传统的事件抽取模型一般分为“触发词检测”、“事件/触发词类型识别”、“事件论元检测”和“论元角色识别”四个子任务,也就是说要先检测触发词然后基于触发词做进一步的处理,所以如果训练集没有标注出触发词,它就没法做了,这说明传统思路是不够完备的。
为了统一有无触发词的场景,我们这里就触发词也当作事件的一个论元角色,这样有无触发词就是增减一个论元而已,所以主要还是在于论元识别和事件划分。对于论元识别,我们还是将(事件类型,论元角色)组合成一个大类,然后转化为 NER 问题,但要注意的是,不同的实体是可能嵌套的,所以之前基于 CRF 的 NER 其实是不够用的,这里用能识别嵌套实体的 GlobalPointer 来完成。
前面还提到,像 DuEE-fin 这样的任务还出现了分类式的论元类型,其论元不是输入文本的一个片段,而是有限集合中选 1 个,考虑到这种论元类型不多,所以这里也将其转化为抽取式论元。
以 DuEE-fin 为例,其“公司上市”事件类型的“环节”论元,四个候选值为筹备上市、暂停上市、正式上市、终止上市,那么我们不将“环节”视为论元类型,而分别将筹备上市、暂停上市、正式上市、终止上市视为四种论元类型,而对应的实体则为触发词,这样我们要抽取的论元不是分类式的(公司上市,环节,XX上市),而是抽取式的(公司上市,XX 上市,触发词),最后我们在模型后处理阶段再将它们转回来就好。
完全子图
搜索算法
枚举图上的所有节点对,如果所有节点对都相邻,那么该图本身就是完全图,直接返回;如果有不相邻的节点对,那么执行步骤 2;
对于每一对不相邻的节点,分别找出与之相邻的所有节点集(包含自身)构成子图,然后对每个子图集分别执行步骤 1。
实验结果
https://github.com/bojone/GPLinker
模型反思
文章小结
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧