共计 6164 个字符,预计需要花费 16 分钟才能阅读完成。
基于微软大规模实在场景数据的浏览了解数据集 MS MARCO,美团搜寻与 NLP 核心提出了一种针对该文本检索工作的 BERT 算法计划 DR-BERT,该计划是第一个在官网评测指标 MRR@10 上冲破 0.4 的模型。本文系 DR-BERT 算法在文本检索工作中的实际分享,心愿对从事检索、排序相干钻研的同学可能有所启发和帮忙。
背景
进步机器浏览了解(MRC)能力以及凋谢畛域问答(QA)能力是自然语言解决(NLP)畛域的一大重要指标。在人工智能畛域,很多突破性的停顿都基于一些大型公开的数据集。比方在计算机视觉畛域,基于对 ImageNet 数据集研发的物体分类模型曾经超过了人类的体现。相似的,在语音辨认畛域,一些大型的语音数据库,同样使得了深度学习模型大幅提高了语音辨认的能力。
近年来,为了进步模型的自然语言理解能力,越来越多的 MRC 和 QA 数据集开始涌现。然而,这些数据集或多或少存在一些缺点,比方数据量不够、依赖人工结构 Query 等。针对这些问题,微软提出了一个基于大规模实在场景数据的浏览了解数据集 MS MARCO(Microsoft Machine Reading Comprehension)[1]。该数据集基于 Bing 搜索引擎和 Cortana 智能助手中的实在搜寻查问产生,蕴含 100 万查问,800 万文档和 18 万人工编辑的答案。基于 MS MARCO 数据集,微软提出了两种不同的工作:一种是给定问题,检索所有数据集中的文档并进行排序,属于文档检索和排序工作;另一种是依据问题和给定的相干文档生成答案,属于 QA 工作。在美团业务中,文档检索和排序算法在搜寻、广告、举荐等场景中都有着宽泛的利用。此外,间接在所有候选文档上进行 QA 工作的工夫耗费是无奈承受的,QA 工作必须依附排序工作筛选出排名靠前的文档,而排序算法的性能间接影响到 QA 工作的体现。基于上述起因,咱们次要将精力放在基于 MS MARCO 的文档检索和排序工作上。
自 2018 年 10 月 MACRO 文档排序工作公布后,迄今吸引了包含阿里巴巴达摩院、Facebook、微软、卡内基梅隆大学、清华等多家企业和高校的参加。在美团的预训练 MT-BERT 平台 [14] 上,咱们提出了一种针对该文本检索工作的 BERT 算法计划,称之为 DR-BERT(Enhancing BERT-based Document Ranking Model with Task-adaptive Training and OOV Matching Method)。DR-BERT 是第一个在官网评测指标 MRR@10 上冲破 0.4 的模型,且在 2020 年 5 月 21 日(模型提交日)- 8 月 12 日期间位居榜首,主办方也独自发表推文示意了恭喜,如下图 1 所示。DR-BERT 模型的外围翻新次要包含畛域自适应的预训练、两阶段模型精调及两种 OOV(Out of Vocabulary)匹配办法。
相干介绍
Learning to Rank
在信息检索畛域,晚期就曾经存在很多机器学习排序模型(Learning to Rank)用来解决文档排序问题,包含 LambdaRank[2]、AdaRank[3]等,这些模型依赖很多手工结构的特色。而随着深度学习技术在机器学习畛域的风行,钻研人员提出了很多神经排序模型,比方 DSSM[4]、KNRM[5]等。这些模型将问题和文档的示意映射到间断的向量空间中,而后通过神经网络来计算它们的类似度,从而防止了繁琐的手工特色构建。
依据学习指标的不同,排序模型大体能够分为 Pointwise、Pairwise 和 Listwise。这三种办法的示意图如上图 2 所示。其中,Pointwise 办法间接预测每个文档和问题的相干分数,只管这种办法很容易实现,然而对于排序来说,更重要的是学到不同文档之间的排序关系。基于这种思维,Pairwise 办法将排序问题转换为对两两文档的比拟。具体来讲,给定一个问题,每个文档都会和其余的文档两两比拟,判断该文档是否优于其余文档。这样的话,模型就学习到了不同文档之间的绝对关系。
然而,Pairwise 的排序工作存在两个问题:第一,这种办法优化两两文档的比拟而非更多文档的排序,跟文档排序的指标不同;第二,随机从文档中抽取 Pair 容易造成训练数据偏置的问题。为了补救这些问题,Listwise 办法将 Pairwsie 的思路加以延长,间接学习排序之间的互相关系。依据应用的损失函数模式,钻研人员提出了多种不同的 Listwise 模型。比方,ListNet[6]间接应用每个文档的 top- 1 概率分布作为排序列表,并应用穿插熵损失来优化。ListMLE[7]应用最大似然来优化。SoftRank[8]间接应用 NDCG 这种排序的度量指标来进行优化。大多数钻研表明,相比于 Pointwise 和 Pairwise 办法,Listwise 的学习形式可能产生更好的排序后果。
BERT
自 2018 年谷歌的 BERT[9]的提出以来,预训练语言模型在自然语言解决畛域获得了很大的胜利,在多种 NLP 工作上获得了 SOTA 成果。BERT 实质上是一个基于 Transformer 架构的编码器,其取得成功的关键因素是利用多层 Transoformer 中的自注意力机制(Self-Attention)提取不同档次的语义特色,具备很强的语义表征能力。如图 3 所示,BERT 的训练分为两局部,一部分是基于大规模语料上的预训练(Pre-training),一部分是在特定工作上的微调(Fine-tuning)。
在信息检索畛域,很多钻研人员也开始应用 BERT 来实现排序工作。比方,10 就应用 BERT 在 MS MARCO 上进行试验,失去的后果大幅超过了过后最好的神经网络排序模型。[10]应用了 Pointwise 学习形式,而 [11] 应用了 Pairwise 学习形式。这些工作尽管获得了不错的成果,然而未利用到排序自身的比拟信息。基于此,咱们联合 BERT 自身的语义表征能力和 Listwise 排序,获得了很大的提高。
模型介绍
工作形容
基于 DeepCT 候选初筛
因为 MS MARCO 中的数据量很大,间接应用深度神经网络模型做 Query 和所有文档的相关性计算会耗费大量的工夫。因而,大部分的排序模型都会应用两阶段的排序办法。第一阶段初步筛选出 top- k 的候选文档,而后第二阶段应用深度神经网络对候选文档进行精排。这里咱们应用 BM25 算法来进行第一步的检索,BM25 罕用的文档示意办法包含 TF-IDF 等。然而 TF-IDF 不能思考每个词的上下文语义。DeepCT[12]为了改良这种问题,首先应用 BERT 对文档独自进行编码,而后输入每个单词的重要性水平分数。通过 BERT 弱小的语义表征能力,能够很好掂量单词在文档中的重要性。如下图 4 所示,色彩越深的单词,其重要性越高。其中的“stomach”在第一个文档中的重要性更高。
DeepCT 的训练指标如下所示:
畛域自适应预训练
因为咱们的模型是基于 BERT 的,而 BERT 自身的预训练应用的语料和以后的工作应用的语料并不是同一个畛域。咱们得出这个论断是基于对两局部语料中 top-10000 高频词的剖析,咱们发现 MARCO 的 top-10000 高频词和 BERT 基线应用的语料有超过 40% 的差别。因而,咱们有必要应用以后畛域的语料对 BERT 进行预训练。因为 MS MARCO 属于大规模语料,咱们能够间接应用该数据集中的文档内容对 BERT 进行预训练。咱们在第一阶段应用 MLM 和 NSP 预训练指标函数在 MS MARCO 上进行预训练。
两阶段精调
上面介绍咱们提出的精调模型,上图 5 展现了咱们提出的模型的构造。精调分为两个阶段:Pointwise 精和谐 Listwise 精调。
Pointwise 问题类型感知的精调
第一阶段的精调,咱们的指标是通过 Pointwise 的训练形式建设问题和文档的关系。咱们将 Query-Document 作为输出,应用 BERT 对其编码,匹配问题和文档。思考到问题和文档的匹配模式和问题的类型有很大的关系,咱们认为在该阶段还须要思考问题的类型。因而,咱们应用问题,问题类型和文档一起通过 BERT 进行编码,失去一个深层交互的语义示意。具体的,咱们将问题类型 T, 问题 Q 和第 i 个文档 Di 拼接成一个序列输出,如下式所示:
该分数 ri 通过穿插熵损失函数进行优化。通过以上的预训练,模型对不同的问题学到了不同的匹配模式。该阶段的预训练能够称为类型自适应(Type-Adaptive)模型精调。
Listwise 精调
为了使得模型间接学习不同排序的比拟关系,咱们通过 Listwise 的形式对模型进行精调。具体的,在训练过程中,对于每个问题,咱们采样 n + 个正例以及 n - 个负例作为输出,这些文档是从候选文档汇合 D 中随机产生。留神,因为硬件的限度,咱们不能将所有的候选文档都输出到以后模型中。因而咱们抉择了随机采样的形式来进行训练。
至于为什么应用两个阶段的精调模型,次要出于如下两点思考:
- 咱们发现首先学习问题和文档的相关性特色而后学习排序的特色,相比间接学习排序特色成果好。
- MARCO 是标注不充沛的数据汇合。换句话说,许多和问题相干的文档未被标注为 1,这些噪声容易造成模型过拟合。第一阶段的模型用来过滤训练数据中的噪声,从而能够有更好的数据监督第二阶段的精调模型。
解决 OOV 的谬误匹配问题
在 BERT 中,为了缩小词表的规模以及解决 Out-of-vocabulary(OOV)的问题,应用了 WordPiece 办法来分词。WordPiece 会把不在词表里的词,即 OOV 词拆分成片段,如图 6 所示,原始的问题中蕴含词“bogue”,而文档中蕴含词“bogus”。在 WordPiece 办法下,将“bogue”切分成”bog”和“##ue”,并且将“bogus”切分成”bog”和“##us”。咱们发现,“bogus”和“bogue”是不相干的两个词,然而因为 WordPiece 切分出了匹配的片段“bog”,导致两者的相关性计算分数比拟高。
为了解决这个问题,咱们提出了一种是对原始词(WordPiece 切词之前)做精准匹配的特色。所谓“准确匹配”,指的是某个词在文档和问题中同时呈现。精准匹配是信息检索和机器浏览了解中十分重要的一个技术。依据以往的钻研,很多浏览了解模型退出该特色之后都能够有肯定的成果晋升。具体的,在 Fine-tuning 阶段,咱们对于每个词结构了一个精准匹配特色,该特色示意该单词是否呈现在问题以及文档中。在编码阶段之前,咱们就将这个特色映射到一个向量,和本来的 Embedding 进行组合:
除此之外,咱们还提出了一种词还原机制如图 7 所示,词还原机制可能将 WordPiece 切分的 Subtoken 的示意合并,从而能更好地解决 OOV 谬误匹配的问题。具体来说,咱们应用 Average Pooling 对 Subtoken 的示意合并作为隐层的输出。除此之外,如上图 7 所示,咱们应用了 MASK 解决 Subtoken 对应的非首位的隐层地位。值得注意的是,词还原机制也能很好地防止模型的过拟合问题。这是因为 MARCO 的汇合标注是比拟稠密的,换句话说,有很多正例未被标注为 1,因而容易导致模型过拟合这些负样本。词还原机制肯定水平上起到了 Dropout 的作用。
总结与瞻望
以上内容就对咱们提出的 DR-BERT 模型进行了具体的介绍。咱们提出的 DR-BERT 模型次要采纳了工作自适应预训练以及两阶段模型精调训练。除此之外,还提出了词还原机制和准确匹配特色进步 OOV 词的匹配成果。通过在大规模数据集 MS MARCO 的试验,充沛验证了该模型的优越性,心愿这些能对大家有所帮忙或者启发。
参考文献
- [1] Payal Bajaj, Daniel Campos, et al. 2016. “MS MARCO: A Human Generated MAchine Reading COmprehension Dataset” NIPS.
- [2] Christopher J. C. Burges, Robert Ragno, et al. 2006. “Learning to Rank with Nonsmooth Cost Functions” NIPS.
- [3] Jun Xu and Hang Li. 2007. “AdaRank: A Boosting Algorithm for Information Retrieval”. SIGIR.
- [4] Po-Sen Huang, Xiaodong He, et al. 2013. “Learning deep structured semantic models for web search using clickthrough data”. CIKM.
- [5] Chenyan Xiong, Zhuyun Dai, et al. 2017. “End-to-end neural ad-hoc ranking with kernel pooling”. SIGIR.
- [6] Zhe Cao, Tao Qin, et al. 2007. “Learning to rank: from pairwise approach to listwise approach”. ICML.
- [7] Fen Xia, Tie-Yan Liu, et al. 2008. “Listwise Approach to Learning to Rank: Theory and Algorithm”. ICML.
- [8] Mike Taylor, John Guiver, et al. 2008. “SoftRank: Optimising Non-Smooth Rank Metrics”. In WSDM.
- [9] Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. 2018. “Bert: Pre-training of deep bidirectional transformers for language understanding”. arXiv preprint arXiv:1810.04805.
- [10] Rodrigo Nogueira and Kyunghyun Cho. 2019. “Passage Re-ranking with BERT”. arXiv preprint arXiv:1901.04085 (2019).
- [11] Rodrigo Nogueira, Wei Yang, Kyunghyun Cho, and Jimmy Lin. 2019. “Multi-stage document ranking with BERT”. arXiv preprint arXiv:1910.14424 (2019).
- [12] Zhuyun Dai and Jamie Callan. 2019. “Context-aware sentence/passage term importance estimation for first stage retrieval”. arXiv preprint arXiv:1910.10687 (2019)
- [13] Hiroshi Mamitsuka. 2017. “Learning to Rank: Applications to Bioinformatics”.
[14] 杨扬、佳昊等. 美团 BERT 的摸索和实际.
作者简介
兴武,弘胤,金刚,富峥,武威等,均来自美团 AI 平台 / 搜寻与 NLP 核心。
特别感谢中国科学院软件所研究员金蓓弘老师在 MARCO 较量和文章撰写过程中给予的领导和帮忙。
浏览更多技术文章,请扫码关注微信公众号 - 美团技术团队!