他山之石,能够攻玉。美团点评乐动体育LD90.VIP团队一直紧跟业界前沿技术,开展了基于美团点评业务数据的预训练研究工做,训练了更适配美团点评业务场景的MT-BERT模型,经过微调将MT-BERT落地到多个业务场景中,并取得了不错的业务效果。算法
2018年,天然语言处理(Natural Language Processing,NLP)领域最激动人心的进展莫过于预训练语言模型,包括基于RNN的ELMo[1]和ULMFiT[2],基于Transformer[3]的OpenAI GPT[4]及Google BERT[5]等。下图1回顾了近年来预训练语言模型的发展史以及最新的进展。预训练语言模型的成功,证实了咱们能够从海量的无标注文本中学到潜在的语义信息,而无需为每一项下游NLP任务单独标注大量训练数据。此外,预训练语言模型的成功也开创了NLP研究的新范式[6],即首先使用大量无监督语料进行语言模型预训练(Pre-training),再使用少许标注语料进行微调(Fine-tuning)来完成具体NLP任务(分类、序列标注、句间关系判断和机器阅读理解等)。缓存
所谓的“预训练”,其实并非什么新概念,这种“Pre-training and Fine-tuning”的方法在图像领域早有应用。2009年,邓嘉、李飞飞等人在CVPR 2009发布了ImageNet数据集[7],其中120万张图像分为1000个类别。基于ImageNet,以图像分类为目标使用深度卷积神经网络(如常见的ResNet、VCG、Inception等)进行预训练,获得的模型称为预训练模型。针对目标检测或者语义分割等任务,基于这些预训练模型,经过一组新的全链接层与预训练模型进行拼接,利用少许标注数据进行微调,将预训练模型学习到的图像分类能力迁移到新的目标任务。预训练的方式在图像领域取得了普遍的成功,好比有学者将ImageNet上学习获得的特征表示用于PSACAL VOC上的物体检测,将检测率提升了20%[8]。安全
他山之石,能够攻玉。图像领域预训练的成功也启发了NLP领域研究,深度学习时代普遍使用的词向量(即词嵌入,Word Embedding)即属于NLP预训练工做。使用深度神经网络进行NLP模型训练时,首先须要将待处理文本转为词向量做为神经网络输入,词向量的效果会影响到最后模型效果。词向量的效果主要取决于训练语料的大小,不少NLP任务中有限的标注语料不足以训练出足够好的词向量,一般使用跟当前任务无关的大规模未标注语料进行词向量预训练,所以预训练的另外一个好处是能加强模型的泛化能力。目前,大部分NLP深度学习任务中都会使用预训练好的词向量(如Word2Vec[9]和GloVe[10]等)进行网络初始化(而非随机初始化),从而加快网络的收敛速度。网络
预训练词向量一般只编码词汇间的关系,对上下文信息考虑不足,且没法处理一词多义问题。如“bank”一词,根据上下文语境不一样,可能表示“银行”,也可能表示“岸边”,却对应相同的词向量,这样显然是不合理的。为了更好的考虑单词的上下文信息,Context2Vec[11]使用两个双向长短时记忆网络(Long Short Term Memory,LSTM)[12]来分别编码每一个单词左到右(Left-to-Right)和右到左(Right-to-Left)的上下文信息。相似地,ELMo也是基于大量文本训练深层双向LSTM网络结构的语言模型。ELMo在词向量的学习中考虑深层网络不一样层的信息,并加入到单词的最终Embedding表示中,在多个NLP任务中取得了提高。ELMo这种使用预训练语言模型的词向量做为特征输入到下游目标任务中,被称为Feature-based方法。架构
另外一种方法是微调(Fine-tuning)。GPT、BERT和后续的预训练工做都属于这一范畴,直接在深层Transformer网络上进行语言模型训练,收敛后针对下游目标任务进行微调,不须要再为目标任务设计Task-specific网络从头训练。关于NLP领域的预训练发展史,张俊林博士写过一篇很详实的介绍[13],本文再也不赘述。框架
Google AI团队提出的预训练语言模型BERT(Bidirectional Encoder Representations from Transformers),在11项天然语言理解任务上刷新了最好指标,能够说是近年来NLP领域取得的最重大的进展之一。BERT论文也斩获NLP领域顶会NAACL 2019的最佳论文奖,BERT的成功也启发了大量的后续工做,不断刷新了NLP领域各个任务的最佳水平。有NLP学者宣称,属于NLP的ImageNet时代已经来临[14]。分布式
美团点评做为中国领先的生活服务电子商务平台,涵盖搜索、推荐、广告、配送等多种业务场景,几乎涉及到各类类型的天然语言处理任务。在咱们的平台上,迄今为止积累了近40亿条用户公开评价(UGC),如何高效而准确地完成对海量UGC的天然语言理解和处理是美团点评技术团队面临的挑战之一。美团NLP中心一直紧跟业界前沿技术,开展了基于美团点评业务数据的预训练研究工做,训练了更适配美团点评业务场景的MT-BERT模型,经过微调将MT-BERT落地到多个业务场景中,并取得了不错的业务效果。工具
BERT模型介绍性能
BERT是基于Transformer的深度双向语言表征模型,基本结构如图2所示,本质上是利用Transformer结构构造了一个多层双向的Encoder网络。Transformer是Google在2017年提出的基于自注意力机制(Self-attention)的深层模型,在包括机器翻译在内的多项NLP任务上效果显著,超过RNN且训练速度更快。不到一年时间内,Transformer已经取代RNN成为神经网络机器翻译的State-Of-The-Art(SOTA)模型,包括谷歌、微软、百度、阿里、腾讯等公司的线上机器翻译模型都已替换为Transformer模型。关于Transformer的详细介绍能够参考Google论文《Attention is all you need》[3]。学习
模型结构
如表1所示,根据参数设置的不一样,Google 论文中提出了Base和Large两种BERT模型。
输入表示
针对不一样的任务,BERT模型的输入能够是单句或者句对。对于每个输入的Token,它的表征由其对应的词表征(Token Embedding)、段表征(Segment Embedding)和位置表征(Position Embedding)相加产生,如图3所示:
预训练目标
BERT预训练过程包含两个不一样的预训练任务,分别是Masked Language Model和Next Sentence Prediction任务。
Masked Language Model(MLM)
经过随机掩盖一些词(替换为统一标记符[MASK]),而后预测这些被遮盖的词来训练双向语言模型,而且使每一个词的表征参考上下文信息。
这样作会产生两个缺点:(1)会形成预训练和微调时的不一致,由于在微调时[MASK]老是不可见的;(2)因为每一个Batch中只有15%的词会被预测,所以模型的收敛速度比起单向的语言模型会慢,训练花费的时间会更长。对于第一个缺点的解决办法是,把80%须要被替换成[MASK]的词进行替换,10%的随机替换为其余词,10%保留原词。因为Transformer Encoder并不知道哪一个词须要被预测,哪一个词是被随机替换的,这样就强迫每一个词的表达须要参照上下文信息。对于第二个缺点目前没有有效的解决办法,可是从提高收益的角度来看,付出的代价是值得的。
Next Sentence Prediction(NSP)
为了训练一个理解句子间关系的模型,引入一个下一句预测任务。这一任务的训练语料能够从语料库中抽取句子对包括两个句子A和B来进行生成,其中50%的几率B是A的下一个句子,50%的几率B是语料中的一个随机句子。NSP任务预测B是不是A的下一句。NSP的目的是获取句子间的信息,这点是语言模型没法直接捕捉的。
Google的论文结果代表,这个简单的任务对问答和天然语言推理任务十分有益,可是后续一些新的研究[15]发现,去掉NSP任务以后模型效果没有降低甚至还有提高。咱们在预训练过程当中也发现NSP任务的准确率通过1-2个Epoch训练后就能达到98%-99%,去掉NSP任务以后对模型效果并不会有太大的影响。
数据&算力
Google发布的英文BERT模型使用了BooksCorpus(800M词汇量)和英文Wikipedia(2500M词汇量)进行预训练,所需的计算量很是庞大。BERT论文中指出,Google AI团队使用了算力强大的Cloud TPU进行BERT的训练,BERT Base和Large模型分别使用4台Cloud TPU(16张TPU)和16台Cloud TPU(64张TPU)训练了4天(100万步迭代,40个Epoch)。可是,当前国内互联网公司主要使用Nvidia的GPU进行深度学习模型训练,所以BERT的预训练对于GPU资源提出了很高的要求。
MT-BERT实践
美团BERT(MT-BERT)的探索分为四个阶段:
(1)开启混合精度实现训练加速。
(2)在通用中文语料基础上加入大量美团点评业务语料进行模型预训练,完成领域迁移。
(3)预训练过程当中尝试融入知识图谱中的实体信息。
(4)经过在业务数据上进行微调,支持不一样类型的业务需求。MT-BERT总体技术框架如图4所示:
基于美团点评AFO平台的分布式训练
正如前文所述,BERT预训练对于算力有着极大要求,咱们使用的是美团内部开发的AFO[16](AI Framework On Yarn)框架进行MT-BERT预训练。AFO框架基于YARN实现数千张GPU卡的灵活调度,同时提供基于Horovod的分布式训练方案,以及做业弹性伸缩与容错等能力。Horovod是Uber开源的深度学习工具[17],它的发展吸收了Facebook《一小时训练ImageNet》论文[18]与百度Ring Allreduce[19]的优势,可为用户实现分布式训练提供帮助。根据Uber官方分别使用标准分布式TensorFlow和Horovod两种方案,分布式训练Inception V3和ResNet-101 TensorFlow模型的实验验证显示,随着GPU的数量增大,Horovod性能损失远小于TensorFlow,且训练速度可达到标准分布式TensorFlow的近两倍。相比于Tensorflow分布式框架,Horovod在数百张卡的规模上依然能够保证稳定的加速比,具有很是好的扩展性。
Horovod框架的并行计算主要用到了两种分布式计算技术:控制层的Open MPI和数据层的Nvidia NCCL。控制层面的主要做用是同步各个Rank(节点),由于每一个节点的运算速度不同,运算完每个Step的时间也不同。若是没有一个同步机制,就不可能对全部的节点进行梯度平均。Horovod在控制层面上设计了一个主从模式,Rank 0为Master节点,Rank1-n为Worker节点,每一个Worker节点上都有一个消息队列,而在Master节点上除了一个消息队列,还有一个消息Map。每当计算框架发来通讯请求时,好比要执行Allreduce,Horovod并不直接执行MPI,而是封装了这个消息并推入本身的消息队列,交给后台线程去处理。后台线程采用定时轮询的方式访问本身的消息队列,若是非空,Woker会将本身收到的全部Tensor通讯请求都发给Master。由于是同步MPI,因此每一个节点会阻塞等待MPI完成。Master收到Worker的消息后,会记录到本身的消息Map中。若是一个Tensor的通讯请求出现了n次,也就意味着,全部的节点都已经发出了对该Tensor的通讯请求,那么这个Tensor就须要且可以进行通讯。Master节点会挑选出全部符合要求的Tensor进行MPI通讯。不符合要求的Tensor继续留在消息Map中,等待条件知足。决定了Tensor之后,Master又会将能够进行通讯的Tensor名字和顺序发还给各个节点,通知各个节点能够进行Allreduce运算。
混合精度加速
当前深度学习模型训练过程基本采用单精度(Float 32)和双精度(Double)数据类型,受限于显存大小,当网络规模很大时Batch Size就会很小。Batch Size太小一方面容易致使网络学习过程不稳定而影响模型最终效果,另外一方面也下降了数据吞吐效率,影响训练速度。为了加速训练及减小显存开销,Baidu Research和Nvidia在ICLR 2018论文中[20]合做提出了一种Float32(FP32)和Float16(FP16)混合精度训练的方法,而且在图像分类和检测、语音识别和语言模型任务上进行了有效验证。Nvidia的Pascal和Volta系列显卡除了支持标准的单精度计算外,也支持了低精度的计算,好比最新的Tesla V100硬件支持了FP16的计算加速,P4和P40支持INT8的计算加速,并且低精度计算的峰值要远高于单精浮点的计算峰值。
为了进一步加快MT-BERT预训练和推理速度, 咱们实验了混合精度训练方式。混合精度训练指的是FP32和FP16混合的训练方式,使用混合精度训练能够加速训练过程而且减小显存开销,同时兼顾FP32的稳定性和FP16的速度。在模型计算过程当中使用FP16加速计算过程,模型训练过程当中权重会存储成FP32格式(FP32 Master-weights),参数更新时采用FP32类型。利用FP32 Master-weights在FP32数据类型下进行参数更新可有效避免溢出。此外,一些网络的梯度大部分在FP16的表示范围以外,须要对梯度进行放大使其能够在FP16的表示范围内,所以进一步采用Loss Scaling策略经过对Loss进行放缩,使得在反向传播过程当中梯度在FP16的表示范围内。
为了提升预训练效率,咱们在MT-BERT预训练中采用了混合精度训练方式。
加速效果
如图5所示,开启混合精度的训练方式在单机单卡和多机多卡环境下显著提高了训练速度。为了验证混合精度模型会不会影响最终效果,咱们分别在美团点评业务和通用Benchmark数据集上进行了微调实验,结果见表2和表3。
表2 开启混合精度训练的MT-BERT模型在美团点评业务Benchmark上效果对比
表3 开启混合精度训练的MT-BERT模型在中文通用Benchmark上效果对比
经过表2和表3结果能够发现,开启混合精度训练的MT-BERT模型并无影响效果,反而训练速度提高了2倍多。
领域自适应
Google发布的中文BERT模型是基于中文维基百科数据训练获得,属于通用领域预训练语言模型。因为美团点评积累了大量业务语料,好比用户撰写的UGC评论和商家商品的文本描述数据,为了充分发挥领域数据的优点,咱们考虑在Google中文BERT模型上加入领域数据继续训练进行领域自适应(Domain Adaptation),使得模型更加匹配咱们的业务场景。实践证实,这种Domain-aware Continual Training方式,有效地改进了BERT模型在下游任务中的表现。因为Google未发布中文BERT Large模型,咱们也从头预训练了中文MT-BERT Large模型。
咱们选择了5个中文Benchmark任务以及3个美团点评业务Benchmark在内的8个数据集对模型效果进行验证。实验结果如表4所示,MT-BERT在通用Benchmark和美团点评业务Benchmark上都取得了更好的效果。
表4 MT-BERT模型和Google BERT模型在8个Benchmark上的效果对比
知识融入
BERT在天然语言理解任务上取得了巨大的成功,但也存在着一些不足。其一是常识(Common Sense)的缺失。人类平常活动须要大量的常识背景知识支持,BERT学习到的是样本空间的特征、表征,能够看做是大型的文本匹配模型,而大量的背景常识是隐式且模糊的,很难在预训练数据中进行体现。其二是缺少对语义的理解。模型并未理解数据中蕴含的语义知识,缺少推理能力。在美团点评搜索场景中,须要首先对用户输入的Query进行意图识别,以确保召回结果的准确性。好比,对于“宫保鸡丁”和“宫保鸡丁酱料”两个Query,两者的BERT语义表征很是接近,可是蕴含的搜索意图却大相径庭。前者是菜品意图,即用户想去饭店消费,然后者则是商品意图,即用户想要从超市购买酱料。在这种场景下,BERT模型很难像正常人同样作出正确的推理判断。
为了处理上述状况,咱们尝试在MT-BERT预训练过程当中融入知识图谱信息。知识图谱能够组织现实世界中的知识,描述客观概念、实体、关系。这种基于符号语义的计算模型,能够为BERT提供先验知识,使其具有必定的常识和推理能力。在咱们团队以前的技术文章[21]中,介绍了NLP中心构建的大规模的餐饮娱乐知识图谱——美团大脑。咱们经过Knowledge-aware Masking方法将“美团大脑”的实体知识融入到MT-BERT预训练中。
BERT在进行语义建模时,主要聚焦最原始的单字信息,却不多对实体进行建模。具体地,BERT为了训练深层双向的语言表征,采用了Masked LM(MLM)训练策略。该策略相似于传统的完形填空任务,即在输入端,随机地“遮蔽”掉部分单字,在输出端,让模型预测出这些被“遮蔽”的单字。模型在最初并不知道要预测哪些单字,所以它输出的每一个单字的嵌入表示,都涵盖了上下文的语义信息,以便把被“掩盖”的单字准确的预测出来。
图6左侧展现了BERT模型的MLM任务。输入句子是“全聚德作的烤鸭久负盛名”。其中,“聚”,“的”,“久”3个字在输入时被随机遮蔽,模型预训练过程当中须要对这3个遮蔽位作出预测。
BERT模型经过字的搭配(好比“全X德”),很容易推测出被“掩盖”字信息(“德”),但这种作法只学习到了实体内单字之间共现关系,并无学习到实体的总体语义表示。所以,咱们使用Knowledge-aware Masking的方法来预训练MT-BERT。具体的作法是,输入仍然是字,但在随机”遮蔽”时,再也不选择遮蔽单字,而是选择“遮蔽”实体对应的词。这须要咱们在预训练以前,对语料作分词,并将分词结果和图谱实体对齐。图6右侧展现了Knowledge-aware Masking策略,“全聚德”被随机“遮蔽”。MT-BERT须要根据“烤鸭”,“久负盛名”等信息,准确的预测出“全聚德”。经过这种方式,MT-BERT能够学到“全聚德”这个实体的语义表示,以及它跟上下文其余实体之间的关联,加强了模型语义表征能力。基于美团大脑中已有实体信息,咱们在MT-BERT训练中使用了Knowledge-aware Masking策略,实验证实在细粒度情感分析任务上取得了显著提高。
表5 MT-BERT在细粒度情感分析数据集上效果
模型轻量化
BERT模型效果拔群,在多项天然语言理解任务上实现了最佳效果,可是因为其深层的网络结构和庞大的参数量,若是要部署上线,还面临很大挑战。以Query意图分类为例,咱们基于MT-BERT模型微调了意图分类模型,协调工程团队进行了1000QPS压测实验,部署30张GPU线上卡参与运算,在线服务的TP999高达50ms之多,难以知足上线要求。
为了减小模型响应时间,知足上线要求,业内主要有三种模型轻量化方案。
在美团点评搜索Query意图分类任务中,咱们优先尝试了模型裁剪的方案。因为搜索Query长度较短(一般不超过16个汉字),整个Sequence包含的语义信息有限,裁剪掉几层Transformer结构对模型的语义表征能力不会有太大影响,同时又能大幅减小模型参数量和推理时间。通过实验验证,在微调过程当中,咱们将MT-BERT模型裁剪为4层Transfomer结构(MT-BERT-MINI,MBM),实验效果如图7所示。能够发现,Query分类场景下,裁剪后的MBM没有产生较大影响。因为减小了一些没必要要的参数运算,在美食和酒店两个场景下,效果还有小幅的提高。
MBM在同等压测条件下,压测服务的TP999达到了12-14ms,知足搜索上线要求。除了模型裁剪,为了支持更多线上需求,咱们还在进行模型蒸馏实验,蒸馏后的6层MT-BERT模型在大多数下游任务中都没有显著的效果损失。值得一提的是,BERT模型轻量化是BERT相关研究的重要方向,最近Google公布了最新ALBERT模型(A Lite BERT)[23],在减小模型参数量的同时在天然语言理解数据集GLUE上刷新了SOTA。
在美团点评业务中的应用
图8展现了基于BERT模型微调能够支持的任务类型,包括句对分类、单句分类、问答(机器阅读理解)和序列标注任务。
基于MT-BERT的微调,咱们支持了美团搜索和点评搜索的多个下游任务,包括单句分类任务、句间关系任务和序列标注任务等等。
单句分类
细粒度情感分析
美团点评做为生活服务平台,积累了大量真实用户评论。对用户评论的细粒度情感分析在深入理解商家和用户、挖掘用户情感等方面有相当重要的价值,而且在互联网行业已有普遍应用,如个性化推荐、智能搜索、产品反馈、业务安全等领域。为了更全面更真实的描述商家各属性状况,细粒度情感分析须要判断评论文本在各个属性上的情感倾向(即正面、负面、中立)。为了优化美团点评业务场景下的细粒度情感分析效果,NLP中心标注了包含6大类20个细粒度要素的高质量数据集,标注过程当中采用严格的多人标注机制保证标注质量,并在AI Challenger 2018细粒度情感分析比赛中做为比赛数据集验证了效果,吸引了学术界和工业届大量队伍参赛。
针对细粒度情感分析任务,咱们设计了基于MT-BERT的多任务分类模型,模型结构如图9所示。模型架构总体分为两部分:一部分是各情感维度的参数共享层(Share Layers),另外一部分为各情感维度的参数独享层(Task-specific Layers)。其中参数共享层采用了MT-BERT预训练语言模型获得文本的上下文表征。MT-BERT依赖其深层网络结构以及海量数据预训练,能够更好的表征上下文信息,尤为擅长提取深层次的语义信息。参数独享层采用多路并行的Attention+Softmax组合结构,对文本在各个属性上的情感倾向进行分类预测。经过MT-BERT优化后的细粒度情感分析模型在Macro-F1上取得了显著提高。
细粒度情感分析的重要应用场景之一是大众点评的精选点评模块,如图10所示。精选点评模块做为点评App用户查看高质量评论的入口,其中精选点评标签承载着结构化内容聚合的做用,支撑着用户高效查找目标UGC内容的需求。细粒度情感分析可以从不一样的维度去挖掘评论的情感倾向。基于细粒度情感分析的情感标签可以较好地帮助用户筛选查看,同时外露更多的POI信息,帮助用户高效的从评论中获取消费指南。
Query意图分类
在美团点评的搜索架构中,Deep Query Understanding(DQU)都是重要的前置模块之一。对于用户Query,须要首先对用户搜索意图进行识别,如美食、酒店、演出等等。咱们跟内部的团队合做,尝试了直接使用MT-BERT做为Query意图分类模型。为了保证模型在线Inference时间,咱们使用裁剪后的4层MT-BERT模型(MT-BERT-MINI,MBM模型)上线进行Query意图的在线意图识别,取得的业务效果如图11所示:
同时对于搜索日志中的高频Query,咱们将预测结果以词典方式上传到缓存,进一步减小模型在线预测的QPS压力。MBM累计支持了美团点评搜索17个业务频道的Query意图识别模型,相比原有模型,均有显著的提高,每一个频道的识别精确度都达到95%以上。MBM模型上线后,提高了搜索针对Query文本的意图识别能力,为下游的搜索的召回、排序及展现、频道流量报表、用户认知报表、Bad Case归因等系统提供了更好的支持。
推荐理由场景化分类
推荐理由是点评搜索智能中心数据挖掘团队基于大众点评UGC为每一个POI生产的天然语言可解释性理由。对于搜索以及推荐列表展现出来的每个商家,咱们会用一句天然语言文原本突出商家的特点和卖点,从而让用户可以对展现结果有所感知,“知其然,更知其因此然”。近年来,可解释的搜索系统愈来愈受到关注,给用户展现商品或内容的同时透出解释性理由,正在成为业界通行作法,这样不只能提高系统的透明度,还能提升用户对平台的信任和接受程度,进而提高用户体验效果。在美团点评的搜索推荐场景中,推荐理由有着普遍的应用场景,起到解释展现、亮点推荐、场景化承载和个性化体现的重要做用,目前已经有46个业务方接入了推荐理由服务。
对于不一样的业务场景,对推荐理由会有不一样的要求。在外卖搜索场景下,用户可能更为关注菜品和配送速度,不太关注餐馆的就餐环境和空间,这种状况下只保留符合外卖场景的推荐理由进行展现。一样地,在酒店搜索场景下,用户可能更为关注酒店特点相关的推荐理由(如交通是否方便,酒店是否近海近景区等)。
咱们经过内部合做,为业务方提供符合不一样场景需求的推荐理由服务。推荐理由场景化分类,即给定不一样业务场景定义,为每一个场景标注少许数据,咱们能够基于MT-BERT进行单句分类微调,微调方式如图8(b)所示。
句间关系
句间关系任务是对两个短语或者句子之间的关系进行分类,常见句间关系任务如天然语言推理(Natural Language Inference, NLI)、语义类似度判断(Semantic Textual Similarity,STS)等。
Query改写是在搜索引擎中对用户搜索Query进行同义改写,改善搜索召回结果的一种方法。在美团和点评搜索场景中,一般一个商户或者菜品会有不一样的表达方式,例如“火锅”也称为“涮锅”。有时不一样的词语表述相同的用户意图,例如“婚纱摄影”和“婚纱照”,“配眼镜”和“眼镜店”。Query改写能够在不改变用户意图的状况下,尽量多的召回知足用户意图的搜索结果,提高用户的搜索体验。为了减小误改写,增长准确率,须要对改写后Query和原Query作语义一致性判断,只有语义一致的Query改写对才能上线生效。Query语义一致性检测属于STS任务。咱们经过MT-BERT微调任务来判断改写后Query语义是否发生漂移,微调方式如图8(a)所示,把原始Query和改写Query构成句子对,即“[CLS] text_a [SEP] text_b [SEP]”的形式,送入到MT-BERT中,经过“[CLS]”判断两个Query之间关系。实验证实,基于MT-BERT微调的方案在Benchmark上准确率和召回率都超过原先的XGBoost分类模型。
序列标注
序列标注是NLP基础任务之一,给定一个序列,对序列中的每一个元素作一个标记,或者说给每个元素打一个标签,如中文命名实体识别、中文分词和词性标注等任务都属于序列标注的范畴。命名实体识别(Named Entity Recognition,NER),是指识别文本中具备特定意义的实体,主要包括人名、地名、机构名、专有名词等,以及时间、数量、货币、比例数值等文字。
在美团点评业务场景下,NER主要需求包括搜索Query成分分析,UGC文本中的特定实体(标签)识别/抽取,以及客服对话中的槽位识别等。NLP中心和酒店搜索算法团队合做,基于MT-BERT微调来优化酒店搜索Query成分分析任务。酒店Query成分分析任务中,须要识别出Query中城市、地标、商圈、品牌等不一样成分,用于肯定后续的召回策略。
在酒店搜索Query成分分析中,咱们对标签采用“BME”编码格式,即对一个实体,第一个字须要预测成实体的开始B,最后一个字须要预测成实体的结束E,中间部分则为M。以图13中酒店搜索Query成分分析为例,对于Query “北京昆泰酒店”,成分分析模型须要将“北京”识别成地点,而“昆泰酒店”识别成POI。MT-BERT预测高频酒店Query成分后经过缓存提供线上服务,结合后续召回策略,显著提高了酒店搜索的订单转化率。
将来展望
1. 一站式MT-BERT训练和推理平台建设
为了下降业务方算法同窗使用MT-BERT门槛,咱们开发了MT-BERT一站式训练和推理平台,一期支持短文本分类和句间关系分类两种任务,目前已在美团内部开放试用。
基于一站式平台,业务方算法同窗上传业务训练数据和选择初始MT-BERT模型以后,能够提交微调任务,微调任务会自动分配到AFO集群空闲GPU卡上自动运行和进行效果验证,训练好的模型能够导出进行部署上线。
2. 融入知识图谱的MT-BERT预训练
正如前文所述,尽管在海量无监督语料上进行预训练语言模型取得了很大的成功,但其也存在着必定的不足。BERT模型经过在大量语料的训练能够判断一句话是否通顺,可是却不理解这句话的语义,经过将美团大脑等知识图谱中的一些结构化先验知识融入到MT-BERT中,使其更好地对生活服务场景进行语义建模,是须要进一步探索的方向。
3. MT-BERT模型的轻量化和小型化
MT-BERT模型在各个NLU任务上取得了惊人的效果,因为其复杂的网络结构和庞大的参数量,在真实工业场景下上线面临很大的挑战。如何在保持模型效果的前提下,精简模型结构和参数已经成为当前热门研究方向。咱们团队在低精度量化、模型裁剪和知识蒸馏上已经作了初步尝试,可是如何针对不一样的任务类型选择最合适的模型轻量化方案,还须要进一步的研究和探索。