1. 背景
命名实体辨认(Named Entity Recognition,简称 NER),又称作“专名辨认”,是指辨认文本中具备特定意义的实体,次要包含人名、地名、机构名、专有名词等。NER 是信息提取、问答零碎、句法分析、机器翻译、面向 Semantic Web 的元数据标注等应用领域的重要根底工具,在自然语言解决技术走向实用化的过程中占有重要的位置。在美团搜寻场景下,NER 是深度查问了解(Deep Query Understanding,简称 DQU)的底层根底信号,次要利用于搜寻召回、用户用意辨认、实体链接等环节,NER 信号的品质,间接影响到用户的搜寻体验。
上面将简述一下实体辨认在搜寻召回中的利用。在 O2O 搜寻中,对商家 POI 的形容是商家名称、地址、品类等多个相互之间相关性并不高的文本域。如果对 O2O 搜索引擎也采纳全副文本域命中求交的形式,就可能会产生大量的误召回。咱们的解决办法如下图 1 所示,让特定的查问只在特定的文本域做倒排检索,咱们称之为“结构化召回”,可保障召回商家的强相关性。举例来说,对于“海底捞”这样的申请,有些商家地址会形容为“海底捞左近几百米”,若采纳全文本域检索这些商家就会被召回,显然这并不是用户想要的。而结构化召回基于 NER 将“海底捞”辨认为商家,而后只在商家名相干文本域检索,从而只召回海底捞品牌商家,精准地满足了用户需要。
有别于其余利用场景,美团搜寻的 NER 工作具备以下特点:
- 新增实体数量宏大且增速较快:本地生存服务畛域倒退迅速,新店、新商品、新服务品类层出不穷;用户 Query 往往夹杂很多非标准化表白、简称和热词(如“无忧无虑”、“吸猫”等),这对实现高准确率、高覆盖率的 NER 造成了很大挑战。
- 畛域相关性强:搜寻中的实体辨认与业务供应高度相干,除通用语义外需退出业务相干常识辅助判断,比方“剪了个头发”,通用了解是泛化形容实体,在搜寻中却是个商家实体。
- 性能要求高:从用户发动搜寻到最终后果出现给用户工夫很短,NER 作为 DQU 的根底模块,须要在毫秒级的工夫内实现。近期,很多基于深度网络的钻研与实际显著进步了 NER 的成果,但这些模型往往计算量较大、预测耗时长,如何优化模型性能,使之能满足 NER 对计算工夫的要求,也是 NER 实际中的一大挑战。
2. 技术选型
针对 O2O 畛域 NER 工作的特点,咱们整体的技术选型是“实体词典匹配 + 模型预测”的框架,如图下 2 所示。实体词典匹配和模型预测两者解决的问题各有偏重,在以后阶段缺一不可。上面通过对三个问题的解答来阐明咱们为什么这么选。
为什么须要实体词典匹配?
答:次要有以下四个起因:
一是搜寻中用户查问的头部流量通常较短、表达形式简略,且集中在商户、品类、地址等三类实体搜寻,实体词典匹配虽简略但解决这类查问准确率也可达到 90% 以上。
二是 NER 畛域相干,通过开掘业务数据资源获取业务实体词典,通过在线词典匹配后可保障辨认后果是畛域适配的。
三是新业务接入更加灵便,只需提供业务相干的实体词表就可实现新业务场景下的实体辨认。
四是 NER 上游应用方中有些对响应工夫要求极高,词典匹配速度快,根本不存在性能问题。
有了实体词典匹配为什么还要模型预测?
答:有以下两方面的起因:
一是随着搜寻体量的一直增大,中长尾搜寻流量表述简单,越来越多 OOV(Out Of Vocabulary)问题开始呈现,实体词典曾经无奈满足日益多样化的用户需要,模型预测具备泛化能力,可作为词典匹配的无效补充。
二是实体词典匹配无奈解决歧义问题,比方“黄鹤楼美食”,“黄鹤楼”在实体词典中同时是武汉的景点、北京的商家、香烟产品,词典匹配不具备消歧能力,这三种类型都会输入,而模型预测则可联合上下文,不会输入“黄鹤楼”是香烟产品。
实体词典匹配、模型预测两路后果是怎么合并输入的?
答:目前咱们采纳训练好的 CRF 权重网络作为打分器,来对实体词典匹配、模型预测两路输入的 NER 门路进行打分。在词典匹配无后果或是其门路打分值显著低于模型预测时,采纳模型辨认的后果,其余状况依然采纳词典匹配后果。
在介绍完咱们的技术选型后,接下来会开展介绍下咱们在实体词典匹配、模型在线预测等两方面的工作,心愿能为大家在 O2O NER 畛域的摸索提供一些帮忙。
3. 实体词典匹配
传统的 NER 技术仅能解决通用畛域既定、既有的实体,但无奈应答垂直畛域所特有的实体类型。在美团搜寻场景下,通过对 POI 结构化信息、商户评论数据、搜寻日志等独有数据进行离线开掘,能够很好地解决畛域实体辨认问题。通过离线实体库一直的丰盛欠缺累积后,在线应用轻量级的词库匹配实体辨认形式简略、高效、可控,且能够很好地笼罩头部和腰部流量。目前,基于实体库的在线 NER 识别率能够达到 92%。
3.1 离线开掘
美团具备丰盛多样的结构化数据,通过对畛域内结构化数据的加工解决能够取得高精度的初始实体库。例如:从商户根底信息中,能够获取商户名、类目、地址、售卖商品或服务等类型实体。从猫眼娱乐数据中,能够获取电影、电视剧、艺人等类型实体。然而,用户搜寻的实体名往往夹杂很多非标准化表白,与业务定义的规范实体名之间存在差别,如何从非标准表白中开掘畛域实体变得尤为重要。
现有的新词开掘技术次要分为无监督学习、有监督学习和近程监督学习。无监督学习通过频繁序列产生候选集,并通过计算紧密度和自由度指标进行筛选,这种办法尽管能够产生充沛的候选汇合,但仅通过特色阈值过滤无奈无效地均衡准确率与召回率,事实利用中通常筛选较高的阈值保障精度而就义召回。先进的新词开掘算法大多为有监督学习,这类算法通常波及简单的语法分析模型或深度网络模型,且依赖领域专家设计繁多规定或大量的人工标记数据。近程监督学习通过开源知识库生成大量的标记数据,尽管肯定水平上缓解了人力标注老本高的问题。然而小样本量的标记数据仅能学习简略的统计模型,无奈训练具备高泛化能力的简单模型。
咱们的离线实体开掘是多源多办法的,波及到的数据源包含结构化的商家信息库、百科词条,半结构化的搜寻日志,以及非结构化的用户评论(UGC)等。应用的开掘办法也蕴含多种,包含规定、传统机器学习模型、深度学习模型等。UGC 作为一种非结构化文本,蕴含了大量非标准表白实体名。上面咱们将具体介绍一种针对 UGC 的垂直畛域新词主动开掘办法,该办法次要蕴含三个步骤,如下图 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 分词模型。同时,针对模型分词谬误问题,设计两阶段修复形式:
- 联合模型分词 Term 和基于畛域字典匹配 Term,依据动静布局求解 Term 序列权重和的最优解。
- 基于 Pattern 正则表达式的强修复规定。最初,输入基于实体库匹配的成分辨认后果。
4. 模型在线预测
对于长尾、未登录查问,咱们应用模型进行在线辨认。NER 模型的演进经验了如下图 5 所示的几个阶段,目前线上应用的主模型是 BERT[3]以及 BERT+LR 级联模型,另外还有一些在摸索中模型的离线成果也证实无效,后续咱们会综合思考性能和收益逐渐进行上线。搜寻中 NER 线上模型的构建次要面临三个问题:
- 性能要求高:NER 作为根底模块,模型预测须要在毫秒级工夫内实现,而目前基于深度学习的模型都有计算量大、预测工夫较长的问题。
- 畛域强相干:搜寻中的实体类型与业务供应高度相干,只思考通用语义很难保障模型辨认的准确性。
- 标注数据不足:NER 标注工作绝对较难,需给出实体边界切分、实体类型信息,标注过程费时费力,大规模标注数据难以获取。
针对性能要求高的问题,咱们的线上模型在降级为 BERT 时进行了一系列的性能调优;针对 NER 畛域相干问题,咱们提出了交融搜寻日志特色、实体词典信息的常识加强 NER 办法;针对训练数据难以获取的问题,咱们提出一种弱监督的 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 个点。
1) 短语开掘及特色计算
该过程次要包含两步:匹配地位计算、短语生成,上面具体开展介绍。
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 各属性字段的点击散布。
2) 模型构造
模型构造如图 11 所示,蓝色局部示意一层规范的 LSTM 网络(能够独自训练,也能够与其余模型组合),输出为字向量,橙色局部示意以后查问中所有词向量,红色局部示意以后查问中的通过 Step1 计算失去的所有短语向量。对于 LSTM 的隐状态输出,次要由两个层面的特色组成:以后文本语义特色,包含以后字向量输出和前一时刻字向量隐层输入;潜在的实体常识特色,包含以后字的短语特色和词特色。上面介绍以后时刻潜在常识特色的计算以及特色组合的办法:(下列公式中,σ 示意 sigmoid 函数,⊙示意矩阵乘法)
4.2.2 交融实体词典的两阶段 NER
咱们思考将畛域词典常识交融到模型中,提出了两阶段的 NER 识别方法。该办法是将 NER 工作拆分成实体边界辨认和实体标签辨认两个子工作。相较于传统的端到端的 NER 办法,这种办法的劣势是实体切分能够跨畛域复用。另外,在实体标签辨认阶段能够充沛应用已积攒的实体数据和实体链接等技术进步标签辨认准确率,毛病是会存在谬误流传的问题。
在第一阶段,让 BERT 模型专一于实体边界的确定,而第二阶段将实体词典带来的信息增益融入到实体分类模型中。第二阶段的实体分类能够独自对每个实体进行预测,但这种做法会失落实体上下文信息,咱们的解决办法是:将实体词典用作训练数据训练一个 IDCNN 分类模型,该模型对第一阶段输入的切分后果进行编码,并将编码信息退出到第二阶段的标签辨认模型中,联结上下文词汇实现解码。基于 Benchmark 标注数据进行评估,该模型相比于 BERT-NER 在 Query 粒度的准确率上取得了 1% 的晋升。这里咱们应用 IDCNN 次要是思考到模型性能问题,大家可视应用场景替换成 BERT 或其余分类模型。
4.3 弱监督 NER
针对标注数据难获取问题,咱们提出了一种弱监督计划,该计划蕴含两个流程,别离是弱监督标注数据生成、模型训练。上面详细描述下这两个流程。
Step1:弱监督标注样本生成
1) 初版模型:利用已标注的小批量数据集训练实体辨认模型,这里应用的是最新的 BERT 模型,失去初版模型 ModelA。
2) 词典数据预测:实体辨认模块目前积淀下百万量级的高质量实体数据作为词典,数据格式为实体文本、实体类型、属性信息。用上一步失去的 ModelA 预测改词典数据输入实体辨认后果。
3) 预测后果校对:实体词典中实体精度较高,实践上来讲模型预测的后果给出的实体类型至多有一个应该是实体词典中给出的该实体类型,否则阐明模型对于这类输出的辨认成果并不好,须要针对性地补充样本,咱们对这类输出的模型后果进行校对后失去标注文本。校对办法咱们尝试了两种,别离是整体校对和局部校对,整体校对是指整个输出校对为词典实体类型,局部校对是指对模型切分出的单个 Term 进行类型校对。举个例子来阐明,“兄弟烧烤共性 diy”词典中给出的实体类型为商家,模型预测后果为修饰词 + 菜品 + 品类,没有 Term 属于商家类型,模型预测后果和词典有差别,这时候咱们须要对模型输入标签进行校对。校对候选就是三种,别离是“商家 + 菜品 + 品类”、“修饰词 + 商家 + 品类”、“修饰词 + 菜品 + 商家”。咱们抉择最靠近于模型预测的一种,这样抉择的理论意义在于模型曾经收敛到预测散布最靠近于实在散布,咱们只须要在预测散布上进行微调,而不是大幅度扭转这个散布。那从校对候选中如何选出最靠近于模型预测的一种呢?咱们应用的办法是计算校对候选在该模型下的概率得分,而后与模型以后预测后果(以后模型认为的最优后果)计算概率比,概率比计算公式如公式 2 所示,概率比最大的那个就是最终失去的校对候选,也就是最终失去的弱监督标注样本。在“兄弟烧烤共性 diy”这个例子中,“商家 + 菜品 + 品类”这个校对候选与模型输入的“修饰词 + 菜品 + 品类”概率比最大,将失去“兄弟 / 商家 烧烤 / 菜品 共性 diy/ 品类”标注数据。
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 部)
浏览更多技术文章,请扫码关注微信公众号 - 美团技术团队!