『2021语言与智能技术竞赛』- 关系抽取任务 pipline方案

『2021语言与智能技术竞赛』- 关系抽取任务 pipline方案

本文的代码地址 https://github.com/hgliyuhao/LIC2021_EE_Pipline

2021关系抽取任务,采取pipline的方式,线上F1值77.97,A榜单项前10,如果使用更大的预训练语言模型,还会有1个点左右的提升。

 

任务描述

信息抽取旨在从非结构化自然语言文本中提取结构化知识,如实体、关系、事件等。事件抽取的目标是对于给定的自然语言句子,根据预先指定的事件类型和论元角色,识别句子中所有目标事件类型的事件,并根据相应的论元角色集合抽取事件所对应的论元。其中目标事件类型 (event_type) 和论元角色 (role) 限定了抽取的范围,例如 (event_type:胜负,role:时间,胜者,败者,赛事名称)、(event_type:夺冠,role:夺冠事件,夺冠赛事,冠军)。

关系抽取任务的目标是对于给定的自然语言句子,根据预先定义的schema集合,抽取出所有满足schema约束的SPO三元组。schema定义了关系P以及其对应的主体S和客体O的类别。

 

算法设计

基于pipline的设计方式,先抽取自然语句中的实体,然后再根据抽取出的实体,找到存在关系的实体对。

实体抽取

抽取实体是整个算法中最重要的部分,直接决定了整个模型的能力。

实体抽取这部分基本是转换成序列标注任务来做。有序列标注+crf,序列标注+逐帧softmax,序列标注+逐帧sigmoid等。

crf和softmax的设计不能很好的处理嵌套实体的任务,因为每个序列只有一个标签。所以选择了序列标注+逐帧sigmoid。但是在实验过程中,标签稀疏的问题很严重,存在了过多的0标签,所以在比赛后期使用了GlobalPointer的设计。经过实验GlobalPointer在本次比赛中是明显优于序列标注+crf和序列标注+sigmoid,并且解码速度非常的快。

GlobalPointer的设计,它利用全局归一化的思路来进行命名实体识别(NER),可以无差别地识别嵌套实体和非嵌套实体,在非嵌套(Flat NER)的情形下它能取得媲美CRF的效果,而在嵌套(Nested NER)情形它也有不错的效果。

感兴趣的小伙伴可以去看这个模型的开源作者苏建林的介绍 https://spaces.ac.cn/archives/8373

为了让后面的关系识别时更加准确,在抽取实体时尽可能使抽取出的实体带有关于关系的更多信息,比如它可能的属于的关系类型,它在关系对中是subject还是object。这样做虽然会让标签稀疏化,但是在后面的任务中带来收益。

实体关系匹配

在比赛初期,是优先使用了规则去识别关系对,即两个实体符合schema中某一关系的两个槽位,则认为两个实体符合这个关系。但是仅仅依靠规则,无法很准确的抽取实体间的关系。

下图展示了部分规则抽取的局限性

如果引入实体间的距离信息可以解决上述问题,但是不能够解决全部问题

所以比赛的后期选择有模型去识别实体间的关系。

 

模型识别实体间关系

为了使模型可以识别实体间的关系,就需要让模型的输入携带更多有用的信息,同时这些信息是我们可以获得的,并且需要有非常高的准确度。基于实体抽取模型得到的结果,我们可以得到句子中包含的实体,它们所属的实体类型。这些都会给予模型极大的帮助。

实际上就是针对实体对间的多分类模型

针对模型的输入也做了一些实验

拼接更多的实体信息和上下文信息,可以使分类模型更准确!

 

总结

最后针对本次比赛的消融实验

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值