共计 18458 个字符,预计需要花费 47 分钟才能阅读完成。
为进一步优化美团搜寻排序后果的深度语义相关性,晋升用户体验,搜寻与 NLP 部算法团队从 2019 年底开始基于 BERT 优化美团搜寻排序相关性,通过三个月的算法迭代优化,离线和线上成果均获得肯定停顿。本文次要介绍摸索过程以及实践经验。
引言
美团搜寻是美团 App 上最大的连贯人和服务的入口,笼罩了团购、外卖、电影、酒店、买菜等各种生存服务。随着用户量快速增长,越来越多的用户在不同场景下都会通过搜寻来获取本人想要的服务。了解用户 Query,将用户最想要的后果排在靠前的地位,是搜索引擎最外围的两大步骤。然而,用户输出的 Query 多种多样,既有商户名称和服务品类的 Query,也有商户别名和地址等长尾的 Query,精确刻画 Query 与 Doc 之间的深度语义相关性至关重要。基于 Term 匹配的传统相关性特色能够较好地判断 Query 和候选 Doc 的字面相关性,但在字面相差较大时,则难以刻画出两者的相关性,比方 Query 和 Doc 别离为“英语辅导”和“新东方”时两者的语义是相干的,应用传统办法失去的 Query-Doc 相关性却不统一。
2018 年底,以 Google BERT[1]为代表的预训练语言模型刷新了多项 NLP 工作的最好程度,创始了 NLP 钻研的新范式:即先基于大量无监督语料进行语言模型预训练(Pre-training),再应用大量标注语料进行微调(Fine-tuning)来实现上游的 NLP 工作(文本分类、序列标注、句间关系判断和机器浏览了解等)。美团 AI 平台搜寻与 NLP 部算法团队基于美团海量业务语料训练了 MT-BERT 模型,曾经将 MT-BERT 利用到搜寻用意辨认、细粒度情感剖析、点评举荐理由、场景化分类等业务场景中[2]。
作为 BERT 的外围组成构造,Transformer 具备弱小的文本特征提取能力,早在多项 NLP 工作中失去了验证,美团搜寻也基于 Transformer 降级了外围排序模型,获得了不错的研究成果[3]。为进一步优化美团搜寻排序后果的深度语义相关性,晋升用户体验,搜寻与 NLP 部算法团队从 2019 年底开始基于 BERT 优化美团搜寻排序相关性,通过三个月的算法迭代优化,离线和线上成果均获得肯定停顿,本文次要介绍 BERT 在优化美团搜寻外围排序上的摸索过程以及实践经验。
BERT 简介
近年来,以 BERT 为代表的预训练语言模型在多项 NLP 工作上都取得了不错的成果。下图 1 简要回顾了预训练语言模型的倒退历程。2013 年,Google 提出的 Word2vec[4]通过神经网络预训练形式来生成词向量(Word Embedding),极大地推动了深度自然语言解决的倒退。针对 Word2vec 生成的固定词向量无奈解决多义词的问题,2018 年,Allen AI 团队提出基于双向 LSTM 网络的 ELMo[5]。ELMo 依据上下文语义来生成动静词向量,很好地解决了多义词的问题。2017 年底,Google 提出了基于自注意力机制的 Transformer[6]模型。
相比 RNN 模型,Transformer 语义特征提取能力更强,具备长距离特色捕捉能力,且能够并行训练,在机器翻译等 NLP 工作上效果显著。Open AI 团队的 GPT[7]应用 Transformer 替换 RNN 进行深层单向语言模型预训练,并通过在上游工作上 Fine-tuning 验证了 Pretrain-Finetune 范式的有效性。在此基础上,Google BERT 引入了 MLM(Masked Language Model)及 NSP(Next Sentence Prediction,NSP)两个预训练任务,并在更大规模语料上进行预训练,在 11 项自然语言了解工作上刷新了最好指标。BERT 的胜利启发了大量后续工作,总结如下:
- 交融更多内部常识的百度 ERNIE[8],清华 ERNIE[9]和 K -BERT[10]等;
- 优化预训练指标的 ERNIE 2.0[11],RoBERTa[12],SpanBERT[13],StructBERT[14]等;
- 优化模型构造或者训练形式的 ALBERT[15]和 ELECTRA[16]。对于预训练模型的各种后续工作,能够参考复旦大学邱锡鹏老师最近的综述[17],本文不再赘述。
基于预训练好的 BERT 模型能够反对多种上游 NLP 工作。BERT 在上游工作中的利用次要有两种形式:即 Feature-based 和 Finetune-based。其中 Feature-based 办法将 BERT 作为文本编码器获取文本示意向量,从而实现文本类似度计算、向量召回等工作。而 Finetune-based 办法是在预训练模型的根底上,应用具体任务的局部训练数据进行训练,从而针对性地修改预训练阶段取得的网络参数。该办法更为支流,在大多数工作上成果也更好。
因为 BERT 在 NLP 工作上的显著劣势,一些钻研工作开始将 BERT 利用于文档排序等信息检索工作中。清华大学 Qiao 等人 [18] 具体比照了 Feature-based 和 Finetune-based 两种利用形式在段落排序(Passage Ranking)中的成果。滑铁卢大学 Jimmy Lin 团队 [19] 针对文档排序工作提出了基于 Pointwise 和 Pairwise 训练指标的 MonoBERT 和 DuoBERT 模型。此外,该团队 [20] 提出交融基于 BERT 的 Query-Doc 相关性和 Query-Sentence 相关性来优化文档排序工作的计划。为了优化检索性能和成果,Bing 广告团队 [21] 提出一种双塔构造的 TwinBERT 别离编码 Query 和 Doc 文本。2019 年 10 月,Google 在其官网博客介绍了 BERT 在 Google 搜寻排序和精选摘要(Featured Snippet)场景的利用,BERT 弱小的语义理解能力改善了约 10% 的 Google 搜寻后果[22],除了英文网页,Google 也正在基于 BERT 优化其余语言的搜寻后果。值得一提的是美团 AI 平台搜寻与 NLP 部在 WSDM Cup 2020 检索排序评测工作中提出了基于 Pairwise 模式的 BERT 排序模型和基于 LightGBM 的排序模型,获得了榜单第一名的问题[23]。
搜寻相关性
美团搜寻场景下相关性工作定义如下:给定用户 Query 和候选 Doc(通常为商户或商品),判断两者之间相关性。搜寻 Query 和 Doc 的相关性间接反映后果页排序的优劣,将相关性高的 Doc 排在后面,能进步用户搜寻决策效率和搜寻体验。为了晋升后果的相关性,咱们在召回、排序等多个方面做了优化,本文次要探讨在排序方面的优化。通过先对 Query 和 Doc 的相关性进行建模,把更加精确的相关性信息输送给排序模型,从而晋升排序模型的排序能力。Query 和 Doc 的相关性计算是搜寻业务核心技术之一,依据计算方法相关性次要分为字面相关性和语义相关性。
字面相关性
晚期的相关性匹配次要是依据 Term 的字面匹配度来计算相关性,如字面命中、笼罩水平、TFIDF、BM25 等。字面匹配的相关性特色在美团搜寻排序模型中起着重要作用,但字面匹配有它的局限,次要体现在:
- 词义局限:字面匹配无奈解决同义词和多义词问题,如在美团业务场景下“宾馆”和“旅店”尽管字面上不匹配,但都是搜寻“住宿服务”的同义词;而“COCO”是多义词,在不同业务场景下示意的语义不同,可能是奶茶店,也可能是理发店。
- 构造局限:“蛋糕奶油”和“奶油蛋糕”虽词汇齐全重合,但表白的语义齐全不同。当用户搜“蛋糕奶油”时,其用意往往是找“奶油”,而搜“奶油蛋糕”的需要基本上都是“蛋糕”。
语义相关性
为了解决上述问题,业界工作包含传统语义匹配模型和深度语义匹配模型。传统语义匹配模型包含:
- 隐式模型 :将 Query、Doc 都映射到同一个隐式向量空间,通过向量类似度来计算 Query-Doc 相关性,例如应用主题模型 LDA[24] 将 Query 和 Doc 映射到同一向量空间;
- 翻译模型:通过统计机器翻译办法将 Doc 进行改写后与 Query 进行匹配[25]。
这些办法补救了字面匹配办法的有余,不过从实际效果上来看,还是无奈很好地解决语义匹配问题。随着深度自然语言解决技术的衰亡,基于深度学习的语义匹配办法成为钻研热点,次要包含基于示意的匹配办法(Representation-based)和基于交互的匹配办法(Interaction-based)。
基于示意的匹配办法 :应用深度学习模型别离表征 Query 和 Doc,通过计算向量类似度来作为语义匹配分数。微软的 DSSM[26] 及其扩大模型属于基于示意的语义匹配办法,美团搜寻借鉴 DSSM 的双塔构造思维,右边塔输出 Query 信息,左边塔输出 POI、品类信息,生成 Query 和 Doc 的高阶文本相关性、高阶品类相关性特色,利用于排序模型中获得了很好的成果。此外,比拟有代表性的示意匹配模型还有百度提出 SimNet[27],中科院提出的多视角循环神经网络匹配模型(MV-LSTM)[28]等。
基于交互的匹配办法:这种办法不间接学习 Query 和 Doc 的语义示意向量,而是在神经网络底层就让 Query 和 Doc 提前交互,从而取得更好的文本向量示意,最初通过一个 MLP 网络取得语义匹配分数。代表性模型有华为提出的基于卷积神经网络的匹配模型 ARC-II[29],中科院提出的基于矩阵匹配的的层次化匹配模型 MatchPyramid[30]。
基于示意的匹配办法劣势在于 Doc 的语义向量能够离线事后计算,在线预测时只须要从新计算 Query 的语义向量,毛病是模型学习时 Query 和 Doc 两者没有任何交互,不能充分利用 Query 和 Doc 的细粒度匹配信号。基于交互的匹配办法劣势在于 Query 和 Doc 在模型训练时可能进行充沛的交互匹配,语义匹配成果好,毛病是部署上线老本较高。
BERT 语义相关性
BERT 预训练应用了大量语料,通用语义表征能力更好,BERT 的 Transformer 构造特征提取能力更强。中文 BERT 基于字粒度预训练,能够缩小未登录词(OOV)的影响,美团业务场景下存在大量长尾 Query(如大量数字和英文复合 Query)字粒度模型成果优于词粒度模型。此外,BERT 中应用地位向量建模文本地位信息,能够解决语义匹配的构造局限。综上所述,咱们认为 BERT 利用在语义匹配工作上会有更好的成果,基于 BERT 的语义匹配有两种利用形式:
- Feature-based:属于基于示意的语义匹配办法。相似于 DSSM 双塔构造,通过 BERT 将 Query 和 Doc 编码为向量,Doc 向量离线计算实现进入索引,Query 向量线上实时计算,通过近似最近邻(ANN)等办法实现相干 Doc 召回。
- Finetune-based:属于基于交互的语义匹配办法,将 Query 和 Doc 对输出 BERT 进行句间关系 Fine-tuning,最初通过 MLP 网络失去相关性分数。
Feature-based 形式是通过 BERT 失去 Query 和 Doc 的示意向量,而后计算余弦类似度,所有业务场景下 Query-Doc 类似度都是固定的,不利于适配不同业务场景。此外,在理论场景下为海量 Doc 向量建设索引存储老本过高。因而,咱们抉择了 Finetune-based 计划,利用搜寻场景中用户点击数据结构训练数据,而后通过 Fine-tuning 形式优化 Query-Doc 语义匹配工作。图 2 展现了基于 BERT 优化美团搜寻外围排序相关性的技术架构图,次要包含三局部:
- 数据样本加强:因为相关性模型的训练基于搜寻用户行为标注的弱监督数据,咱们联合业务教训对数据做了去噪和数据映射。为了更好地评估相关性模型的离线成果,咱们构建了一套人工标注的 Benchmark 数据集,领导模型迭代方向。
- BERT 畛域适配:美团业务场景中,Query 和 Doc 以商户、商品、团购等短文本为主,除题目文本以外,还存在商户 / 商品形容、品类、地址、图谱标签等结构化信息。咱们首先改良了 MT-BERT 预训练方法,将品类、标签等文本信息也退出 MT-BERT 预训练过程中。在相关性 Fine-tuning 阶段,咱们对训练指标进行了优化,使得相关性工作和排序工作指标更加匹配,并进一步将两个工作联合进行联结训练。此外,因为 BERT 模型前向推理比拟耗时,难以满足上线要求,咱们通过常识蒸馏将 12 层 BERT 模型压缩为合乎上线要求的 2 层小模型,且无显著的成果损失。
- 排序模型优化:外围排序模型(本文记为 L2 模型)包含 LambdaDNN[31]、TransformerDNN[3]、MultiTaskDNN 等深度学习模型。给定 <Query, Doc>,咱们将基于 BERT 预测的 Query-Doc 相关性分数作为特色用于 L2 模型的训练中。
算法摸索
数据加强
BERT Fine-tuning 工作须要一定量标注数据进行迁徙学习训练,美团搜寻场景下 Query 和 Doc 笼罩多个业务畛域,如果采纳人工标注的办法为每个业务畛域标注一批训练样本,工夫和人力老本过高。咱们的解决办法是应用美团搜寻积攒的大量用户行为数据(如浏览、点击、下单等),这些行为数据能够作为弱监督训练数据。在 DSSM 模型进行样本结构时,每个 Query 下抽取 1 个正样本和 4 个负样本,这是比拟罕用的办法,然而其假如 Query 下的 Doc 被点击就算是相干的,这个假如在理论的业务场景下会给模型引入一些噪声。
此处以商家(POI)搜寻为例,现实状况下如果一个 POI 呈现在搜寻后果里,然而没有任何用户点击,可认为该 POI 和 Query 不相干;如果该 POI 有点击或下单行为,可认为该 POI 和 Query 相干。下单行为数据是用户“用脚投票”得来的,具备更高的置信度,因而咱们应用下单数据作为正样本,应用未点击过的数据结构负样本,而后联合业务场景对样本进一步优化。数据优化次要包含对样本去噪和引入品牌数据两个方面。此外,为了评测算法离线成果,咱们从结构样本中随机采样 9K 条样本进行了人工标注作为 Benchmark 数据集。
样本去噪
无意义单字 Query 过滤。因为单字 Query 表白的语义通常不残缺,用户点击行为也比拟随机,如 < 优,花漾星球专柜(地方小道倍客优)>,这部分数据如果用于训练会影响最终成果。咱们去除了蕴含无意义单字 Query 的全副样本。
正样本从用户下单的 POI 中进行随机采样,且过滤掉 Query 只呈现在 POI 的分店名中的样本,如 < 大润发,小龙坎老火锅(大润发店)>,尽管 Query 和 POI 字面匹配,但其实是不相干的后果。
负样本尝试了两种构造方法:全局随机负采样和 Skip-Above 采样。
- 全局随机负采样:用户没有点击的 POI 进行随机采样失去负例。咱们察看发现随机采样同样存在大量噪声数据,补充了两项过滤规定来过滤数据。① 大量的 POI 未被用户点击是因为不是离用户最近的分店,但 POI 和 Query 是相干的,这种类型的样例须要过滤掉,如 < 蛙小侠,蛙小侠(新北万达店)>。② 用户 Query 里蕴含品牌词,并且 POI 齐全等同于品牌词的,须要从负样本中过滤,如 < 德克士吃饭,德克士 >。
- Skip-Above 采样:受限于 App 搜寻场景的展现屏效,无奈保障召回的 POI 一次性失去曝光。若间接将未被点击的 POI 作为负例,可能会将未曝光但相干的 POI 谬误地采样为负例。为了保障训练数据的准确性,咱们采纳 Skip-Above 办法,剔除这些乐音负例,即从用户点击过的 POI 之上没有被点击过的 POI 中采样负例(假如用户是从上往下浏览的 POI)。
品牌样本优化
美团商家中有很多品牌商家,通常品牌商家领有数百上千的 POI,如“海底捞”、“肯德基”、“香格里拉酒店”等,品牌 POI 名称多是“品牌 + 地标”文本模式,如“北京香格里拉饭店”。对 Query 和 POI 的相关性进行建模时,如果仅取 Query 和 POI 名进行相关性训练,POI 名中的“地标”会给模型带来很大烦扰。例如,用户搜“香格里拉酒店”时会召回品牌“香格里拉酒店”的分店,如“香格里拉酒店”和“北京香格里拉饭店”等,相关性模型受地标词影响,会给不同分店会打出不同的相关性分数,进而影响到后续排序模型的训练。因而,咱们对于样本中的品牌搜寻样本做了针对性优化。搜寻品牌词有时会召回多个品牌的后果,假如用户搜寻的品牌排序靠后,而其余品牌排序靠前会重大影响到用户体验,因而对 Query 和 POI 相关性建模时召回后果中其余品牌的 POI 可认为是不相干样本。针对上述问题,咱们利用 POI 的品牌信息对 <Query, POI> 样本进行了重点优化。
- POI 名映射到品牌:在品牌搜 Query 不蕴含地标词的时候,将 POI 名映射到品牌(非品牌 POI 不进行映射),从而打消品牌 POI 分店名中地标词引入的噪声。如 Query 是“香格里拉酒店”,召回的“香格里拉大酒店”和“北京香格里拉饭店”对立映射为品牌名“香格里拉酒店”。Query 是“品牌 + 地标”模式(如“香格里拉饭店 北京”)时,用户用意明确就是找某个地点的 POI,不须要进行映射,示例如下图 3 所示。
- 负样本过滤:如果搜索词是品牌词,在选取负样本的时候只在其余品牌的样本中选取。如 POI 为“香格里拉实力希尔顿花园酒店”、“桔子香格里拉古城酒店”时,同 Query“香格里拉酒店”尽管字面很类似,但其显著不是用户想要的品牌。
通过样本去噪和品牌样本优化后,BERT 相关性模型在 Benchmark 上的 Accuracy 晋升 23BP,相应地 L2 排序排序模型离线 AUC 晋升 17.2BP。
模型优化
常识交融
咱们团队基于美团业务数据构建了餐饮娱乐畛域常识图谱—“美团大脑”[32],对于候选 Doc(POI/SPU),通过图谱能够获取到该 Doc 的大量结构化信息,如地址、品类、团单,场景标签等。美团搜寻场景中的 Query 和 Doc 都以短文本为主,咱们尝试在预训练和 Fine-tuning 阶段融入图谱品类和实体信息,补救 Query 和 Doc 文本信息的有余,强化语义匹配成果。
引入品类信息的预训练
因为美团搜寻多模态的特点,在某些状况下,仅依据 Query 和 Doc 题目文本信息很难精确判断两者之间的语义相关性。如 < 考研班,虹蝶教育 >,Query 和 Doc 题目文本相关性不高,然而“虹蝶教育”三级品类信息别离是“教育 - 升学辅导 - 考研”,引入相干图谱信息有助于进步模型成果,咱们首先基于品类信息做了尝试。
在相关性判断工作中,BERT 模型的输出是 <Query, Doc> 对。对于每一个输出的 Token,它的表征由其对应的词向量(Token Embedding)、片段向量(Segment Embedding)和地位向量(Position Embedding)相加产生。为了引入 Doc 品类信息,咱们将 Doc 三级品类信息拼接到 Doc 题目之后,而后跟 Query 进行相关性判断,如图 4 所示。
对于模型输出局部,咱们将 Query、Doc 题目、三级类目信息拼接,并用 [SEP] 宰割,辨别 3 种不同起源信息。对于段向量,原始的 BERT 只有两种片段编码 EA 和 EB,在引入类目信息的文本信息后,引入额定的片段编码 EC。引入额定片段编码的作用是避免额定信息对 Query 和 Doc 题目产生穿插烦扰。因为咱们扭转了 BERT 的输出和输入构造,无奈间接基于 MT-BERT 进行相关性 Fine-tuning 工作。咱们对 MT-BERT 的预训练形式做了相应改良,BERT 预训练的指标之一是 NSP(Next Sentence Prediction),在搜寻场景中没有高低句的概念,在给定用户的搜寻关键词和商户文本信息后,判断用户是否点击来取代 NSP 工作。
增加品类信息后,BERT 相关性模型在 Benchmark 上的 Accuracy 晋升 56BP,相应地 L2 排序模型离线 AUC 晋升 6.5BP。
引入实体成分辨认的多任务 Fine-tuning
在美团搜寻场景中,Query 和 Doc 通常由不同实体成分组成,如美食、酒店、商圈、品牌、地标和团购等。除了文本语义信息,这些实体成分信息对于 Query-Doc 相关性判断至关重要。如果 Query 和 Doc 语义相干,那两者除了文本语义类似外,对应的实体成分也应该类似。例如,Query 为“Helens 海伦司小酒馆”,Doc 为“Helens 小酒馆(东鼎购物中心店)”,尽管文本语义不齐全匹配,但二者的次要的实体成分类似(主体成分为品牌 +POI 模式),正确的辨认出 Query/Doc 中的实体成分有助于相关性的判断。微软的 MT-DNN[33]曾经证实基于预训练模型的多任务 Fine-tuning 能够晋升各项子工作成果。因为 BERT Fine-tuning 工作也反对命名实体辨认(NER)工作,因此咱们在 Query-Doc 相关性判断工作的根底上引入 Query 和 Doc 中实体成分辨认的辅助工作,通过对两个工作的联结训练来优化最终相关性判断后果,模型构造如下图 5 所示:
多任务学习模型的损失函数由两局部组成,别离是相关性判断损失函数和命名实体辨认损失函数。其中相关性损失函数由 [CLS] 位的 Embedding 计算失去,而实体成分辨认损失函数由每个 Token 的 Embedding 计算失去。2 种损失函数相加即为最终优化的损失函数。在训练命名实体辨认工作时,每个 Token 的 Embedding 取得了和本身实体相干的信息,从而晋升了相关性工作的成果。
引入实体成分辨认的多任务 Fine-tuning 形式后,BERT 相关性模型在 Benchmark 上的 Accuracy 晋升 219BP,相应地 L2 排序模型 AUC 晋升 17.8BP。
Pairwise Fine-tuning
Query-Doc 相关性最终作为特色退出排序模型训练中,因而咱们也对 Fine-tuning 工作的训练指标做了针对性改良。基于 BERT 的句间关系判断属于二分类工作,实质上是 Pointwise 训练形式。Pointwise Fine-tuning 办法能够学习到很好的全局相关性,但疏忽了不同样本之前的偏序关系。如对于同一个 Query 的两个相干后果 DocA 和 DocB,Pointwise 模型只能判断出两者都与 Query 相干,无奈辨别 DocA 和 DocB 相关性水平。为了使得相关性特色对于排序后果更有区分度,咱们借鉴排序学习中 Pairwise 训练形式来优化 BERT Fine-tuning 工作。
Pairwise Fine-tuning 工作输出的单条样本为三元组 <Query, Doc+, Doc->,对于同一 Query 的多个候选 Doc,抉择任意一个正例和一个负例组合成三元组作为输出样本。在上游工作中只须要应用大量的 Query 和 Doc 相关性的标注数据(有监督训练样本),对 BERT 模型进行相关性 Fine-tuning,产出 Query 和 Doc 的相关性特色。Pairwise Fine-tuning 的模型构造如下图 6 所示:
对于同一 Query 的候选 Doc,抉择两个不同标注的 Doc,其中相干文档记为 Doc+, 不相干文档记 Doc-。输出层通过 Lookup Table 将 Query, Doc+ 以及 Doc- 的单词转换为 Token 向量,同时会拼接地位向量和片段向量,造成最终输出向量。接着通过 BERT 模型能够别离失去(Query, Doc+)以及(Query, Doc-)的语义相关性表征,即 BERT 的 CLS 位输入。通过 Softmax 归一化后,能够别离失去(Query, Doc+)和(Query, Doc-)的语义类似度打分。
对于同一 Query 的候选 Doc,抉择两个不同标注的 Doc,其中相干文档记为 Doc+, 不相干文档记 Doc-。输出层通过 Lookup Table 将 Query, Doc+ 以及 Doc- 的单词转换为 Token 向量,同时会拼接地位向量和片段向量,造成最终输出向量。接着通过 BERT 模型能够别离失去(Query, Doc+)以及(Query, Doc-)的语义相关性表征,即 BERT 的 CLS 位输入。通过 Softmax 归一化后,能够别离失去(Query, Doc+)和(Query, Doc-)的语义类似度打分。
Pairwise Fine-tuning 除了输出样本上的变动,为了思考搜寻场景下不同样本之间的偏序关系,咱们参考 RankNet[34]的形式对训练损失函数做了优化。
令 $P_{ij}$ 为同一个 Query 下 $Doc_i$ 相比 $Doc_j$ 更相干的概率,其中 $s_i$ 和 $s_j$ 别离为 $Doc_i$ 和 $Doc_j$ 的模型打分,则 $P_{ij}=1/({1+e^{-\sigma(s_i-s_j)}})$。应用穿插熵损失函数,令 $S_{ij}$ 示意样本对的实在标记,当 $Doc_i$ 比 $Doc_j$ 更相干时(即 $Doc_i$ 为正例而 $Doc_j$ 为负例),$S_{ij}$ 为 1,否则为 -1,损失函数能够示意为:$C = \sum_{(i,j)\in N} \frac{1}{2} (1-S_{ij} )\sigma(s_i-s_j)+log(1+e^{-\sigma(s_i-s_j)})$,其中 $N$ 示意所有在同 Query 下的 Doc 对。
应用 Pairwise Fine-tuning 形式后,BERT 相关性模型在 Benchmark 上的 Accuracy 晋升 925BP,相应地 L2 排序模型的 AUC 晋升 19.5BP。
联结训练
前文所述各种优化属于两阶段训练形式,即先训练 BERT 相关性模型,而后训练 L2 排序模型。为了将两者深刻交融,在排序模型训练中引入更多相关性信息,咱们尝试将 BERT 相关性 Fine-tuning 工作和排序工作进行端到端的联结训练。
因为美团搜寻波及多业务场景且不同场景差别较大,对于多场景的搜寻排序,每个子场景进行独自优化成果好,然而多个子模型保护老本更高。此外,某些小场景因为训练数据稠密无奈学习到全局的 Query 和 Doc 表征。咱们设计了基于 Partition-model 的 BERT 相关性工作和排序工作的联结训练模型,Partition-model 的思维是利用所有数据进行全场景联结训练,同时肯定水平上保留每个场景个性,从而解决多业务场景的排序问题,模型构造如下图 7 所示:
输出层:模型输出是由文本特征向量、用户行为序列特征向量和其余特征向量 3 局部组成。
- 文本特征向量应用 BERT 进行抽取,文本特色次要包含 Query 和 POI 相干的一些文本(POI 名称、品类名称、品牌名称等)。将文本特色送入预训练好的 MT-BERT 模型,取 CLS 向量作为文本特色的语义示意。
- 用户行为序列特征向量应用 Transformer 进行抽取[3]。
- 其余特色次要包含:① 统计类特色,蕴含 Query、Doc 等维度的特色以及它们之间的穿插特色,应用这些特色次要是为了丰盛 Query 和 Doc 的示意,更好地辅助相关性工作训练。② 文本特色,这部分的特色同 1 中的文本特色,然而应用形式不同,间接将文本分词后做 Embedding,端到端的学习文本语义表征。③ 传统的文本相关性特色,包含 Query 和 Doc 的字面命中、笼罩水平、BM25 等特色,尽管语义相关性具备较好的作用,但字面相关性依然是一个不可或缺的模块,它起到信息补充的作用。
共享层:底层网络参数是所有场景网络共享。
场景层:依据业务场景进行划分,每个业务场景独自设计网络结构,打分时只通过所在场景的那一路。
损失函数:搜寻业务更关怀排在页面头部后果的好坏,将更相干的后果排到头部,用户会取得更好的体验,因而选用优化 NDCG 的 Lambda Loss[34]。
联结训练模型目前还在试验当中,离线试验曾经获得了不错的成果,在验证集上 AUC 晋升了 234BP。目前,场景切分依赖 Query 用意模块进行硬切分,后续主动场景切分也值得进行摸索。
利用实际
因为 BERT 的深层网络结构和宏大参数量,如果要部署上线,实时性上面临很大挑战。在美团搜寻场景下,咱们对基于 MT-BERT Fine-tuning 好的相关性模型(12 层)进行了 50QPS 压测试验,在线服务的 TP99 减少超过 100ms,不合乎工程上线要求。咱们从两方面进行了优化,通过常识蒸馏压缩 BERT 模型,优化排序服务架构反对蒸馏模型上线。
模型轻量化
为了解决 BERT 模型参数量过大、前向计算耗时的问题,罕用轻量化办法有三种:
- 常识蒸馏 :模型蒸馏是在肯定精度要求下,将大模型学到的常识迁徙到另一个轻量级小模型上,目标是升高预测计算量的同时保障预测成果。Hinton 在 2015 年的论文中论述了核心思想[35],大模型个别称作 Teacher Model,蒸馏后的小模型个别称作 Student Model。具体做法是先在训练数据上学习 Teacher Model,而后 Teacher Model 对无标注数据进行预测失去伪标注数据,最初应用伪标注数据训练 Student Model。HuggingFace 提出的 DistilBERT[36] 和华为提出的 TinyBERT[37] 等 BERT 的蒸馏模型都获得了不错的成果,在保障成果的状况下极大地晋升了模型的性能。
- 模型裁剪:通过模型剪枝缩小参数的规模。
- 低精度量化:在模型训练和推理中应用低精度(FP16 甚至 INT8、二值网络)示意取代原有精度(FP32)示意。
在 Query 用意分类工作 [2] 中,咱们基于 MT-BERT 裁剪为 4 层小模型达到了上线要求。用意分类场景下 Query 长度偏短,语义信息无限,间接裁剪掉几层 Transformer 构造对模型的语义表征能力不会有太大的影响。在美团搜寻的场景下,Query 和 Doc 拼接后整个文本序列变长,蕴含更简单的语义关系,间接裁剪模型会带来更多的性能损失。因而,咱们在上线 Query-Doc 相关性模型之前,采纳常识蒸馏形式,在尽可能在放弃模型性能的前提下对模型层数和参数做压缩。两种计划的试验成果比照见下表 1:
在美团搜寻外围排序的业务场景下,咱们采纳常识蒸馏使得 BERT 模型在对响应工夫要求刻薄的搜寻场景下合乎了上线的要求,并且成果无显著的性能损失。常识蒸馏(Knowledge Distillation)核心思想是通过迁徙常识,从而通过训练好的大模型失去更加适宜推理的小模型。首先咱们基于 MT-BERT(12 Layers),在大规模的美团点评业务语料上进行常识蒸馏失去通用的 MT-BERT 蒸馏模型(6 Layers),蒸馏后的模型能够作为具体上游工作 Fine-tuning 时的初始化模型。在美团搜寻的场景下,咱们进一步基于通用的 MT-BERT 蒸馏模型(6 Layers)进行相关性工作 Fine-tuning,失去 MT-BERT 蒸馏(2 Layers)进行上线。
排序服务架构优化
美团搜寻线上排序服务框架如上图 8 所示,次要包含以下模块:
- 模型在线预估框架(Augur):反对语言化定义特色,配置化加载和卸载模型与特色,反对支流线性模型与 TF 模型的在线预估;基于 Augur 能够不便地构建功能完善的无状态、分布式的模型预估服务。为了能不便将 BERT 特色用于排序模型,Augur 团队开发了 Model Stacking 性能,完满反对了 BERT as Feature;这种形式将模型的分数当做一个特色,只须要在 Augur 服务模型配置平台上进行特色配置即可,很好地晋升了模型特色的迭代效率。
- 搜寻模型试验平台(Poker):反对超大规模数据和模型的离线特色抽取、模型训练,反对 BERT 模型自助训练 /Fine-tuning 和预测;同时买通了 Augur 服务,训练好的模型能够实现一键上线,大大晋升了模型的试验效率。
TF-Serving 在线模型服务:L2 排序模型、BERT 模型上线应用 TF-Serving 进行部署。TF-Serving 预测引擎反对 Faster Transformer[38]减速 BERT 推理,晋升了线上的预估速度。
为了进一步晋升性能,咱们将头部 Query 进行缓存只对长尾 Query 进行在线打分,线上预估联合缓存的形式,即节约了 GPU 资源又晋升了线上预估速度。通过上述优化,咱们实现了 50 QPS 下,L2 模型 TP99 只升高了 2ms,满足了上线的要求。
线上成果
针对前文所述的各种优化策略,除了离线 Benchmark 上的成果评测之外,咱们也将模型上线进行了线上 AB 评测,Baseline 是以后未做任何优化的排序模型,咱们独立统计了各项优化在 Baseline 根底上带来的变动,因为线上实在环境影响因素较多,为了确保论断可信,咱们同时统计了 QVCTR 和 NDCG 两个指标,后果如表 2 所示:
从表 2 能够看出,各项优化对线上排序外围指标都带来稳固的晋升。用户行为数据存在大量噪声不能间接拿来建模,咱们基于美团搜寻排序业务特点设计了一些规定对训练样本进行优化,还借助 POI 的品牌信息对样本进行映射和过滤。通过人工对样本进行评测发现,优化后的样本更加合乎排序业务特点以及“人”对相关性的认知,同时线上指标的晋升也验证了咱们优化的有效性。常识交融的 BERT 模型引入大量结构化文本信息,补救了 POI 名自身文本信息少的问题,排序模型 CTR 和 NDCG 都有显著的晋升。对数据样本的优化有了肯定的成果。为了更加匹配业务场景,咱们从模型的角度进行优化,模型损失函数改用排序工作罕用的 Pairwise Loss,其思考了文档之间的关系更加贴合排序工作场景,线上排序模型 NDCG 获得了肯定的晋升。
总结与瞻望
本文总结了搜寻与 NLP 算法团队基于 BERT 在美团搜寻外围排序落地的摸索过程和实践经验,包含数据加强、模型优化和工程实际。在样本数据上,咱们联合了美团搜寻业务畛域常识,基于弱监督点击日志构建了高质量的训练样本;针对美团搜寻多模态特点,在预训练和 Fine-tuning 阶段交融图谱品类和标签等信息,补救 Query 和 Doc 文本较短的有余,强化文本匹配成果。
在算法模型上,联合搜寻排序优化指标,引入了 Pairwise/Listwise 的 Fine-tuning 训练指标,相比 Pointwise 形式在相关性判断上更有区分度。这些优化在离线 Benchmark 评测和线上 AB 评测中带来了不同幅度的指标晋升,改善了美团搜寻的用户体验。
在工程架构上,针对 BERT 在线预估性能耗时长的问题,参考业界教训,咱们采纳了 BERT 模型轻量化的计划进行模型蒸馏裁剪,既保证模型成果又晋升了性能,同时咱们对整体排序架构进行了降级,为后续疾速将 BERT 利用到线上预估奠定了良好基础。
搜寻与 NLP 算法团队会继续进行摸索 BERT 在美团搜寻中的利用落地,咱们接下来要进行以下几个优化:
- 交融常识图谱信息对长尾流量相关性进行优化:美团搜寻承接着多达几十种生存服务的搜寻需要,以后头部流量相关性问题曾经较好地解决,长尾流量的相关性优化须要依赖更多的高质量数据。咱们将利用常识图谱信息,将一些结构化先验常识融入到 BERT 预训练中,对长尾 Query 的信息进行加强,使其能够更好地进行语义建模。
- 相关性与其余工作联结优化:美团搜寻场景下 Query 和候选 Doc 都更结构化,除文本语义匹配外,Query/Doc 文本中蕴含的实体成分、用意、类目也能够用于辅助相关性判断。目前,咱们将相关性工作和成分辨认工作联合进行联结优化曾经获得肯定成果。后续咱们思考将用意辨认、类目预测等工作退出相关性判断中,多视角、更全面地评估 Query-Doc 的相关性。
- BERT 相关性模型和排序模型的深刻交融:以后两个模型属于两阶段训练形式,将 BERT 语义相关性作为特色退出排序模型来晋升点击率。语义相关性是影响搜寻体验的重要因素之一,咱们将 BERT 相关性和排序模型进行端到端联结训练,将相关性和点击率指标进行多指标联结优化,晋升美团搜寻排序的综合体验。
参考资料
[1] Devlin, Jacob, et al. “BERT: Pre-training of deep bidirectional transformers for language understanding.” arXiv preprint arXiv:1810.04805 (2018).
[2] 杨扬、佳昊等. 美团 BERT 的摸索和实际
[3] 肖垚、家琪等. Transformer 在美团搜寻排序中的实际
[4] Mikolov, Tomas, et al. “Efficient estimation of word representations in vector space.” arXiv preprint arXiv:1301.3781 (2013).
[5] Peters, Matthew E., et al. “Deep contextualized word representations.” arXiv preprint arXiv:1802.05365 (2018).
[6] Vaswani, Ashish, et al. “Attention is all you need.” Advances in neural information processing systems. 2017.
[7] Radford, Alec, et al. “Improving language understanding by generative pre-training.”
[8] Sun, Yu, et al. “Ernie: Enhanced representation through knowledge integration.” arXiv preprint arXiv:1904.09223 (2019).
[9] Zhang, Zhengyan, et al. “ERNIE: Enhanced language representation with informative entities.” arXiv preprint arXiv:1905.07129 (2019).
[10] Liu, Weijie, et al. “K-bert: Enabling language representation with knowledge graph.” arXiv preprint arXiv:1909.07606 (2019).
[11] Sun, Yu, et al. “Ernie 2.0: A continual pre-training framework for language understanding.” arXiv preprint arXiv:1907.12412 (2019).
[12] Liu, Yinhan, et al. “Roberta: A robustly optimized bert pretraining approach.” arXiv preprint arXiv:1907.11692 (2019).
[13] Joshi, Mandar, et al. “Spanbert: Improving pre-training by representing and predicting spans.” Transactions of the Association for Computational Linguistics 8 (2020): 64-77.
[14] Wang, Wei, et al. “StructBERT: Incorporating Language Structures into Pre-training for Deep Language Understanding.” arXiv preprint arXiv:1908.04577 (2019).
[15] Lan, Zhenzhong, et al. “Albert: A lite bert for self-supervised learning of language representations.” arXiv preprint arXiv:1909.11942 (2019)
[16] Clark, Kevin, et al. “Electra: Pre-training text encoders as discriminators rather than generators.” arXiv preprint arXiv:2003.10555 (2020).
[17] Qiu, Xipeng, et al. “Pre-trained Models for Natural Language Processing: A Survey.” arXiv preprint arXiv:2003.08271 (2020).
[18] Qiao, Yifan, et al. “Understanding the Behaviors of BERT in Ranking.” arXiv preprint arXiv:1904.07531 (2019).
[19] Nogueira, Rodrigo, et al. “Multi-stage document ranking with BERT.” arXiv preprint arXiv:1910.14424 (2019).
[20] Yilmaz, Zeynep Akkalyoncu, et al. “Cross-domain modeling of sentence-level evidence for document retrieval.” Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP). 2019.
[21]Wenhao Lu, et al. “TwinBERT: Distilling Knowledge to Twin-Structured BERT Models for Efficient Retrieval.” arXiv preprint arXiv: 2002.06275
[22] Pandu Nayak.
[23]帅朋、会星等.WSDM Cup 2020 检索排序评测工作第一名经验总结
[24] Blei, David M., Andrew Y. Ng, and Michael I. Jordan. “Latent dirichlet allocation.” Journal of machine Learning research 3.Jan (2003): 993-1022.
[25] Jianfeng Gao, Xiaodong He, and JianYun Nie. Click-through-based Translation Models for Web Search: from Word Models to Phrase Models. In CIKM 2010.
[26] Huang, Po-Sen, et al. “Learning deep structured semantic models for web search using clickthrough data.” Proceedings of the 22nd ACM international conference on Information & Knowledge Management. 2013.
[27] SimNet.
[28] Guo T, Lin T. Multi-variable LSTM neural network for autoregressive exogenous model[J]. arXiv preprint arXiv:1806.06384, 2018.
[29] Hu, Baotian, et al. “Convolutional neural network architectures for matching natural language sentences.” Advances in neural information processing systems. 2014.
[30] Pang, Liang, et al. “Text matching as image recognition.” Thirtieth AAAI Conference on Artificial Intelligence. 2016.
[31] 非易、祝升等. 公众点评搜寻基于常识图谱的深度学习排序实际.
[32] 仲远、富峥等. 美团餐饮娱乐常识图谱——美团大脑揭秘.
[33] Liu, Xiaodong, et al. “Multi-task deep neural networks for natural language understanding.” arXiv preprint arXiv:1901.11504 (2019).
[34] Burges, Christopher JC. “From ranknet to lambdarank to lambdamart: An overview.” Learning 11.23-581 (2010): 81.
[35] Hinton, Geoffrey, Oriol Vinyals, and Jeff Dean. “Distilling the knowledge in a neural network.” arXiv preprint arXiv:1503.02531 (2015).
[36] Sanh, Victor, et al. “DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter.” arXiv preprint arXiv:1910.01108 (2019).
[37] Jiao, Xiaoqi, et al. “Tinybert: Distilling bert for natural language understanding.” arXiv preprint arXiv:1909.10351 (2019).
[38] Faster Transformer.
作者简介
- 李勇,美团 AI 平台搜寻与 NLP 部算法工程师。
- 佳昊,美团 AI 平台搜寻与 NLP 部算法工程师。
- 杨扬,美团 AI 平台搜寻与 NLP 部算法工程师。
- 金刚,美团 AI 平台搜寻与 NLP 部算法专家。
- 周翔,美团 AI 平台搜寻与 NLP 部算法专家。
- 朱敏,美团 AI 平台搜寻与 NLP 部技术专家。
- 富峥,美团 AI 平台搜寻与 NLP 部资深算法专家。
- 陈胜,美团 AI 平台搜寻与 NLP 部资深算法专家。
- 云森,美团 AI 平台搜寻与 NLP 部研究员。
- 永超,美团 AI 平台搜寻与 NLP 部高级研究员。
浏览更多技术文章,请扫码关注微信公众号 - 美团技术团队!