关于算法:小布助手在面向中文短文本的实体链指比赛中的实践应用

背景介绍

实体链指是指对于给定的一个文本(如搜寻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层)的比照阐明了一寸长一寸强,更多的参数能够有更好的体现。

比照单任务和多任务时,咱们应用了基于ERNIE的模型。通过比照多任务和单任务的模型成果,咱们发现多任务岂但流程简略,而且成果也比单任务联结好。排序时模型须要借助类型信息判断mention与候选实体是否统一;NIL分类时能学习到知识库中其余候选实体的信息,所以两个工作共享参数能够使模型提取到两个工作的共性,晋升模型成果。

从模型1、2、3能够看到反抗学习是一种通用的模型优化办法,在各种模型上都有显著晋升,然而FGM和最强一阶反抗形式PGD实体链指工作上差距并不显著。

NIL不同形式参加排序的试验中,咱们发现应用结构NIL样本参加匹配和对排序TOP1的score卡阈值这两种形式后果差异不大,AUC别离为0.97和0.96,训练NIL分类器的AUC仅为0.94,猜想是因为对候选实体进行top3采样时,曾经有了误差积攒。

通过将体现好的模型进行交融咱们在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/PaddlePadd…

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

本我的项目链接:
除了实体链指工作,千言我的项目还有情感剖析、浏览了解、凋谢域对话、文本类似度、语义解析、机器同传、信息抽取等方向继续打榜中。

传送门: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 工程师

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理