信息检索(41):Unifier: A Unified Retriever for Large-Scale Retrieval


发布时间(2023)


摘要

大规模检索是指根据查询从庞大的集合中调用相关文档。它依赖于表示学习将文档和查询嵌入到公共语义编码空间中。 根据编码空间,最近基于预训练语言模型 (PLM) 的检索方法可以粗略地分为密集向量或基于词典的范式。这两个范式分别揭示了 PLM 在不同粒度(即全局序列级压缩和局部词级上下文)中的表示能力。受它们互补的全局局部语境化和不同的表示视图的启发,我们提出了一种新的学习框架 Unifier,它将密集向量和基于词典的检索统一在一个具有双重表示能力的模型中。在段落检索基准上的实验验证了它在两个范式中的有效性。进一步提出了一种具有更好检索质量的单一检索方案。我们最后在 BEIR 基准上评估该模型以验证其可迁移性。

1 引言

密集和词汇因为提取了不同的特征,所以引出了两者深入交互的重要性

1)提出 dual encoder:
a-dense-vector
and
a-lexicon-based-representation

2)提出 self-learning 策略,dual-consistency learning:
对比学习目标
+
挖掘 self-adversarial 的硬负例,开发 dual encoder 的表示
+
基于列表一致性 self-regularization 方法,实现更好的一致性和泛化

大规模检索旨在从拥有数百万或数十亿条目的大规模集合中高效地获取与给定查询相关的所有文档1 。它是信息检索 [2]、开放域问答 [3] 等众多下游任务的先决条件,起着不可或缺的作用。为了实现在线大规模检索,通常的做法是用编码器以孪生方式表示查询和文档(即 Bi-Encoder,BE)[39]。因此,它的成功在很大程度上取决于通过有效的表示学习实现的强大编码器。
在预训练语言模型 (PLM)(例如 BERT [9])的推动下,近期的研究提出学习基于 PLM 的编码器以进行大规模检索,根据其编码空间的不同,它们被粗略地分为两种范式,且表示粒度的重点不同。也就是说,密集向量编码方法利用嵌入到密集语义空间中的序列级压缩表示 [14, 24, 51, 54],而基于词典的编码方法通过考虑 PLM 中的高并发性 [36] 或协调项 [12],充分利用单词级上下文表示。 为了结合两者的优势,一些先驱性研究提出了混合方法,以在密集向量和基于词典的方法之间取得最佳平衡,从而获得更好的检索质量。他们专注于两种范式之间预测分数的相互作用。

尽管如此,这种表面交互——分数聚合 [25]、直接协同训练 [16] 和 logits 提炼 [5]——无法充分利用这两种范式的优势——无论它们具有互补的上下文特征和不同的表示视图。 具体而言,就上下文特征而言,密集向量模型更侧重于序列级全局嵌入以克服信息瓶颈 [13、14、31],而基于词典的模型则侧重于词级局部上下文嵌入以实现精确的词典加权 [10、11、36]。将这两种检索范式更紧密地结合起来可能会使彼此受益,因为在一般表示学习中,全局-局部上下文已被证明是互补的 [1、44]。 至于表示视图,依靠不同的编码空间,这两种检索范式已被证明在查询-文档相关性方面提供了不同的视图 [15、16、25]。这种“双重视角”在之前的许多合作学习研究中已被证明是至关重要的 [4, 17, 18, 27],这为连接两种检索范式提供了绝佳的机会。因此,如果没有任何深入的交互,单一(密集/词典)或混合检索模型都不是最佳的。
受此启发,我们提出了一个全新的学习框架——统一检索器(Unifier),以实现密集向量检索和基于词典的检索的深度互利。一方面,我们为 Unifier 提出了一个具有双重表示模块的神经编码器,该编码器与两种检索范式兼容。在支持一致语义共享的底层绑定语境化基础上,提出了一个局部增强序列表示模块来学习密集向量表示模型。 同时,针对基于词典的表示,提出了一个同时考虑全局和局部语境的全局感知词典加权模块。另一方面,我们在统一编码器上提出了一种新的自学习策略,称为双重一致性学习。 除了基本的对比学习目标之外,我们首先通过在 Unifier 中挖掘用于自我对抗的不同硬否定来利用统一的双重表示模块。此外,我们从双重视角提出了一种基于列表一致性的自正则化方法,以实现更好的一致性和泛化。
经过训练后,Unifier 可通过高效倒排索引的词典表示或可并行化点积的密集向量执行大规模检索。此外,借助 Unifier,我们提出了一种快速而有效的检索方案 uni-retrieval,以汇集两全其美的力量,其中词典检索之后是候选约束的密集评分。从经验上讲,我们在两个段落检索基准上评估了 Unifier,以检查其有效性,并使用 12 个数据集(例如 Natural Questions、HotpotQA)评估了 BEIR 基准 [48],以验证其可迁移性。

2 相关工作

基于 PLM 的检索器
在 PLM 的基础上,近期的研究提出学习用于大规模检索的编码器,根据其编码空间的不同,可粗略地将其分为两种范式,且表示粒度的重点不同:(i)密集向量编码方法将文档 / 查询直接表示为低维序列级密集向量 𝒖 ∈ R 𝑒(𝑒 是嵌入大小,通常较小,例如 768)。并且文档和查询之间的相关性得分通过点积或余弦相似度计算 [14, 24, 51, 54]。(ii)基于词典的编码方法通过在 PLM 中考虑高并发性 [36] 或协调词 [12],充分利用单词级语境化。它首先根据上下文对文档 / 查询的每个单词的所有词汇词典进行加权,从而得到高维稀疏向量 𝒗 ∈ R |V| (|V| 是词汇量,通常很大,例如 30k)。然后通过以稀疏方式聚合所有词典来表示文本。最后,通过基于词汇的匹配指标(例如 BM25 [42])计算相关性。相反,我们将这两个范例统一为一个复杂的编码器,以便在 PLM 中实现更好的一致性,从而实现互补信息和卓越性能。

混合检索器
一些研究提出弥合密集和词典之间的差距,以在性能和效率之间找到最佳平衡点。一种直接的方法是汇总两个范式的分数 [25],但会导致独立学习和次优质量。与我们的工作类似,CLEAR [16] 使用密集向量模型来补充基于词典的 BM25 模型,但没有特征交互和复杂的学习。与我们的单检索方案共享灵感,COIL [15] 为简单的基于词典的检索配备了对词级上下文嵌入的密集操作。统一器的不同之处不仅在于我们为深入的互惠而共同学习的词典表示,还在于涉及序列级密集操作以提高内存/计算效率。最后,SPARC [26] 将词典模型(BM25)的排名顺序提炼为密集模型,作为原始密集向量的伴侣,这与我们的动机不同

基于瓶颈的学习
对于神经设计,我们的编码器与最近的几种表示学习工作类似,例如 SEEDEncoder [31]、Condenser [13]、coCondenser [14] 和 DiffCSE [6],但它们专注于序列级密集向量的瓶颈。例如,SEED-Encoder、Condenser 和 CoCondenser 通过强调序列级瓶颈向量并削弱单词级语言建模头来增强其密集能力,而 DiffCSE 使学习到的句子嵌入对原始句子和单词级鉴别器编辑的句子之间的差异敏感。凭借不同的动机和目标,我们充分利用了 PLM 中的密集向量瓶颈和单词级表示学习,以实现它们的互利。这些不仅基于共享神经模块,还基于结构促进的自学习策略(参见下一节)。但是,正如我们在实验中所讨论的那样,我们的模型仍然可以通过参数初始化从这些先前的工作中受益。

依赖实例提示
我们的模型还与最近的基于实例的提示学习方法 [22, 50] 共享高级灵感。它们引入了一个可训练的组件,根据每个输入示例生成提示。这样生成的提示可以为原始输入提供互补的特征,从而获得更好的预测质量。类似地,我们的序列级密集向量可以看作是基于稀疏词典的表示模块的一种“软提示”,从而导致我们基于词典的检索具有优越性,这将在实验中讨论。此外,我们 Unifier 中的“软提示”也是统一检索系统中的关键输出

重排序器教检索器
将重排器得到的分数提炼到检索器中已被证明大有可为 [10, 19, 20] 。鉴于此,最近的研究提出联合优化检索器和重排器:RocketQAv2 [41] 被提出来实现与重排器过滤的难样本的一致性,而 AR2 [56] 则以对抗的方式学习它们,其中检索器被视为生成器,重排器被视为鉴别器。与重排器-检索器联合训练相比,我们仅在检索器内从底层(即特征)到顶层(即自学习)进行深度共享,而无需重排器训练的额外开销。同时,我们的统一结构还以独特的方式使其能够从其双重表示模块挖掘出的更多样化的难样本中学习

3 方法

三大块
1)底层编码 cls + token
2)底层 cls 经过 dense,获得 u
3)u + token 经过 lexicon,获得 v

训练过程:
1)预热:传统的对比损失 + bm25挖掘负例
2)自对抗采样:不仅使用bm25,还用已经训练过的模型采样
3)正式训练:(自正则化)传统对比损失 + 密集和稀疏的表示进行KL散度

任务定义
给定一个包含大量文档的集合(即 D = {𝑑𝑖 } |D| 𝑖=1 )和来自用户的文本查询 𝑞,检索器旨在获取包含所有相关文本片段的文本片段列表 ¯D𝑞。 通常,这是基于 𝑞 和每个文档 𝑑𝑖 之间的相关性得分,以暹罗方式进行,即 < Enc(𝑞), Enc(𝑑𝑖) >,其中 Enc 是任意表示模型(例如,词袋和神经编码器),< ·, · > 表示轻量级相关性度量(例如,BM25 和点积)。

3.1 通用检索器学习框架

为了建立方法,我们首先引入一个对比学习框架来训练检索模型(图 1)。对于检索器训练中的监督数据,与传统的分类任务不同,只有查询文档三元组(即 (𝑞, 𝑑+ 𝑞 ))作为正对给出。因此,给定一个 𝑞,方法需要从 D 中采样一组负样本 N𝑞 = {𝑑 − 𝑞 } 𝑀 1,并在 (𝑞, 𝑑+ 𝑞 , N𝑞) 的三元组上训练检索器。𝑀 是负样本的数量。如果不会引起混淆,我们在剩余的 𝑞 中省略特定查询的下标“𝑞”
正式地,给定 𝑞 和 ∀𝑑 ∈ {𝑑 + } ∪ N,将编码器 Enc(·; 𝜃) 分别应用于它们以生成它们的嵌入,即 Enc(𝑞; 𝜃) 和 Enc(𝑑; 𝜃),其中编码器由 𝜃 参数化(如果适用)。值得注意的是,为了简单起见,我们在工作中将查询编码器与文档编码器绑定在一起。然后,将相关性度量应用于查询和每个文档的每对嵌入。因此,文档 {𝑑 + }∪N 的概率分布可以定义为

3.2 本文的神经编码器

我们为 Unifier 提出了一个编码器(见图 2),用于密集向量和基于词典的检索。

底层相关的语境化
我们首先提出在两种表示范式之间共享低级文本特征提取器。尽管这两种范式关注不同的表示粒度,但共享其底层语境化模块仍然可以促进两种范式之间的语义知识迁移。这样,它们就可以针对相同的检索目标学习一致的语义和句法知识,尤其是将基于词典的显著特征迁移到密集向量。正式来说,我们利用多层 Transformer [49] 编码器来生成词级(token 级)语境化嵌入,即

局部增强序列表示
在具有增强局部上下文的嵌入之上,我们随后提出了一个表示模块来生成序列级密集向量。为此,我们将另一个多层 Transformer 编码器应用于 𝑯 (𝑥) ,然后使用池化器来导出序列级向量。这可以写成

全局感知词典加权
最后,为了实现基于词典的检索,我们将最近的 SParse 词汇和 D 扩展模型 (SPLADE) [10] 改编到我们的神经编码器中。SPLADE 是一个词典加权检索模型,它通过 PLM 的 MLM 头和稀疏正则化学习查询/文档 𝑥 中每个单词的稀疏扩展。与原始 SPLADE 不同,我们基于词典的表示模块不仅与密集模型共享其底层特征提取器,而且还通过上面的全局向量 𝒖 (𝑥) 增强其隐藏状态。直觉是,类似于具有瓶颈隐藏状态的文本解码,全局上下文充当高级约束(例如概念/主题)来指导单词级操作 [13, 31, 47]。具体而言,传递到此模块的单词级上下文化嵌入被操纵为

3.3 本文的对偶一致性学习

为了最大限度地提高编码器的表示能力,我们提出了一种自学习策略,称为对偶一致性学习(图 3)。“对偶一致性”表示通过负样本和模块预测学习对偶表示模块,以在统一模型中实现一致性。

基本训练目标

负样本连接自对抗

基于一致性的自正则化

整体训练流程

3.4 检索方案

基于词典的检索推理

单一检索方案

4 实验

三个数据集
MS-Marco Dev
TREC Deep Learning 2019
BEIR Benchmark

5 结论

我们提出了一个全新的学习框架,称为 Unifier,用于统一密集向量和基于词典的表示范式,以用于大规模检索。它通过精心设计的神经编码器改进了这两个范式,充分利用了预训练语言模型的表示能力。我们提出的具有自对抗和 -正则化的双重一致性学习进一步增强了它的能力。此外,我们还提出了单检索方案和编码器上的高级架构以实现更多功能。在多个基准上的实验验证了我们框架的有效性和多功能性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值