基于DGCNN和概率图的轻量级信息抽取模型

本文介绍了基于DGCNN和概率图的轻量级信息抽取模型,适用于处理“一对多”任务,能覆盖信息抽取的常见特点。模型采用CNN+Attention结构,利用字词混合Embedding、Position Embedding和DGCNN,通过半指针-半标注结构进行预测。实验证明,模型能有效提升信息抽取的效果。
摘要由CSDN通过智能技术生成

背景:前几个月,百度举办了“2019语言与智能技术竞赛”,其中有三个赛道,而我对其中的“信息抽取”赛道颇感兴趣,于是报名参加。经过两个多月的煎熬,比赛终于结束,并且最终结果已经公布。笔者从最初的对信息抽取的一无所知,经过这次比赛的学习和研究,最终探索出在监督学习下做信息抽取的一些经验,遂在此与大家分享。

 

信息抽取赛道:“科学空间队”在最终的测试结果上排名第七

信息抽取赛道:“科学空间队”在最终的测试结果上排名第七

 

笔者在最终的测试集上排名第七,指标F1为0.8807(Precision是0.8939,Recall是0.8679),跟第一名相差0.01左右。从比赛角度这个成绩不算突出,但自认为模型有若干创新之处,比如自行设计的抽取结构、CNN+Attention(所以足够快速)、没有用Bert等预训练模型,私以为这对于信息抽取的学术研究和工程应用都有一定的参考价值。

基本分析 #

信息抽取(Information Extraction, IE)是从自然语言文本中抽取实体、属性、关系及事件等事实类信息的文本处理技术,是信息检索、智能问答、智能对话等人工智能应用的重要基础,一直受到业界的广泛关注。... 本次竞赛将提供业界规模最大的基于schema的中文信息抽取数据集(Schema based Knowledge Extraction, SKE),旨在为研究者提供学术交流平台,进一步提升中文信息抽取技术的研究水平,推动相关人工智能应用的发展。

------ 比赛官方网站介绍

 

任务介绍 #

本次的信息抽取任务,更精确地说是“三元组”抽取任务,示例数据如下:

{
  "text": "九玄珠是在纵横中文网连载的一部小说,作者是龙马",
  "spo_list": [
    ["九玄珠", "连载网站", "纵横中文网"],
    ["九玄珠", "作者", "龙马"]
  ]
}

就是输入一个句子,然后输出该句子包含的所有三元组。其中三元组是(s, p, o)的形式,它的s是subject,即主实体,为query中的一个片段;而o是object,即客实体,也是query中的一个片段;而p是predicate,即两个实体之间的关系,比赛事先给出了所有的候选predicate列表(schema,一共50个候选predicate)。总的来说,(s, p, o)可以理解的“s的p是o”。

比赛给出了将近20万的标注数据,标注质量也颇高,感谢百度。(请不要问我要数据啊,我不负责分享数据集。据说数据集迟点会在http://ai.baidu.com/broad/download公开发布,到时就可以下载了。)

样本特点 #

很显然,这是一个“一对多”的抽取+分类任务,通过对人工观察样本情况,发现其特点如下:

1、s和o未必是分词工具分出来的词,因此要对query做标注才能抽取出正确的s、o,而考虑到分词可能切错边界,因此应该使用基于字的输入来标注;

2、样本中大多数的抽取结果是“一个s、多个(p, o)”的形式,比如“《战狼》的主演包括吴京和余男”,那么要抽出“(战狼, 主演, 吴京)”、“(战狼, 主演, 余男)”;

3、抽取结果是“多个s、一个(p, o)”甚至是“多个s、多个(p, o)”的样本也占有一定比例,比如“《战狼》、《战狼2》的主演都是吴京”,那么要抽出“(战狼, 主演, 吴京)”、“(战狼2, 主演, 吴京)”;

4、同一对(s, o)也可能对应多个p,比如“《战狼》的主演和导演都是吴京”,那么要抽出“(战狼, 主演, 吴京)”、“(战狼, 导演, 吴京)”;

5、极端情况下,s、o之间是可能重叠的,比如“《鲁迅自传》由江苏文艺出版社出版”,严格上来讲,除了要抽出“(鲁迅自传, 出版社, 江苏文艺出版社)”外,还应该抽取出“(鲁迅自传, 作者, 鲁迅)”。

模型设计 #

在“样本特点”一节我们列举了5点基本的观察结果,其中除了第5点略显极端外,其余4点都是信息抽取任务的常见特点。在正式动手之前,我简单调研了目前主要的信息抽取模型,发现竟然没有一个模型能很好地覆盖这5个特点。所以我放弃了已有的抽取思路,自行设计了一个基于概率图思想的抽取方案,然后从效率出发,利用CNN+Attention完成了这个模型

概率图思想 #

比如,一种比较基准的思路是先进行实体识别,然后对识别出的实体进行关系分类,但这种思路无法很好地处理同一组(s, o)对应多个p的情况,同时会存在采样效率地的问题;另一种思路是作为一个整体的序列标注来搞,参考论文《Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme》,但这种设计不能很好地处理同时有多个s、多个o的情况,需要非常丑陋的“就近原则”;还有“杀鸡用牛刀”地动用强化学习的方法...而无一例外地,这些方法都不能解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值