基于微软大规模实在场景数据的浏览了解数据集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中随机产生。留神,因为硬件的限度,咱们不能将所有的候选文档都输出到以后模型中。因而咱们抉择了随机采样的形式来进行训练。

至于为什么应用两个阶段的精调模型,次要出于如下两点思考:

  1. 咱们发现首先学习问题和文档的相关性特色而后学习排序的特色,相比间接学习排序特色成果好。
  2. 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较量和文章撰写过程中给予的领导和帮忙。

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