前沿重器[17] | 美团搜索ner技术启示(下)

前沿重器

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

近期,我再次总结了我的历史文章,累积起来有50w字,百余篇文章了,有兴趣可以拿来看看,获取方式:七夕清流,百余篇累计50w字文章合集发布

往期回顾

随着文本层面的搜索向语义向量召回迭代(可能不少新人都不知道文本搜索了吧?),NER任务在搜索中的地位好像有所下降,但是作为关键的理解和抽取技术,仍有重要的应用场景,因此好好掌握还是非常关键的。

这次给大家以美团的技术分享为依据和思路指导,给大家介绍一下业界处理ner问题的基本方案,这篇文章写的非常详细,有时间大家绝对要好好理解吸收一遍。

原文章摆这里:https://mp.weixin.qq.com/s/632T-bwnKU2Ui4Uidpoylw

由于内容众多,一篇实在写不完,所以我分两篇来整:

模型

上一期提到,模型的主要责任就是识别长尾、未登陆的结果,首先,我们学习一下美团的模型迭代历程,这个迭代成一方面伴随着技术的变迁,另一方面也记录业务逐渐拓展下模型的应对能力。

f07e80b38384ea09126c0a1e7c911964.png

2018年以前是比较经典的CRF模型,而后升级为lstm-crf,然后从整流开始逐步从蒸馏bert到bert完全体,再到后续对bert的魔改和场景、知识适配。而在技术上,也是逐步从离线预计算到蒸馏再到大模型,这里面所透露的信息都很多,一方面业务效果优先的情况下,大模型会是趋势,而大模型的短板主要在于性能,性能在逐步解决后大模型也就得以上线。围绕着NER任务,模型构建主要面临的是这几个问题:

  • 性能。

  • 领域强相关。

  • 标注数据。

性能问题,从上述的迭代流程能看到其优化流程,领域相关的问题则是通过各种业务数据的引入,或增强或嵌入的方式优化NER方法,而针对标注数据的问题,则采用了一种弱监督的NER方法来进行优化。

目前美团主要使用的是BERT和BERT-LR级联模型。

BERT

相信BERT大家都不陌生了,但阻碍其应用的最大问题就是他的推理速度,美团的应对则是从蒸馏和加速两个方向去做。

模型压缩领域的主要操作就是剪枝和蒸馏,美团实验表明剪枝的损失不小,所以就剩下蒸馏这条路,这种方式并不新颖,2015年Hinton大神就已经提到过,通过Teacher模型对Student的学习,能让student逐步逼近teacher模型的结果,从而完成蒸馏。而在美团的实践经验和场景下,有如下明确的模型建议:

  • 模型上更建议用推理速度快的网络进行蒸馏,保证在线运行速度。(IDCNN-CRF)

  • 训练过程中使用标签近似(因为NER任务本身的特定)来指导学习。

而在加速上,文章提供了3种方法:

  • 算子融合。提到了基于NV的Faster Transformer并进行了二次的开发,在稳定性和易用性上做了一定的改进,加速的核心主要在于降低Kernel Launch次数和提高小算子访存效率。

  • Batching。在流量巨大的互联网场景,完全可以凑成batch再来进行计算以降低Kernel Launch次数、充分利用多个GPU SM。

  • 混合精度。混合精度本质是可以减少显存开销,兼顾FP32的稳定和FP16的速度。

知识增强的NER

语言模型目前已经能够很轻易地学习到语法信息,类似GPT等已经能够生成非常“人类”的语言,现在的技术瓶颈就落在了“知识”上,尽管模型生成的语言非常“人类”,但是因为少了知识的支撑,所以经常是“一本正经的胡说八道”,因此知识嵌入或者说增强则成为一个技术热点,在NER里面也有大量知识增强的技术手段。

开始讲之前,分享一个技术点,就是有关词典和模型的融合,已经有人进行了完整的总结,此处给大家链接以备拓展阅读:https://zhuanlan.zhihu.com/p/136277575

Lattice-LSTM的提出本质是一种能结合字和词的NER方法,从而完成知识的嵌入,而在搜索场景下,Query乃至物料中都会存在大量的诸如POI之类的信息,这些信息的嵌入能直接使效果提升。

8df6d54b36b280141f709e57492686ad.png

这里重点讲了两个技术细节,分别是短语挖掘计算与具体模型嵌入的方式。

短语挖掘计算上,是根据query和doc之间的匹配情况来进行抽取,然后通过多模型的方式生成多个候选结果,这个候选结果通过整数规划进行选择,使整体得分最大化。

模型嵌入上,采用结构其实和常规的实体词嵌入差不多,将词向量、实体短语向量、字向量之间进行组合,如下图所示,在计算过程通过LSTM的方式将或长或短的短语和词汇信息融合进来。

cc5482617fe65c1fe134f5edd593691f.png

在此基础上,构造了领域词典知识和模型融合的方案,并分为了两个阶段,拆分为实体边界识别和标签识别,这个方式的优势是可以跨领域使用,同时也能充分使用实体数据等信息提升识别率。

  • 一阶段,用bert关注实体边界。

  • 二阶段,则将实体词典带来的信息融入到实体分类模型中。模型上采用的是IDCNN,内部一方面会对切分结果进行编码,然后把编码内容输入到标签识别模型中。值得强调的是,IDCNN的使用主要考虑的是性能问题,当然bert也能使。

74966b285c6325d7ee3889446f351c1e.png

弱监督学习

617a29aa45fd4796310b63d64791a494.png

弱监督是一种基于少量已标注样本和大量无标注样本的学习方法,这种情况更加符合NER的使用场景,因此美团的NER也提到了这个方案。

整个训练和使用的流程也分两块:弱监督标注样本生成和弱监督模型训练。

第一步的弱监督标注样本生成:

  • 首先用已标注数据训练一个初版本模型(有监督学习),这里用的初版模型。

  • 用词典数据作为无监督样本,用上一步的bert预测得到实体识别结果。

  • 对该结果进行修正,修正的方式就是根据词典和模型的差别进行综合选择。

aeb5500590e274b904b3072f63224c4f.png

第二步是弱监督模型训练,在第一步生成的样本和标注样本进行混合不区分的方式进行训练,这种训练可以是有别于第一步的模型,也可以是在第一步模型的基础上进行微调,两者从最终的效果来看后者更好。

启示

整篇文章,美团进行对他们的NER方案进行了非常有效的方法,本质上是需要应对三大核心问题:

  • 性能要求。

  • 领域强相关。

  • 标注数据。

这些核心问题,也是我们经常会遇到的核心问题,在参透这些本质的基础上,可以开始步步为营地综合解决。

  • 性能问题,随着硬件、编译等技术,从小模型向大模型cache再向大模型迁移。

  • 领域问题,结合领域挖掘的词典,并把词典信息输入进去,完成领域信息的构造和融入。

  • 标注数据本就有限,人工一方面数量大了不显示,另一方面也不完全靠谱,弱监督的方式就非常合理了。

当然了,NER的终点并非在此,落地场景上搜索仍会在很长的一段时间内需要NER技术,还有很多类似实体链接等的任务离不开NER,而在技术和场景需求上,OOV问题、歧义、嵌套等问题仍有待解决,对于领域的问题,甚至是领域的通用性问题,都还有很大的空间,都需要我们持续学习和进步。

d16763cd7772b0cfe76e16e064f5929c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值