1 问题背景


精准直达的知识问答能力对营造小布“懂知识、更懂你”的形象非常重要。在语音助手场景,经常会出现一词多义或者口语化表达等问题。例如:李白出装,李白的诗,播放李白。第一李白是指游戏角色,第二个是指诗人李白,第三个是指歌曲李白。如何精确识别用户所指、给出正确的答案是小布助手面临的挑战。

知识图谱是让机器理解客观世界的基石,拥有极强的表达能力和建模灵活性。目前OPPO自建知识图谱OGraph已经积累了数亿实体和数十亿关系。接下来让我们看看小布和Ograph将如何碰撞,通过实体链接技术解决实体歧义问题,帮助小布做能听、会说、更懂你的智能助手。

图:小布助手KBQA流程

2 任务介绍


实体链接是NLP、知识图谱领域的基础任务,即对于给定的一个中文文本,将其中的实体描述(mention)与给定知识库中对应的实体进行关联的任务。

2009年在TAC会议上第一次提出实体链接任务,2014年深度学习流行之前都是通过统计特征和基于图的方法进行实体链接。2017年提出了Deep Joint方案,使用Attention结构进行语义匹配来实体消歧。后面该团队通过模型结构创新,实现了同一个模型同时实体识别和消歧,消歧依旧使用Attention。2018年提出了Deep Type方案,将消歧问题转化为实体分类,得到实体类别后,通过Link Count确定要链接到的实体。2020年预训练语言模型开始流行,Entity Knowledge方案借助大量的语料和强大的预训练模型,用序列标注的方式进行实体链接。

图:实体链接发展历程

3 技术方案


实体链接通常会被拆分为三个子任务:实体识别、候选实体召回、实体消歧。

图:实体链接流程示意

3.1 实体识别

实体识别的作用是识别出query中的实体描述(即mention),例如李白所在朝代皇帝是谁中的李白即为要识别的mention。在进行通用领域实体识别时,实体量级大、类型多、说法多样,因此方案要兼顾效率和泛化。

小布助手开发了基于词典的实体识别使用自研匹配工具Word Parser,该工具无论是在性能还是功能都较开源工具有优势。

实体链接中并不关心实体类型,因此实体识别可以使用 B/I 标签或者指针标注的模式,同时为了提升输入信息的丰富程度,引入词汇信息作为特征补充,试验了 Lattice LSTM 和 FLAT 等结构,实体识别效果提升约 1%。

图:FLAT示意

3.2 候选实体召回

候选实体召回的目标是用mention召回所有可能的候选实体,但是线上存在大量昵称、同音字、口语化表达,例如:卷福、抖森这类昵称别名,而且还会出现表述错误,例如丰满奥特曼、拖拉机奥特曼、倩雅集,如果缺乏别名到正确实体的映射,就无法完成召回。在语音场景没有用户直接反馈,无法像搜索一样通过用户点击进行挖掘,因此实体别名的挖掘相当有挑战。

图:实体别名示意

根据问题的特点,我们构建了两套方案,通用别名挖掘采用信息抽取为主模式生成为辅的挖掘流程,充分利用OGraph中的描述信息、别名信息和关系信息,从中挖掘别名。

图:通用别名挖掘流程

针对用户输入错误、同音字、近音字这类别名挖掘,小布助手开创性的构建了基于特征聚类的别名发现流程。挖掘步骤如下:

1)Query筛选:采用领域关键词过滤、搜索点击日志筛选的方式,从用户搜索query和小布助手线上query中筛选出可能包含待挖掘别名的query。

图:错误别名示意

2)实体识别:使用实体识别技术,从待挖掘query中识别实体。实体识别模型采用通用实体识别模型+垂域finetune的方式得到。

3)领域特征构建:由于实体识别直接得到的实体别名准确率不高,而且没有和实体标准名关联起来,需要构建领域特征,将挖掘的实体别名与实体标准名关联。根据场景特点,我们选取了部首偏旁特征和拼音特征。

4)特征聚类:使用聚类的方式来关联挖掘的实体别名与实体标准名。通过使用这套挖掘方案,得到数十万实体别名,准确率95%+,解决了线上高频的别名问题。

图:基于特征聚类的别名发现流程

3.3 实体消歧

实体消歧是实体链接中最关键一步,消歧的本质是排序,通过对候选实体进行排序,得到每个候选实体的排序分数,选出最终的结果。实体消歧有下面主要问题:

1)在语音助手场景下多为短文本,因此上下文特征缺失,需要额外构造特征帮助消歧。

2)消歧时不能仅仅通过语义特征来消歧,还要充分考虑全局消歧特征,例如“刘德华给学员讲课,把炸弹比喻成姑娘的手”中的刘德华,从语义上来讲清华大学教授刘德华更符合,实际上是演员刘德华和《拆弹专家》的文章标题。

3)图谱中存在未对齐实体,导致模型消歧困难,同时容易出现语料标注错误。例如中国和中华人民共和国在有些开源图谱中是两个实体,导致训练集里有些正确标签中国这个实体,有的正确标签为中华人民共和国这个实体。

针对上面提到的问题,我们从数据准备、模型选型、模型优化等方面着手,通过针对性的优化解决这些问题。

3.3.1 数据准备

构造消歧样本时,我们提供尽可能多的信息给模型,样本由三部分构成:query样本、实体样本和统计特征。

query样本构造:query样本输入时关键时将mention的位置信息传入模型,让模型能判断mention在query中的具体位置。因此引入标识符#将,在mention两边加入统一的标识符“#”,样本如下:

图:query样本示意

实体描述样本构造:实体样本中需要包含待消歧实体的特征,我们在第一版实体样本中设计了mention和标准名的拼接表示标准名和mention是否相同这一特征;构造了“类型:实体类型”这种描述,提供实体类型信息;同时加入了实体描述和图谱的三元组信息。在第二版中,我们将标准名和mention是否相同的特征直接转化成文本描述“名称相同/不同”,同时加入了“非/是主义项”这一特征,通过优化特征表达方式,模型表现提升约2%。

图:实体样本示意

统计特征样本构造:为了避免消歧模型只关注语义特征,我们统计了query和实体样本共现特征、流行度、丰富度、mention共现特征等统计特征,作为模型输入,辅助进行全局消歧。

图:统计特征示意

3.3.2 模型选型

排序学习中,有三种常见模式pointwise,pairwise和listwise,对于实体消歧这种只需要TOP1的排序任务,并不需要考虑候选实体之间的顺关系,只考虑全局相关性,因此我们选取了pointwise方法。

图:排序学习模型示意

总结前人的消歧模型,Deep Joint从排序出发,Deep Type从分类出发,都取得了较好的效果,说明分类和排序任务都对消歧有帮助,因此我们根据任务特点,设计了多任务模型框架,同时进行排序和分类,两个任务共享模型参数,一起训练,损失函数一起优化,通过共享排序任务和分类任务的信息,模型可以有更好的表现,多任务损失函数如下。

为了更好的融入统计特征,我们直接将统计特征embedding拼接到特征向量后面进行排序。

图:实体消歧模型示意

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

通过试验基于多任务的实体链接模型效果整体上优于单任务模型,具体F1见下表。

3.3.3 模型优化

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

图:模型可视化

置信学习(Confident Learning ,CL)是一种识别标签错误、表征标签噪声的算法框架。针对标注错误的问题根据置信学习的思想,在原始数据上用n-flod方式训练了5个模型,用这些模型预测原始训练集的标签,然后融合5个模型输出的标签作为真实标签,再从原始训练集中清理真实标签与原标签不一致的样本,我们清理的样本占比3%,其中标签错误的80%+。

图:对抗训练流程示意

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

4 技术应用


4.1小布助手中的应用

图:小布助手KBQA流程示意

在小布助手场景中,用户对语音助手的智能程度抱有很大的期望,会问各类有趣的问题,比如多跳问题、六度关系查询等。借助实体链接技术小布助手可以精确识别用户所指,配合子图匹配技术可以处理实体问答、结构化问答、多跳问答、六度关系查询等,覆盖大部分结构化问题。

图:小布助手各类结构化问答示意

为了验证小布助手的实体链接能力,我们在自建评测集和千言评测集上都测试了我们的算法,可以取得良好的效果。

4.2 OGraph中的应用

实体链接不仅可以应用到KBQA,在信息抽取流程中也是至关重要的一环。Ograph信息抽取流程使用了信息抽取模型Casrel和专门针对实体类问题训练的MRC模型,可以获得海量候选三元组。

得到三元组后需要利用实体链接技术,将三元组与知识库中的实体链接起来。为了保证实体链接的召回,我们优化了候选实体召回能力,同时使用挖掘的实体别名词表和ES检索系统进行召回,确保链接效果,通过整个流程生产三元组数百万。

图:OGraph信息抽取流程

5 总结


通过在实体链接技术上的探索,小布助手可以更好的解析各类实体口语化表达、别名和歧义,借助KBQA其他流程和OGraph丰富的知识储备,已经能够解答大部分用户提出的问题,自然语言理解道阻且长,小布助手的进化永远不会停止。

6 参考文献


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. Investigating Entity Knowledge in BERT with Simple Neural End-To-End Entity Linking, Samuel Broscheit.

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.

作者简介


FrankFan

OPPO高级NLP算法工程师

主要从事对话和知识图谱相关工作,在实体挖掘、序列标注、关系抽取、实体链接等方向具有丰富的研发经验,积累专利十余篇。

实体链接在OPPO小布助手和OGraph的实践应用相关推荐

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

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

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

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

  3. 小布助手在面向中文短文本的实体链指比赛中的实践应用

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

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

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

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

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

  6. 能动口“布”动手 OPPO小布打造便捷高效智能生活

    万物互融之下,手机智能助手承担的任务越来越多,已经从最初的语音控制,转变成全方位.多场景的AI机器人.作为国内首个月度活跃用户破亿的手机语音助手,OPPO小布助手一直致力于打造便捷高效的语音操作体验. ...

  7. 图谱实战 | OPPO自研大规模知识图谱及其在小布助手中的应用

    分享嘉宾:李向林 OPPO 编辑整理:吴祺尧 加州大学圣地亚哥分校 出品平台:DataFunTalk 导读:OPPO知识图谱是OPPO数智工程系统小布助手团队主导.多团队协作建设的自研大规模通用知识图 ...

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

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

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

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

最新文章

  1. 交叉熵损失函数在多分类深度学习中的应用 转
  2. Android 操作串口 (android serial port api)
  3. oracle的乐观锁和悲观锁
  4. Extranet MPLS ×××
  5. 通过TCP/IP连接Mysql数据库
  6. 高通平台:USB充电
  7. 不同的寻址方式的应用——将每行单词的前X个字母改为大写
  8. QUIC实战(三) letsencrypt证书申请和自动续期
  9. ML二:python批量修改文件名-测试KDTree
  10. 数学分析闭区间套定理_【缠论基础】区间套
  11. 《编程珠玑(续)(修订版)》—第2章2.1节Awk中的关联数组
  12. 百度高级副总裁沈抖加入爱奇艺董事会 王路退出
  13. sql 批量插入数据到Sqlserver中 效率较高的方法
  14. 【06年博文搬家】一个修改时间的批处理程序
  15. 整数规划 Integer Programming 是什么
  16. VS2017配置opencv教程(超详细!!!)
  17. 金陵科技学院c语言实验报告册,C语言实验报告册a
  18. python_循环语句for_1.12
  19. openstack ovs-vswitch收包流程
  20. 【数字图像处理】图像的数学变换之傅里叶变换

热门文章

  1. XSS Challenges xss-quiz.int21h.jp
  2. hihoCoder 1039:字符消除(字符串处理)
  3. OPC是什么意思?OPC Server 和OPC Client又有什么区别呢?
  4. 滴滴出行用户运营分析
  5. 单点登录的三种实现方式
  6. python wms系统源码_java开发的wms仓库管理系统源码(PC+Android)
  7. NSString转GBK编码格式
  8. 小猿圈python之练习小例子
  9. 第三届“传智杯”全国大学生IT技能大赛(初赛)-Java B组题解
  10. 生产时间戳错误的分析过程及解决办法