背景介绍

实体链指是指对于给定的一个文本(如搜索Query、微博、对话内容、文章、视频、图片的标题等),将其中的实体与给定知识库中对应的实体进行关联。实体链指一般有两种任务设计方式:Pipeline式和端到端式。

任务抽象方式

赛题说明

百度飞桨举办的千言数据集:面向中文短文本的实体链指任务给出了中文短文本、短文本中的mention以及对应位置,需要预测文本中mention对应实体在给定知识库中的id,如果在知识库中没有对应实体即NIL,需要再给出实体类别。

训练集数据共7W条,query平均长度22,包含26W个mention,每个mention有6.3个候选实体,被链接到的NIL实体有3W个,其中1.6W在知识库中有同名实体。可以发现有三个特点:

  • 文本长度短,上下文信息有限
  • 候选实体数量多
  • NIL数量多,占比超过了10%

模型方案

这次比赛已经给出了mention信息,我们只需要考虑两个任务:实体消歧和NIL分类。任务的关键有以下几点:如何设计输入样本、如何设计模型结构、NIL实体如何与其他实体一起排序、如何挖掘更丰富和多维度的特征等。

样本构造

我们选取了ERNIE、RoBERTa等预训练语言模型进行语义特征抽取,将需要链指的文本和实体描述信息用[SEP]符号拼接,作为模型的输入。

query样本构造:query样本输入时需要将mention的位置信息传入模型,让模型能判断mention在query中的具体位置,例如:“海绵宝宝:海绵宝宝和派大星努力工作,两人来到高速公路上!”中出现了两次海绵宝宝,分别链接到了动画片《海绵宝宝》和动画人物海绵宝宝,需要加以区分。为了解决这一问题我们通过引入标识符将位置信息传入,在mention两边加入统一的标识符“#”,样本如下:

实体描述样本构造:数据库中的实体包含了实体的标准说法subject,实体的类型type和实体的一些相关SPO信息。构造样本时将mention字段和实体标准名用“-”拼接作为输入,强化标准名和mention是否相同这一特征。实体类型是消歧重要的信息,我们构造了“类型:实体类型”这种描述,提供实体类型信息,为了防止截断,将其放在实体标准名之后。SPO信息只使用了属性值,这样可以使超过最大输入长度的样本数量减少35%。

统计特征样本构造:数据和特征决定了模型的上界,为了丰富模型输入,将实体类型、实体长度、mention长度、实体和mention的Jaccard相似度等特征进行embedding了之后,和模型输出的特征向量拼接。

模型结构

实体消歧本质上是对候选实体进行排序的过程,使用query和实体信息作为输入,对候选实体进行排序,给出候选实体分数,选出TOP1实体。在排序学习中,有三种常见模式pointwise,pairwise和listwise,对于实体消歧这种只需要TOP1的排序任务,并不需要考虑候选实体之间的顺关系,只考虑全局相关性,因此我们选取了pointwise方法。

排序学习模型示意

实体分类任务和实体链指任务看起来没有直接联系,但是Shuang Chen [2] 提出当可以预测出mention的类型时,消歧就相当容易。因此我们设计了多任务模型框架,同时进行排序和分类,两个任务共享模型参数,一起训练,损失函数一起优化,通过共享排序任务和分类任务的信息,模型可以有更好的表现,多任务损失函数如下。

最终我们模型结构如下,将query和实体描述拼接,输入预训练语言模型,将CLS、mention开始和结束位置的向量拼接作为特征向量。排序任务将特征向量输入全连接层,然后经过tanh最终输出[-1,1]区间的分数,分数越高代表越有可能是目标实体。分类任务将特征向量输入全链接层,经过softmax层输出各个分类的得分。

实体链指和分类模型结构

模型优化

数据清洗

基于置信学习数据清理:分析数据集我们发现,数据之中存在部分标注错误,根据Northcutt [6] 置信学习的思想,我们在原始数据上用n-flod方式训练了5个模型,用这些模型预测原始训练集的标签,然后融合5个模型输出的标签作为真实标签,再从原始训练集中清理真实标签与原标签不一致的样本,根据经验清理的样本数量最好不大于10%。

NIL实体排序方式实验

实体消歧过程中NIL实体如何和其他实体一起排序,是单独作为一个分类任务,还是将NIL转换为特定类型的实体参与排序,针对这个问题,我们设计了三种方案:

  • 方案1:只对知识库中存在的实体进行排序,当top1的score小于阈值时,认为是NIL实体;
  • 方案2:构造NIL实体样本“mention-mention,类型:未知类型”,例如:“英雄三国-英雄三国,类型:未知类型”,表示该实体是一个未知实体。预测和训练时,所有mention候选实体中增加一个未知实体,参与排序;
  • 方案3:将所有候选实体拼接,和query样本一起输入模型进行分类,判断是不是NIL实体,理论上这样可以带来更多全局信息。考虑到训练速度,我们先用1)中的方案进行排序,然后将top3的实体描述拼接,训练一个分类模型。

对抗训练

对抗训练流程示意

对抗训练是指在模型的训练过程中构建对抗样本,参与模型训练的方法。正常训练过程中,如果梯度方向陡峭,那么很小的扰动都会产生很大的影响。为了防止这种扰动,对抗训练在模型训练的过程中使用带扰动的对抗样本进行攻击,从而提升模型的鲁棒性。我们实验了FGM和PGD两种生成对抗样本的方式。

对抗样本生成代码

实验结果分析

模型可解释性

可解释性建模示意

在训练完模型后,我们首先会想要知道模型学到了哪些特征。C Guan [7] 提出了一种基于互信息的可视化方法,这种方法相较其他可视化方法,具有普适性和一贯性的特点,即解释指标有明确的意义,同时又能比较神经元之间、层与层之间和模型与模型之间的差异。

可解释性建模代码

为了了解模型到底关注哪些输入特征,我们基于Paddle2.0复现了该算法,对各个词的重要程度进行了可视化,颜色越深重要程度越高。通过可视化发现,模型倾向于关注实体的类型和用来区分实体的片段,例如示例1吃得慢、食物、吃法、火腿肠,示例2中的珊迪、海绵宝宝、开关电源品牌。示例3种的人物、种族、梦三国等,可以看到多任务模型关注的特征都是对消歧有帮助的。

实验结果分析

相关实验中参数配置如下:ERNIE和BERT的模型batch size为64,初始学习率为 5e-5,max_seq_length为256,RoBERTa-Large的模型batch size为32,初始学习率为 1e-5,max_seq_length为256,均采用了基于指数衰减的学习率衰减策略。

对比不同预训练模型和置信度学习的结果,发现模型效果RoBERTa-Large > ERNIE+置信度学习>ERNIE>BERT。可以看到ERNIE专门针对中文数据进行了任务优化,确实比BERT的效果更好,但是ERNIE(12层)和RoBERTa-Large(24层)的对比说明了一寸长一寸强,更多的参数可以有更好的表现。

表1 预训练模型对比

对比单任务和多任务时,我们使用了基于ERNIE的模型。通过对比多任务和单任务的模型效果,我们发现多任务不但流程简单,而且效果也比单任务联合好。排序时模型需要借助类型信息判断mention与候选实体是否一致;NIL分类时能学习到知识库中其他候选实体的信息,所以两个任务共享参数可以使模型提取到两个任务的共性,提升模型效果。

表2 单任务和多任务对比

从模型1、2、3可以看到对抗学习是一种通用的模型优化方法,在各种模型上都有明显提升,但是FGM和最强一阶对抗方式PGD实体链指任务上差距并不明显。

表3 对抗学习效果

NIL不同方式参与排序的实验中,我们发现使用构造NIL样本参与匹配和对排序TOP1的score卡阈值这两种方式结果差别不大,AUC分别为0.97和0.96,训练NIL分类器的AUC仅为0.94,猜测是因为对候选实体进行top3采样时,已经有了误差积累。

NIL不同方式参与排序的ROC曲线

通过将表现好的模型进行融合我们在dev测试集上的F1达到了88.7,在A榜数据集F1达到88.63,在B榜数据集F1达到91.20,最终排名第二。

小布助手的探索

小布助手每天处理千万级别的用户问题,其中涉及实体词的query高达30%。这些由不同人发出的真实对话里,既包含千人千面的主观表达,更包含大量的创新词汇,多义词,同义词,同时也经常会面对“李白是谁”、“我要听《李白》”这类mention有歧义的问题。

小布助手实体链指流程

小布助手的技术积累不仅帮助我们在比赛中名列前茅,而且已经帮用户解决“哥哥的代表作”、“李白是谁”、“我要听《李白》”等常见而语音助手又极易误解的用户问题。黑格尔说过:人是靠思想站立起来的。思考赋予人类尊严,驱动文明不断向前。小布助手汇聚无数背后英雄的思想,也在默默努力,然后用有趣贴心有灵魂惊艳所有人。

赛后感想

工欲善其事,必先利其器,本次比赛使用了飞桨2.0框架进行训练,动态图模式下程序可即时执行并输出结果,提高了编码效率。借助百度的PaddleNLP工具包,可以无缝切换ERNIE、BRART、RoBERTa等预训练模型,非常适合比赛时快速实验。

PaddleNLP工具包链接:https://github.com/PaddlePaddle/PaddleNLP

这次比赛的赛题也很值得探索,实体消歧和分类两个任务如何有机结合,可以做很多尝试。一个实体链指任务就有抽象成多种方式,足以见得兵无常势,水无常形,我们在解决算法问题时,要跳出思维定势,尝试从不同的角度去抽象问题,找到最佳的解决方案。

本项目链接:除了实体链指任务,千言项目还有情感分析、阅读理解、开放域对话、文本相似度、语义解析、机器同传、信息抽取等方向持续打榜中。

传送门:https://www.luge.ai/

参考文献

[1]Deep Joint Entity Disambiguation with Local Neural Attention. Octavian-Eugen Ganea, Thomas Hofmann.

[2]Improving Entity Linking by Modeling Latent Entity Type Information,Shuang Chen, Jinpeng Wang, Feng Jiang, Chin-Yew Lin.

[3]End-to-End Neural Entity Linking. Nikolaos Kolitsas, Octavian-Eugen Ganea, Thomas Hofmann.

[4] Improving Entity Linking by Modeling Latent Entity Type Information. Shuang Chen, Jinpeng Wang, Feng Jiang, Chin-Yew Lin.

[5]Towards Deep Learning Models Resistant to Adversarial Attacks. A Madry, A Makelov, L Schmidt, D Tsipras.

[6]Confident Learning: Estimating Uncertainty in Dataset Labels. Curtis G. Northcutt, Lu Jiang, Isaac L. Chuang.

[7]Towards a Deep and Unified Understanding of Deep Neural Models in NLP. Chaoyu Guan, Xiting Wang, Quanshi Zhang, Runjin Chen, Di He, Xing Xie.

作者介绍

樊乘源

OPPO 小布助手 NLP 工程师

负责对话和知识图谱相关工作,研究方向包括意图分类、序列标注、关系抽取、实体链指等。

小布助手在面向中文短文本的实体链指比赛中的实践应用相关推荐

  1. 小布助手在百度飞桨实体链指比赛中的实践应用

    本文由百度飞桨举办的千言数据集:面向中文短文本的实体链指任务比赛中取得优异成绩的小布助手算法工程师樊乘源投稿. 背景介绍 实体链指是指对于给定的一个文本(如搜索Query.微博.对话内容.文章.视频. ...

  2. 面向中文短文本的实体链指任务竞赛亚军DeepBlueAI团队技术分享

    ©PaperWeekly 原创 · 作者|罗志鹏 学校|深兰北京AI研发中心 研究方向|物体检测 全国知识图谱与语义计算大会(CCKS 2020)11 月 12 日至 15 日在江西南昌举行,CCKS ...

  3. 中文短文本的实体链指

    中文短文本的实体链指任务 1. 任务描述 本评测任务围绕实体链指技术,结合其对应的AI智能应用需求,在CCKS 2019面向中文短文本的实体链指任务的基础上进行了拓展与改进,主要改进包括以下几部分: ...

  4. 顶流AI大赛背后:OPPO小布助手的技术势能和促成的想象力

    参加一场AI大赛,并获得了15万元的奖励,是怎样一种体验? 或许这个叫"AI小花"的团队最有发言权. "AI小花"团队通过有区分的未登录词(OOV)预处理.基于 ...

  5. 小布助手,身入大千世界

    在2018年-2019年,AI智能助手一度火热,成了科技行业的全新风口.智能音箱与手机中,我们能看到各种各样的智能助手横空出世,一度成为产品标配. 但随着时间缓缓冲刷,就像所有科技风口一样,有的AI智 ...

  6. 实体链接在小布助手和OGraph的实践应用

    1 问题背景 精准直达的知识问答能力对营造小布"懂知识.更懂你"的形象非常重要.在语音助手场景,经常会出现一词多义或者口语化表达等问题.例如:李白出装,李白的诗,播放李白.第一李白 ...

  7. 实体链接在OPPO小布助手和OGraph的实践应用

    1 问题背景 精准直达的知识问答能力对营造小布"懂知识.更懂你"的形象非常重要.在语音助手场景,经常会出现一词多义或者口语化表达等问题.例如:李白出装,李白的诗,播放李白.第一李白 ...

  8. 前沿重器[7] | 小布助手登顶百度千言短文本相似度的秘诀

    [前沿重器] 栏目主要给大家分享各种大厂.顶会的论文和分享,从中抽取关键精华的部分和大家分享,和大家一起把握前沿技术.具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有. 往期回顾 前沿重器[2] | ...

  9. AI趋势下,小布助手的进化论

    "要构建人工智能等高精尖产业的新增长引擎",随着人工智能在未来全球科技经济中的重要作用愈加凸显,当前产业已然获得了有史以来最强的政策建构力量. 随着政策的利好,中国人工智能进入一个 ...

最新文章

  1. halcon:(4)halcon中XLD的概念与应用----汽车引擎盖圆孔检测
  2. 我为什么看好IPFS
  3. 九、Spark模块和安装
  4. Vue2.0+vuex+H5实现音乐播放及歌曲切换功能的方法及原理解释
  5. Java ServletContext 详解
  6. 变频电源出现故障了怎么办,该如何去诊断呢
  7. 关于XShell 启动虚拟机的weblogic并在本地打开oracle-weblogic 有关部署
  8. 五种编程语言解释数据结构与算法——顺序表3(JavaScript与Python语言实现)
  9. 微软 .NET 团队宣布 Visual Basic 停止更新,VB 编程即将谢幕
  10. 名编辑电子杂志大师教程 | 文本复制按钮
  11. ARM 指令集版本和ARM 版本
  12. 前端第二章:6.浏览器的自动修复机制;网页布局 (header标签、main标签、footer标签;nav标签;aside标签)
  13. 使用beautiful soup解析xml
  14. Jquery定时弹广告
  15. 每日一题(4.27 - 5.2)
  16. 计算机键盘无法使用怎么处理,电脑键盘失灵怎么解决
  17. 计算机网络学习笔记(持续更新)
  18. 特征值和奇异值(svd)
  19. 网络分层的真实含义是什么
  20. AHB2APB桥接器设计(1)——基本原理

热门文章

  1. java帮助文档mye_【SpringMVC】使用Myeclipse创建SpringMVC项目【超详细教程】
  2. U盘可以被识别但无法驱动问题
  3. 【网络】计算机网络-数据链路层 Data Link Layer
  4. hpuoj 1725: 感恩节KK专场——特殊的比赛日期 (素数判断)
  5. 中国服装自主品牌行业市场环境与投资趋势分析报告
  6. RecyclerView条目item点击事件---放大
  7. recyclerview的条目添加点击事件
  8. 微信小程序学习笔记(1)
  9. 实验三 多层神经网络
  10. 如何将PDF转为word