稠密向量检索的Query深度交互的文档多视角表征

描述

今天给大家带来一篇北航和微软出品的稠密向量检索模型Dual-Cross-Encoder,结合Query生成和对比学习技术,将文档与生成的不同伪query进行深度交互学习构建文档的不同视角的表征向量,再与Query向量进行稠密向量检索。

Paper:https://arxiv.org/pdf/2208.04232.pdf Github:https://github.com/jordane95/dual-cross-encoder

介绍

目前,稠密向量检索已经在信息检索中起着至关重要的地位,相较于传统的BM25,它可以更好地获取问题与文档之间的语义信息。针对query和document的相关性评分主要有Dual-Encoder和Cross-Encoder两种框架:

Cross-Encoder,由于计算量太大,无法在召回阶段使用;

Dual-Encoder,由于query和document没有相互,并且无法很好地表现长文档中的多主题内容。

一些研究(Poly-Encoder、ColBERT等)致力于用后期交互体系结构,权衡模型的速度与效果,但「无法直接使用ANN进行排序」。与之前的工作不同,我们主要使用生成的query来学习查询通知的文档表示。框架我们提出了一种新的稠密检索模型,使用生成的伪query与每个文档进行深度交互编码,以获得融合query信息的多视角文档表示,并单独编码query向量,使得该模型不仅像普通的Dual-Encoder模型一样具有很高的推理效率,而且在文档编码中与query深度交互,提供多视角表示,以更好地匹配不同的查询query。

Dual-Cross-Encoder模型

Dual-Cross-Encoder中,文档编码器部分为Cross-Encoder,而问题编码器与文档编码器之间的模式相当于Dual-Encoder。具体来说,问题编码器为

文档编码器为

它们之间相似性是通过点积来衡量的,

注意,来自问题编码器和文档编码器的query是不相同的,因为只能访问到训练集中的文档的标准query,并且手动编写整个语料库中的每个文档可能出现的query是不现实的。

因此,使用T5模型,依赖doc2query技术为每个文档生成若干伪query,并在解码时采用Top-K方式,保证query的多样性。

模型训练

采用对比学习的方式训练模型,而对比学习的宗旨就是拉近相似数据,推开不相似数据,有效地学习数据表征。

将query信息融合到文档表示中后,重新定义正例和负例,对于给定,四种形式的正负例,为、、和。

难负例:负文档从通过BM25排名靠前的文档中随机抽取得来。难负例可以使模型学习到更细粒度的信息,如负文档通常与query有关,但不能准确回答,并且还阻止模型只学习来自query端的匹配信号,而忽略文档端信息。

批次内负例:可以提高训练效率,使模型学习到主题层次的辨别能力。

训练阶段,使用数据增强的方式,将生成的query视为伪标注数据,首先在这些噪声数据上,进行模型训练,视作一个热身阶段;然后在真实标注的高质量训练集上进行模型微调。

模型推理

创建索引

对语料库进行编码,以获得具有query深度交互的多视图文档表示。将表示为第个文档的第个视图,

其中,表示Query生成模型。

检索

当进行检索时,使用问题编码器对其进行编码,获取上下文表征向量。对文档进行多视角向量编码,并将其问题与文档中不同视角相关性得分的最大值(max-pooling)作为问题与文档的相关性得分。

支持直接使用ANN进行排序。

实现细节

在8块32GB V100上进行模型训练,采用bert-base-uncase初始化所有编码器,query最大长度为16,文档最大长度为128,每个样本的正例和负例数量对比为1:7。训练的Batch-Size大小为32,学习率为5e−6,warmup10%的步数。

结果

从下表中可以看出,相较于DPR Dual-Encoder,具有显著提高,证明了方法的有效性;并媲美Col-Bert模型,同时更高效。框架从下图可以看出,query生成质量与检索呈正相关。框架

总结

挺有意思一篇文章,通过伪query来表征不同视角的文档,并且支持ANN排序。现在越来越多的长文档表征论文从多个不同视角出发,单一向量确实很难表达出多种差异较大的信息,甚至训练中会导致趋同。  

审核编辑:彭静
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分