百度RocketQA系列搜索技术论文解析(一)

举报
人工智障研究员 发表于 2022/05/11 16:50:05 2022/05/11
【摘要】 本系列文章是对百度提出的RocketQA系列搜索技术相关论文(RocketQA[1]、PAIR[2]、RocketQAv2[3])的解析,主要探寻深度学习时代检索技术的瓶颈与技术方向。本文是对RocketQA[1]论文的解析,RocketQA主要研究基于稠密向量的文章搜索召回技术,通过优化模型训练时负采样的过程,以及扩充、优化训练数据的方式,解决经典双塔模型在训练过程和数据样本中存在的问题。

    RocketQA主要研究基于稠密向量的文章搜索召回技术,论文对于整体模型没有任何优化,还是最为经典的双塔模型(dual-encoder model),采用预训练语言模型将query和answer编码为稠密向量,通过计算向量之间的距离来衡量query与answer之间的相关程度,利用Faiss等高维向量检索方法召回TopK的相关文章。主要的思路是优化模型训练时负采样的过程,以及扩充、优化训练数据的方式,解决经典双塔模型在训练过程和数据样本中存在的问题。


其主要想要解决的是如下几个问题:

  • 负样本的无限性与计算资源的有限性之间的矛盾:在模型使用过程中,query的“负例”是文档库中的几乎所有文章,而模型在训练过程中,受限于计算资源,模型无法在保证足够Batch Size的基础上,对负样本进行充分的采样。通常为了节约资源,会仅仅对Batch内的样本做互相负样本处理(in-batch negatives),这大大限制了模型对负样本的学习,降低了模型泛化能力。
  • 无标记文档≠负样本文档:就统计概率上说,大规模文档库上构建的数据集中,无标记文档≈负样本文档是成立的,但是由于标注形式与标注代价的制约,无标记文档中肯定存在大量的正样本文档。再加上为了让模型有足够好的区分度,在负采样过程中常常会倾向采样那些与query和正例answer相关度较高的文档作为负样本。这样一来,标记数据的质量大大降低,成为制约模型效果的障碍。
  • 标记数据空间与文档空间之间的矛盾:模型要有好效果,除了要求数据集与实际场景之间同分布以外,还需要要求数据集是实际场景的“充分”采样。在搜索场景中,文档库一般来说是非常大的,包含有无数“主题”的文章;用户的query空间是近乎无限的;而标注数据是非常有限的而且代价昂贵的。在这种情况下,自动生成出较高质量的标注数据,对于模型效果的提升是明显的。

文章提出的解决上述问题的方案:

  • 跨批次负采样(cross-batch negatives):本质是共享了多个GPU之间的负样本表示。传统模型在多GPU架构中运行时,仅仅共享了单个GPU内部的passage样本表示,如图1中表示:GPU1计算了q11,q12,…,q1B的encoder表示,以及p11,p12,…,p1B的encoder表示,然后互为负样本进行pairwise loss计算进行训练,其他GPU上面的计算类似,多个GPU之间计算的px1,px2,…,pxB表示是无法共享的,于是每一个query只有B-1个负样本;而对于跨批次负采样来说,通过共享了多个GPU之间计算的文章表示(px1,px2,…,pxB),实现了每个query有A*B-1个负样本,提升了每个batch训练时query的负样本数量。当然这里所述是比较理想的情况,每个answer样本都有与之对应的query,实际情况中肯定存在很多纯负样本,处理情况与上述一致。
    Cross-Batch Negatives图示

  • 负样本降噪(denoised hard negatives):假的负样本对于模型的伤害是巨大的,模型提出可以使用一个cross-encoder模型来辅助判断哪些样本是伪负样本。首先,使用经典的设置(无标记文档=负样本文档)训练一个dual-encoder召回模型M(0)D;紧接着,利用召回模型M(0)D的分布确定相关度得分排在Top的无标记文本作为负样本,训练cross-encoder模型MC;最后,使用召回模型M(0)D的分布确定相关度得分排在Top的无标记文本,其中在模型MC的相关度得分较低的部分作为负样本,训练dual-encoder模型M(1)D。整体过程有点像自监督学习中的teacher和student。
    利用Corss-Encoder做负样本降噪与数据扩充过程

  • 数据扩充(data augmentation):利用上面训练得到的dual-encoder模型M(1)D做召回,用cross-encoder模型MC进行相关度计算,在新query集合中找出执行度较高的正样本和负样本,对标注数据进行扩充。最后得到的模型M(2)D是在原始标注数据集DL和扩充数据集DU基础上,使用M(1)D生成潜在负样本,使用MC筛选负样本,训练而来。


实验与结论:

论文在MSMARCO和Natural Questions两个数据集上进行实验,都取得了很好的效果,在召回模型中达到了state-of-art。

RocketQA实验结果


References
[1] RocketQA: An Optimized Training Approach to Dense Passage Retrieval for Open-Domain Question Answering
[2] PAIR: Leveraging Passage-Centric Similarity Relation for Improving Dense Passage Retrieval
[3] RocketQAv2: A Joint Training Method for Dense Passage Retrieval and Passage Re-ranking

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。