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

网友投稿 1188 2022-05-29

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

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

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

负样本的无限性与计算资源的有限性之间的矛盾:在模型使用过程中,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,实际情况中肯定存在很多纯负样本,处理情况与上述一致。

负样本降噪(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。

数据扩充(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。

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

机器学习 深度学习

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:华为云DevCloud还有这些功能,轻松解决研发知识管理难题
下一篇:【Android 文件管理】应用可访问的存储空间 ( 存储空间分类 | 存储空间访问权限 | 分区存储 )
相关文章