美团搜索中NER技术的探索与实践

1. 背景

命名实体识别(Named Entity Recognition,简称NER),又称做“专名识别”,是指识别文本中具备特定意义的实体,主要包括人名、地名、机构名、专有名词等。NER是信息提取、问答系统、句法分析、机器翻译、面向Semantic Web的元数据标注等应用领域的重要基础工具,在天然语言处理技术走向实用化的过程当中占有重要的地位。在美团搜索场景下,NER是深度查询理解(Deep Query Understanding,简称 DQU)的底层基础信号,主要应用于搜索召回、用户意图识别、实体连接等环节,NER信号的质量,直接影响到用户的搜索体验。git

下面将简述一下实体识别在搜索召回中的应用。在O2O搜索中,对商家POI的描述是商家名称、地址、品类等多个互相之间相关性并不高的文本域。若是对O2O搜索引擎也采用所有文本域命中求交的方式,就可能会产生大量的误召回。咱们的解决方法以下图1所示,让特定的查询只在特定的文本域作倒排检索,咱们称之为“结构化召回”,可保证召回商家的强相关性。举例来讲,对于“海底捞”这样的请求,有些商家地址会描述为“海底捞附近几百米”,若采用全文本域检索这些商家就会被召回,显然这并非用户想要的。而结构化召回基于NER将“海底捞”识别为商家,而后只在商家名相关文本域检索,从而只召回海底捞品牌商家,精准地知足了用户需求。 正则表达式

图1 实体识别与召回策略

有别于其余应用场景,美团搜索的NER任务具备如下特色:算法

  • 新增实体数量庞大且增速较快:本地生活服务领域发展迅速,新店、新商品、新服务品类层出不穷;用户Query每每夹杂不少非标准化表达、简称和热词(如“朝思暮想”、“吸猫”等),这对实现高准确率、高覆盖率的NER形成了很大挑战。
  • 领域相关性强:搜索中的实体识别与业务供给高度相关,除通用语义外需加入业务相关知识辅助判断,好比“剪了个头发”,通用理解是泛化描述实体,在搜索中倒是个商家实体。
  • 性能要求高:从用户发起搜索到最终结果呈现给用户时间很短,NER做为DQU的基础模块,须要在毫秒级的时间内完成。近期,不少基于深度网络的研究与实践显著提升了NER的效果,但这些模型每每计算量较大、预测耗时长,如何优化模型性能,使之能知足NER对计算时间的要求,也是NER实践中的一大挑战。

2. 技术选型

针对O2O领域NER 任务的特色,咱们总体的技术选型是“实体词典匹配+模型预测”的框架,如图下2所示。实体词典匹配和模型预测二者解决的问题各有侧重,在当前阶段缺一不可。下面经过对三个问题的解答来讲明咱们为何这么选。缓存

为何须要实体词典匹配?安全

答:主要有如下四个缘由:微信

一是搜索中用户查询的头部流量一般较短、表达形式简单,且集中在商户、品类、地址等三类实体搜索,实体词典匹配虽简单但处理这类查询准确率也可达到 90%以上。网络

二是NER领域相关,经过挖掘业务数据资源获取业务实体词典,通过在线词典匹配后可保证识别结果是领域适配的。架构

三是新业务接入更加灵活,只需提供业务相关的实体词表就可完成新业务场景下的实体识别。app

四是NER下游使用方中有些对响应时间要求极高,词典匹配速度快,基本不存在性能问题。框架

有了实体词典匹配为何还要模型预测?

答:有如下两方面的缘由:

一是随着搜索体量的不断增大,中长尾搜索流量表述复杂,愈来愈多OOV(Out Of Vocabulary)问题开始出现,实体词典已经没法知足日益多样化的用户需求,模型预测具有泛化能力,可做为词典匹配的有效补充。

二是实体词典匹配没法解决歧义问题,好比“黄鹤楼美食”,“黄鹤楼”在实体词典中同时是武汉的景点、北京的商家、香烟产品,词典匹配不具有消歧能力,这三种类型都会输出,而模型预测则可结合上下文,不会输出“黄鹤楼”是香烟产品。

实体词典匹配、模型预测两路结果是怎么合并输出的?

答:目前咱们采用训练好的CRF权重网络做为打分器,来对实体词典匹配、模型预测两路输出的NER路径进行打分。在词典匹配无结果或是其路径打分值明显低于模型预测时,采用模型识别的结果,其余状况仍然采用词典匹配结果。

在介绍完咱们的技术选型后,接下来会展开介绍下咱们在实体词典匹配、模型在线预测等两方面的工做,但愿能为你们在O2O NER领域的探索提供一些帮助。

图2 实体识别总体架构

3. 实体词典匹配

传统的NER技术仅能处理通用领域既定、既有的实体,但没法应对垂直领域所特有的实体类型。在美团搜索场景下,经过对POI结构化信息、商户评论数据、搜索日志等独有数据进行离线挖掘,能够很好地解决领域实体识别问题。通过离线实体库不断的丰富完善累积后,在线使用轻量级的词库匹配实体识别方式简单、高效、可控,且能够很好地覆盖头部和腰部流量。目前,基于实体库的在线NER识别率能够达到92%。

3.1 离线挖掘

美团具备丰富多样的结构化数据,经过对领域内结构化数据的加工处理能够得到高精度的初始实体库。例如:从商户基础信息中,能够获取商户名、类目、地址、售卖商品或服务等类型实体。从猫眼文娱数据中,能够获取电影、电视剧、艺人等类型实体。然而,用户搜索的实体名每每夹杂不少非标准化表达,与业务定义的标准实体名之间存在差别,如何从非标准表达中挖掘领域实体变得尤其重要。

现有的新词挖掘技术主要分为无监督学习、有监督学习和远程监督学习。无监督学习经过频繁序列产生候选集,并经过计算紧密度和自由度指标进行筛选,这种方法虽然能够产生充分的候选集合,但仅经过特征阈值过滤没法有效地平衡精确率与召回率,现实应用中一般挑选较高的阈值保证精度而牺牲召回。先进的新词挖掘算法大多为有监督学习,这类算法一般涉及复杂的语法分析模型或深度网络模型,且依赖领域专家设计繁多规则或大量的人工标记数据。远程监督学习经过开源知识库生成少许的标记数据,虽然必定程度上缓解了人力标注成本高的问题。然而小样本量的标记数据仅能学习简单的统计模型,没法训练具备高泛化能力的复杂模型。

咱们的离线实体挖掘是多源多方法的,涉及到的数据源包括结构化的商家信息库、百科词条,半结构化的搜索日志,以及非结构化的用户评论(UGC)等。使用的挖掘方法也包含多种,包括规则、传统机器学习模型、深度学习模型等。UGC做为一种非结构化文本,蕴含了大量非标准表达实体名。下面咱们将详细介绍一种针对UGC的垂直领域新词自动挖掘方法,该方法主要包含三个步骤,以下图3所示:

图3 一种适用于垂直领域的新词自动挖掘方法

Step1:候选序列挖掘。频繁连续出现的词序列,是潜在新型词汇的有效候选,咱们采用频繁序列产生充足候选集合。

Step2:基于远程监督的大规模有标记语料生成。频繁序列随着给定语料的变化而改变,所以人工标记成本极高。咱们利用领域已有累积的实体词典做为远程监督词库,将Step1中候选序列与实体词典的交集做为训练正例样本。同时,经过对候选序列分析发现,在上百万的频繁Ngram中仅约10%左右的候选是真正的高质新型词汇。所以,对于负例样本,采用负采样方式生产训练负例集[1]。针对海量UGC语料,咱们设计并定义了四个维度的统计特征来衡量候选短语可用性:

  • 频率:有意义的新词在语料中应当知足必定的频率,该指标由Step1计算获得。
  • 紧密度:主要用于评估新短语中连续元素的共现强度,包括T分布检验、皮尔森卡方检验、逐点互信息、似然比等指标。
  • 信息度:新发现词汇应具备真实意义,指代某个新的实体或概念,该特征主要考虑了词组在语料中的逆文档频率、词性分布以及停用词分布。
  • 完整性:新发现词汇应当在给定的上下文环境中做为总体解释存在,所以应同时考虑词组的子集短语以及超集短语的紧密度,从而衡量词组的完整性。

在通过小样本标记数据构建和多维度统计特征提取后,训练二元分类器来计算候选短语预估质量。因为训练数据负例样本采用了负采样的方式,这部分数据中混合了少许高质量的短语,为了减小负例噪声对短语预估质量分的影响,能够经过集成多个弱分类器的方式减小偏差。对候选序列集合进行模型预测后,将得分超过必定阈值的集合做为正例池,较低分数的集合做为负例池。

Step3: 基于深度语义网络的短语质量评估。在有大量标记数据的状况下,深度网络模型能够自动有效地学习语料特征,并产出具备泛化能力的高效模型。BERT经过海量天然语言文本和深度模型学习文本语义表征,并通过简单微调在多个天然语言理解任务上刷新了记录,所以咱们基于BERT训练短语质量打分器。为了更好地提高训练数据的质量,咱们利用搜索日志数据对Step2中生成的大规模正负例池数据进行远程指导,将有大量搜索记录的词条做为有意义的关键词。咱们将正例池与搜索日志重合的部分做为模型正样本,而将负例池减去搜索日志集合的部分做为模型负样本,进而提高训练数据的可靠性和多样性。此外,咱们采用Bootstrapping方式,在初次获得短语质量分后,从新根据已有短语质量分以及远程语料搜索日志更新训练样本,迭代训练提高短语质量打分器效果,有效减小了伪正例和伪负例。

在UGC语料中抽取出大量新词或短语后,参考AutoNER[2]对新挖掘词语进行类型预测,从而扩充离线的实体库。

3.2 在线匹配

原始的在线NER词典匹配方法直接针对Query作双向最大匹配,从而得到成分识别候选集合,再基于词频(这里指实体搜索量)筛选输出最终结果。这种策略比较简陋,对词库准确度和覆盖度要求极高,因此存在如下几个问题:

  • 当Query包含词库未覆盖实体时,基于字符的最大匹配算法易引发切分错误。例如,搜索词“海坨山谷”,词库仅能匹配到“海坨山”,所以出现“海坨山/谷”的错误切分。
  • 粒度不可控。例如,搜索词“星巴克咖啡”的切分结果,取决于词库对“星巴克”、“咖啡”以及“星巴克咖啡”的覆盖。
  • 节点权重定义不合理。例如,直接基于实体搜索量做为实体节点权重,当用户搜索“信阳菜馆”时,“信阳菜/馆”的得分大于“信阳/菜馆”。

为了解决以上问题,在进行实体字典匹配前引入了CRF分词模型,针对垂直领域美团搜索制定分词准则,人工标注训练语料并训练CRF分词模型。同时,针对模型分词错误问题,设计两阶段修复方式:

  1. 结合模型分词Term和基于领域字典匹配Term,根据动态规划求解Term序列权重和的最优解。
  2. 基于Pattern正则表达式的强修复规则。最后,输出基于实体库匹配的成分识别结果。

图4 实体在线匹配

4. 模型在线预测

对于长尾、未登陆查询,咱们使用模型进行在线识别。 NER模型的演进经历了以下图5所示的几个阶段,目前线上使用的主模型是BERT[3]以及BERT+LR级联模型,另外还有一些在探索中模型的离线效果也证明有效,后续咱们会综合考虑性能和收益逐步进行上线。搜索中NER线上模型的构建主要面临三个问题:

  1. 性能要求高:NER做为基础模块,模型预测须要在毫秒级时间内完成,而目前基于深度学习的模型都有计算量大、预测时间较长的问题。
  2. 领域强相关:搜索中的实体类型与业务供给高度相关,只考虑通用语义很难保证模型识别的准确性。
  3. 标注数据缺少: NER标注任务相对较难,需给出实体边界切分、实体类型信息,标注过程费时费力,大规模标注数据难以获取。

针对性能要求高的问题,咱们的线上模型在升级为BERT时进行了一系列的性能调优;针对NER领域相关问题,咱们提出了融合搜索日志特征、实体词典信息的知识加强NER方法;针对训练数据难以获取的问题,咱们提出一种弱监督的NER方法。下面咱们详细介绍下这些技术点。

图5 NER模型演进

4.1 BERT模型

BERT是谷歌于2018年10月公开的一种天然语言处理方法。该方法一经发布,就引发了学术界以及工业界的普遍关注。在效果方面,BERT刷新了11个NLP任务的当前最优效果,该方法也被评为2018年NLP的重大进展以及NAACL 2019的best paper[4,5]。BERT和早前OpenAI发布的GPT方法技术路线基本一致,只是在技术细节上存在略微差别。两个工做的主要贡献在于使用预训练+微调的思路来解决天然语言处理问题。以BERT为例,模型应用包括2个环节:

  • 预训练(Pre-training),该环节在大量通用语料上学习网络参数,通用语料包括Wikipedia、Book Corpus,这些语料包含了大量的文本,可以提供丰富的语言相关现象。
  • 微调(Fine-tuning),该环节使用“任务相关”的标注数据对网络参数进行微调,不须要再为目标任务设计Task-specific网络从头训练。

将BERT应用于实体识别线上预测时面临一个挑战,即预测速度慢。咱们从模型蒸馏、预测加速两个方面进行了探索,分阶段上线了BERT蒸馏模型、BERT+Softmax、BERT+CRF模型。

4.1.1 模型蒸馏

咱们尝试了对BERT模型进行剪裁和蒸馏两种方式,结果证实,剪裁对于NER这种复杂NLP任务精度损失严重,而模型蒸馏是可行的。模型蒸馏是用简单模型来逼近复杂模型的输出,目的是下降预测所需的计算量,同时保证预测效果。Hinton在2015年的论文中阐述了核心思想[6],复杂模型通常称做Teacher Model,蒸馏后的简单模型通常称做Student Model。Hinton的蒸馏方法使用伪标注数据的几率分布来训练Student Model,而没有使用伪标注数据的标签来训练。做者的观点是几率分布相比标签可以提供更多信息以及更强约束,可以更好地保证Student Model与Teacher Model的预测效果达到一致。在2018年NeurIPS的Workshop上,[7]提出一种新的网络结构BlendCNN来逼近GPT的预测效果,本质上也是模型蒸馏。BlendCNN预测速度相对原始GPT提高了300倍,另外在特定任务上,预测准确率还略有提高。关于模型蒸馏,基本能够获得如下结论:

  • 模型蒸馏本质是函数逼近。针对具体任务,笔者认为只要Student Model的复杂度可以知足问题的复杂度,那么Student Model能够与Teacher Model彻底不一样,选择Student Model的示例以下图6所示。举个例子,假设问题中的样本(x,y)从多项式函数中抽样获得,最高指数次数d=2;可用的Teacher Model使用了更高指数次数(好比d=5),此时,要选择一个Student Model来进行预测,Student Model的模型复杂度不能低于问题自己的复杂度,即对应的指数次数至少达到d=2。
  • 根据无标注数据的规模,蒸馏使用的约束能够不一样。如图7所示,若是无标注数据规模小,能够采用值(logits)近似进行学习,施增强约束;若是无标注数据规模中等,能够采用分布近似;若是无标注数据规模很大,能够采用标签近似进行学习,即只使用Teacher Model的预测标签来指导模型学习。

有了上面的结论,咱们如何在搜索NER任务中应用模型蒸馏呢? 首先先分析一下该任务。与文献中的相关任务相比,搜索NER存在有一个显著不一样:做为线上应用,搜索有大量无标注数据。用户查询能够达到千万/天的量级,数据规模上远超一些离线测评可以提供的数据。据此,咱们对蒸馏过程进行简化:不限制Student Model的形式,选择主流的推断速度快的神经网络模型对BERT进行近似;训练不使用值近似、分布近似做为学习目标,直接使用标签近似做为目标来指导Student Model的学习。

咱们使用IDCNN-CRF来近似BERT实体识别模型,IDCNN(Iterated Dilated CNN)是一种多层CNN网络,其中低层卷积使用普通卷积操做,经过滑动窗口圈定的位置进行加权求和获得卷积结果,此时滑动窗口圈定的各个位置的距离间隔等于1。高层卷积使用膨胀卷积(Atrous Convolution)操做,滑动窗口圈定的各个位置的距离间隔等于d(d>1)。经过在高层使用膨胀卷积能够减小卷积计算量,同时在序列依赖计算上也不会有损失。在文本挖掘中,IDCNN经常使用于对LSTM进行替换。实验结果代表,相较于原始BERT模型,在没有明显精度损失的前提下,蒸馏模型的在线预测速度有数十倍的提高。

4.1.2 预测加速

BERT中大量小算子以及Attention计算量的问题,使得其在实际线上应用时,预测时长较高。咱们主要使用如下三种方法加速模型预测,同时对于搜索日志中的高频Query,咱们将预测结果以词典方式上传到缓存,进一步减小模型在线预测的QPS压力。下面介绍下模型预测加速的三种方法:

算子融合:经过下降Kernel Launch次数和提升小算子访存效率来减小BERT中小算子的耗时开销。咱们这里调研了Faster Transformer的实现。平均时延上,有1.4x~2x左右加速比;TP999上,有2.1x~3x左右的加速比。该方法适合标准的BERT模型。开源版本的Faster Transformer工程质量较低,易用性和稳定性上存在较多问题,没法直接应用,咱们基于NV开源的Faster Transformer进行了二次开发,主要在稳定性和易用性进行了改进:

  • 易用性:支持自动转换,支持Dynamic Batch,支持Auto Tuning。
  • 稳定性:修复内存泄漏和线程安全问题。

Batching:Batching的原理主要是将屡次请求合并到一个Batch进行推理,下降Kernel Launch次数、充分利用多个GPU SM,从而提升总体吞吐。在max_batch_size设置为4的状况下,原生BERT模型,能够在将平均Latency控制在6ms之内,最高吞吐可达1300 QPS。该方法十分适合美团搜索场景下的BERT模型优化,缘由是搜索有明显的高低峰期,可提高高峰期模型的吞吐量。

混合精度:混合精度指的是FP32和FP16混合的方式,使用混合精度能够加速BERT训练和预测过程而且减小显存开销,同时兼顾FP32的稳定性和FP16的速度。在模型计算过程当中使用FP16加速计算过程,模型训练过程当中权重会存储成FP32格式,参数更新时采用FP32类型。利用FP32 Master-weights在FP32数据类型下进行参数更新,可有效避免溢出。混合精度在基本不影响效果的基础上,模型训练和预测速度都有必定的提高。

4.2 知识加强的NER

如何将特定领域的外部知识做为辅助信息嵌入到语言模型中,一直是近些年的研究热点。K-BERT[8]、ERNIE[9]等模型探索了知识图谱与BERT的结合方法,为咱们提供了很好的借鉴。美团搜索中的NER是领域相关的,实体类型的断定与业务供给高度相关。所以,咱们也探索了如何将供给POI信息、用户点击、领域实体词库等外部知识融入到NER模型中。

4.2.1 融合搜索日志特征的Lattice-LSTM

在O2O垂直搜索领域,大量的实体由商家自定义(如商家名、团单名等),实体信息隐藏在供给POI的属性中,单使用传统的语义方式识别效果差。Lattice-LSTM[10]针对中文实体识别,经过增长词向量的输入,丰富语义信息。咱们借鉴这个思路,结合搜索用户行为,挖掘Query 中潜在短语,这些短语蕴含了POI属性信息,而后将这些隐藏的信息嵌入到模型中,在必定程度上解决领域新词发现问题。与原始Lattice-LSTM方法对比,识别准确率千分位提高5个点。

图8  融合搜索日志特征的Lattice-LSTM构建流程

1) 短语挖掘及特征计算

该过程主要包括两步:匹配位置计算、短语生成,下面详细展开介绍。

图 9 短语挖掘及特征计算

Step1:匹配位置计算。对搜索日志进行处理,重点计算查询与文档字段的详细匹配状况以及计算文档权重(好比点击率)。如图9所示,用户输入查询是“手工编织”,对于文档d1(搜索中就是POI),“手工”出如今字段“团单”,“编织”出如今字段“地址”。对于文档2,“手工编织”同时出如今“商家名”和“团单”。匹配开始位置、匹配结束位置分别对应有匹配的查询子串的开始位置以及结束位置。

Step2:短语生成。以Step1的结果做为输入,使用模型推断候选短语。可使用多个模型,从而生成知足多个假设的结果。咱们将候选短语生成建模为整数线性规划(Integer Linear Programmingm,ILP)问题,而且定义了一个优化框架,模型中的超参数能够根据业务需求进行定制计算,从而得到知足不用假设的结果。对于一个具体查询Q,每种切分结果均可以使用整数变量xij来表示:xij=1表示查询i到j的位置构成短语,即Qij是一个短语,xij=0表示查询i到j的位置不构成短语。优化目标能够形式化为:在给定不一样切分xij的状况下,使收集到的匹配得分最大化。优化目标及约束函数如图10所示,其中p:文档,f:字段,w:文档p的权重,wf:字段f的权重。xijpf:查询子串Qij是否出如今文档p的f字段,且最终切分方案会考虑该观测证据,Score(xijpf):最终切分方案考虑的观测得分,w(xij):切分Qij对应的权重,yijpf : 观测到的匹配,查询子串Qij出如今文档p的f字段中。χmax:查询包含的最大短语数。这里,χmax、wp、wf 、w(xij)是超参数,在求解ILP问题前须要完成设置,这些变量能够根据不一样假设进行设置:能够根据经验人工设置,另外也能够基于其余信号来设置,设置可参考图10给出的方法。最终短语的特征向量表征为在POI各属性字段的点击分布。

图10 短语生成问题抽象以及参数设置方法

2) 模型结构

图11 融合搜索日志特征的Lattice-LSTM模型结构

模型结构如图11所示,蓝色部分表示一层标准的LSTM网络(能够单独训练,也能够与其余模型组合),输入为字向量,橙色部分表示当前查询中全部词向量,红色部分表示当前查询中的经过Step1计算获得的全部短语向量。对于LSTM的隐状态输入,主要由两个层面的特征组成:当前文本语义特征,包括当前字向量输入和前一时刻字向量隐层输出;潜在的实体知识特征,包括当前字的短语特征和词特征。下面介绍当前时刻潜在知识特征的计算以及特征组合的方法:(下列公式中,σ表示sigmoid函数,⊙表示矩阵乘法)

4.2.2 融合实体词典的两阶段NER

咱们考虑将领域词典知识融合到模型中,提出了两阶段的NER识别方法。该方法是将NER任务拆分红实体边界识别和实体标签识别两个子任务。相较于传统的端到端的NER方法,这种方法的优点是实体切分能够跨领域复用。另外,在实体标签识别阶段能够充分使用已积累的实体数据和实体连接等技术提升标签识别准确率,缺点是会存在错误传播的问题。

在第一阶段,让BERT模型专一于实体边界的肯定,而第二阶段将实体词典带来的信息增益融入到实体分类模型中。第二阶段的实体分类能够单独对每一个实体进行预测,但这种作法会丢失实体上下文信息,咱们的处理方法是:将实体词典用做训练数据训练一个IDCNN分类模型,该模型对第一阶段输出的切分结果进行编码,并将编码信息加入到第二阶段的标签识别模型中,联合上下文词汇完成解码。基于Benchmark标注数据进行评估,该模型相比于BERT-NER在Query粒度的准确率上得到了1%的提高。这里咱们使用IDCNN主要是考虑到模型性能问题,你们可视使用场景替换成BERT或其余分类模型。

图12 融合实体词典的两阶段NER

4.3 弱监督NER

13 弱监督标注数据生成流程

针对标注数据难获取问题,咱们提出了一种弱监督方案,该方案包含两个流程,分别是弱监督标注数据生成、模型训练。下面详细描述下这两个流程。

Step1:弱监督标注样本生成

1) 第一版模型:利用已标注的小批量数据集训练实体识别模型,这里使用的是最新的BERT模型,获得第一版模型ModelA。

2) 词典数据预测:实体识别模块目前沉淀下百万量级的高质量实体数据做为词典,数据格式为实体文本、实体类型、属性信息。用上一步获得的ModelA预测改词典数据输出实体识别结果。

3) 预测结果校订:实体词典中实体精度较高,理论上来说模型预测的结果给出的实体类型至少有一个应该是实体词典中给出的该实体类型,不然说明模型对于这类输入的识别效果并很差,须要针对性地补充样本,咱们对这类输入的模型结果进行校订后获得标注文本。校订方法咱们尝试了两种,分别是总体校订和部分校订,总体校订是指整个输入校订为词典实体类型,部分校订是指对模型切分出的单个Term 进行类型校订。举个例子来讲明,“兄弟烧烤个性diy”词典中给出的实体类型为商家,模型预测结果为修饰词+菜品+品类,没有Term属于商家类型,模型预测结果和词典有差别,这时候咱们须要对模型输出标签进行校订。校订候选就是三种,分别是“商家+菜品+品类”、“修饰词+商家+品类”、“修饰词+菜品+商家”。咱们选择最接近于模型预测的一种,这样选择的理论意义在于模型已经收敛到预测分布最接近于真实分布,咱们只须要在预测分布上进行微调,而不是大幅度改变这个分布。那从校订候选中如何选出最接近于模型预测的一种呢?咱们使用的方法是计算校订候选在该模型下的几率得分,而后与模型当前预测结果(当前模型认为的最优结果)计算几率比,几率比计算公式如公式2所示,几率比最大的那个就是最终获得的校订候选,也就是最终获得的弱监督标注样本。在“兄弟烧烤个性diy”这个例子中,“商家+菜品+品类”这个校订候选与模型输出的“修饰词+菜品+品类”几率比最大,将获得“兄弟/商家 烧烤/菜品 个性diy/品类”标注数据。

图 14 标签校订

公式 2 几率比计算

Step2:弱监督模型训练

弱监督模型训练方法包括两种:一是将生成的弱监督样本和标注样本进行混合不区分从新进行模型训练;二是在标注样本训练生成的ModelA基础上,用弱监督样本进行Fine-tuning训练。这两种方式咱们都进行了尝试。从实验结果来看,Fine-tuning效果更好。

5. 总结和展望

本文介绍了O2O搜索场景下NER任务的特色及技术选型,详述了在实体词典匹配和模型构建方面的探索与实践。

实体词典匹配针对线上头腰部流量,离线对POI结构化信息、商户评论数据、搜索日志等独有数据进行挖掘,能够很好的解决领域实体识别问题,在这一部分咱们介绍了一种适用于垂直领域的新词自动挖掘方法。除此以外,咱们也积累了其余可处理多源数据的挖掘技术,若有须要能够进行约线下进行技术交流。

模型方面,咱们围绕搜索中NER模型的构建的三个核心问题(性能要求高、领域强相关、标注数据缺少)进行了探索。针对性能要求高采用了模型蒸馏,预测加速的方法, 使得NER 线上主模型顺利升级为效果更好的BERT。在解决领域相关问题上,分别提出了融合搜索日志、实体词典领域知识的方法,实验结果代表这两种方法可必定程度提高预测准确率。针对标注数据难获取问题,咱们提出了一种弱监督方案,必定程度缓解了标注数据少模型预测效果差的问题。

将来,咱们会在解决NER未登陆识别、歧义多义、领域相关问题上继续深刻研究,欢迎业界同行一块儿交流。

6. 参考资料

[1] Automated Phrase Mining from Massive Text Corpora. 2018.

[2] Learning Named Entity Tagger using Domain-Specific Dictionary. 2018.

[3] Bidirectional Encoder Representations from Transformers. 2018

[4] https://www.jiqizhixin.com/ar...

[5] https://naacl2019.org/blog/be...

[6] Hinton et al.Distilling the Knowledge in a Neural Network. 2015.

[7] Yew Ken Chia et al. Transformer to CNN: Label-scarce distillation for efficient text classification. 2018.

[8] K-BERT:Enabling Language Representation with Knowledge Graph. 2019.

[9] Enhanced Language Representation with Informative Entities. 2019.

[10] Chinese NER Using Lattice LSTM. 2018.

7. 做者简介

丽红,星池,燕华,马璐,廖群,志安,刘亮,李超,张弓,云森,永超等,均来自美团搜索与NLP部。

招聘信息

美团搜索部,长期招聘搜索、推荐、NLP算法工程师,坐标北京。欢迎感兴趣的同窗发送简历至:tech@meituan.com(邮件标题注明:搜索与NLP部)

阅读更多技术文章,请扫码关注微信公众号-美团技术团队!

相关文章
相关标签/搜索