0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一种针对该文本检索任务的BERT算法方案DR-BERT

深度学习自然语言处理 来源:美团技术团队 2020-08-27 18:05 次阅读

基于微软大规模真实场景数据的阅读理解数据集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)匹配方法。

图1 官方祝贺推文及MARCO 排行榜相关介绍Learning to Rank在信息检索领域,早期就已经存在很多机器学习排序模型(Learning to Rank)用来解决文档排序问题,包括LambdaRank[2]、AdaRank[3]等,这些模型依赖很多手工构造的特征。而随着深度学习技术在机器学习领域的流行,研究人员提出了很多神经排序模型,比如DSSM[4]、KNRM[5]等。这些模型将问题和文档的表示映射到连续的向量空间中,然后通过神经网络来计算它们的相似度,从而避免了繁琐的手工特征构建。

图2 Pointwise、Pairwise、Listwise训练的目标 根据学习目标的不同,排序模型大体可以分为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)。

图3 BERT的结构和训练模式 在信息检索领域,很多研究人员也开始使用BERT来完成排序任务。比如,[10][11]就使用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”在第一个文档中的重要性更高。

图4 DeepCT估单词的重要性,同一个词在不同文档中的重要性不同

DeepCT的训练目标如下所示:

其中QTR(t,d)表示文档d中单词t的重要性分数,Qd表示和文档d相关的问题,Q{d,t}表示文档d对应的问题中包含单词t的子集。输出的分数可以当做词频(TF)使用,相当于对文档的词的重要性进行了重新估计,因此可以直接使用BM25算法进行检索。我们使用DeepCT作为第一阶段的检索模型,得到top-k个文档作为文档候选集合D={D1,D2,...,Dk}。领域自适应预训练由于我们的模型是基于BERT的,而BERT本身的预训练使用的语料和当前的任务使用的语料并不是同一个领域。我们得出这个结论是基于对两部分语料中top-10000高频词的分析,我们发现MARCO的top-10000高频词和BERT基线使用的语料有超过40%的差异。因此,我们有必要使用当前领域的语料对BERT进行预训练。由于MS MARCO属于大规模语料,我们可以直接使用该数据集中的文档内容对BERT进行预训练。我们在第一阶段使用MLM和NSP预训练目标函数在MS MARCO上进行预训练。两阶段精调

图5 模型结构 下面介绍我们提出的精调模型,上图5展示了我们提出的模型的结构。精调分为两个阶段:Pointwise精调和Listwise精调。Pointwise问题类型感知的精调

第一阶段的精调,我们的目标是通过Pointwise的训练方式建立问题和文档的关系。我们将Query-Document作为输入,使用BERT对其编码,匹配问题和文档。考虑到问题和文档的匹配模式和问题的类型有很大的关系,我们认为在该阶段还需要考虑问题的类型。因此,我们使用问题,问题类型和文档一起通过BERT进行编码,得到一个深层交互的语义表示。具体的,我们将问题类型T、问题Q和第i个文档Di拼接成一个序列输入,如下式所示:

其中表示分隔符,的位置对应的编码表示Query-Document的关系。

经过BERT编码后,我们取最后一层中位置的表示hi为Query-Document的关系表示。然后通过Softmax计算他们的得分,得到:

该分数Ti通过交叉熵损失函数进行优化。通过以上的预训练,模型对不同的问题学到了不同的匹配模式。该阶段的预训练可以称为类型自适应(Type-Adaptive)模型精调。Listwise 精调为了使得模型直接学习不同排序的比较关系,我们通过Listwise的方式对模型进行精调。具体的,在训练过程中,对于每个问题,我们采样n+个正例以及n-个负例作为输入,这些文档是从候选文档集合D中随机产生。注意,由于硬件的限制,我们不能将所有的候选文档都输入到当前模型中。因此我们选择了随机采样的方式来进行训练。

和预训练中使用BERT的方式类似,我们得到正例和负例中每个文档的表示,hi+和hi-。然后通过一个单层感知机将上面得到的表示降维并转换成一个分数,即:

其中W和b是模型中可学习的参数。接下来对于每个文档的分数,我们通过一个文档级别的比较和归一化得到:

这一步,我们将文档中的正例的分数和负例的分数进行比较,得到Listwise的排名分数。我通过这一步,我们得到了一个文档排序列表,我们可以将文档排序的优化转化为最大化正例的分数。因此,模型可以通过负对数似然损失优化,如下式所示:

至于为什么使用两个阶段的精调模型,主要出于如下两点考虑:

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”,导致两者的相关性计算分数比较高。

图6 BERT WordPiece处理前/后的文本 为了解决这个问题,我们提出了一种是对原始词(WordPiece切词之前)做精准匹配的特征。所谓“精确匹配”,指的是某个词在文档和问题中同时出现。精准匹配是信息检索和机器阅读理解中非常重要的一个技术。根据以往的研究,很多阅读理解模型加入该特征之后都可以有一定的效果提升。具体的,在Fine-tuning阶段,我们对于每个词构造了一个精准匹配特征,该特征表示该单词是否出现在问题以及文档中。在编码阶段之前,我们就将这个特征映射到一个向量,和原本的Embedding进行组合:

图7 词还原机制的工作原理 除此之外,我们还提出了一种词还原机制如图7所示,词还原机制能够将WordPiece切分的Subtoken的表示合并,从而能更好地解决OOV错误匹配的问题。具体来说,我们使用Average Pooling对Subtoken的表示合并作为隐层的输入。除此之外,如上图7所示,我们使用了MASK处理Subtoken对应的非首位的隐层位置。值得注意的是,词还原机制也能很好地避免模型的过拟合问题。这是因为MARCO的集合标注是比较稀疏的,换句话说,有很多正例未被标注为1,因此容易导致模型过拟合这些负样本。词还原机制一定程度上起到了Dropout的作用。总结与展望以上内容就对我们提出的DR-BERT模型进行了详细的介绍。我们提出的DR-BERT模型主要采用了任务自适应预训练以及两阶段模型精调训练。除此之外,还提出了词还原机制和精确匹配特征提高OOV词的匹配效果。通过在大规模数据集MS MARCO的实验,充分验证了该模型的优越性,希望这些能对大家有所帮助或者启发。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微软
    +关注

    关注

    4

    文章

    6572

    浏览量

    103963
  • 算法
    +关注

    关注

    23

    文章

    4601

    浏览量

    92677
  • 数据集
    +关注

    关注

    4

    文章

    1205

    浏览量

    24649

原文标题:MT-BERT在文本检索任务中的实践

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    内置误码率测试仪(BERT)和采样示波器体化测试仪器安立MP2110A

    BERTWave MP2110A是款内置误码率测试仪(BERT)和采用示波器的体化测量仪器,支持光模块的误码率(BERT)测量、眼图模式测试、眼图分析等评估操作
    的头像 发表于 09-23 14:34 269次阅读
    内置误码率测试仪(<b class='flag-5'>BERT</b>)和采样示波器<b class='flag-5'>一</b>体化测试仪器安立MP2110A

    M8020A J-BERT 高性能比特误码率测试仪

    M8020A 比特误码率测试仪 J-BERT M8020A 高性能 BERT 产品综述 Keysight J-BERT M8020A 高性能比特误码率测试仪能够快速、准确地表征传输速率高达 16 或
    的头像 发表于 08-21 17:13 178次阅读

    AWG和BERT常见问题解答

    随着信号的速率越来越高,调制格式越来越复杂,对测试仪器的性能要求也越来越高。是德科技也直在推出业界领先的高带宽、高采样率的AWG和高性能的BERT
    的头像 发表于 08-06 17:27 545次阅读

    llm模型本地部署有用吗

    在当今的人工智能领域,LLM(Large Language Model,大型语言模型)已经成为了一种非常受欢迎的技术。它们在自然语言处理(NLP)任务中表现出色,如文本生成、翻译、摘要、问答等。然而
    的头像 发表于 07-09 10:14 419次阅读

    llm模型有哪些格式

    Representations from Transformers):BERT一种双向预训练模型,通过大量文本数据进行预训练,可以用于各种NLP任务,如
    的头像 发表于 07-09 09:59 556次阅读

    llm模型和chatGPT的区别

    ,有许多不同的LLM模型,如BERT、GPT、T5等。 ChatGPT是一种基于GPT(Generative Pre-trained Transformer)模型的聊天机器人。GPT模型是一种
    的头像 发表于 07-09 09:55 935次阅读

    自然语言处理是什么技术的一种应用

    广泛,包括机器翻译、语音识别、情感分析、信息检索、问答系统、文本摘要、聊天机器人等。 、自然语言处理的基本概念 自然语言:自然语言是人类用来交流思想、表达情感和传递信息的语言,包括口语和书面语。自然语言具有高度的复杂性和多样性
    的头像 发表于 07-03 14:18 630次阅读

    求32位穿越机电调设计方案

    32位穿越机电调设计,想要个性价比高的算法方案,哪位大神可以推荐吗?
    发表于 06-03 13:59

    【大语言模型:原理与工程实践】大语言模型的基础技术

    处理各种自然语言任务时都表现出了惊人的能力。这促使个新的研究方向诞生——基于Transformer 的预训练语言模型。这类模型的核心思想是先利用大规模的文本数据进行预训练,捕捉语言的通用特征,再
    发表于 05-05 12:17

    【大语言模型:原理与工程实践】揭开大语言模型的面纱

    学习能力。这些模型以生成能力强和灵活性强为特点,逐渐演变成一种通用计算平台。其参数多样性、生成能力和涌现性使其不仅在自然语言处理领域表现出色,还能适应多种复杂任务。参数多样性让模型能学习并展示丰富的信息
    发表于 05-04 23:55

    检索增强生成(RAG)如何助力企业为各种企业用例创建高质量的内容?

    在生成式 AI 时代,机器不仅要从数据中学习,还要生成类似人类样的文本、图像、视频等。检索增强生成(RAG)则是可以实现的一种突破性方法。
    的头像 发表于 03-29 15:09 856次阅读

    斯坦福继Flash Attention V1和V2又推出Flash Decoding

    斯坦福大学此前提出的FlashAttention算法,能够在BERT-large训练中节省15%,将GPT训练速度提高2/3。
    的头像 发表于 03-13 15:23 735次阅读

    谷歌模型训练软件有哪些功能和作用

    谷歌模型训练软件主要是指ELECTRA,这是一种新的预训练方法,源自谷歌AI。ELECTRA不仅拥有BERT的优势,而且在效率上更胜筹。
    的头像 发表于 02-29 17:37 750次阅读

    教您如何精调出自己的领域大模型

    BERT和 GPT-3 等语言模型针对语言任务进行了预训练。微调使它们适应特定领域,如营销、医疗保健、金融。在本指南中,您将了解 LLM 架构、微调过程以及如何为 NLP 任务微调自己
    的头像 发表于 01-19 10:25 1093次阅读
    教您如何精调出自己的领域大模型

    大语言模型背后的Transformer,与CNN和RNN有何不同

      电子发烧友网报道(文/李弯弯)近年来,随着大语言模型的不断出圈,Transformer这概念也走进了大众视野。Transformer是一种非常流行的深度学习模型,最早于2017年由谷歌
    的头像 发表于 12-25 08:36 3844次阅读
    大语言模型背后的Transformer,与CNN和RNN有何不同