信息检索(35):LEXMAE: LEXICON-BOTTLENECKED PRETRAINING FOR LARGE-SCALE RETRIEVAL

LEXMAE: LEXICON-BOTTLENECKED PRETRAINING FOR LARGE-SCALE RETRIEVAL

  • 标题
  • 摘要
  • 1 引言
  • 2 相关工作
  • 3 LEXMAE:词典瓶颈屏蔽自动编码器
    • 3.1 语言建模编码器
    • 3.2 词典瓶颈模块
    • 3.3 弱化掩蔽式解码器
    • 3.4 词汇加权检索器的预训练目标和微调
  • 4 实验
    • 4.1 主要评估
    • 4.2 效率分析与比较
    • 4.3 进一步分析
    • 4.4 模型选择和消融研究
  • 5 结论


原文链接:https://arxiv.org/abs/2208.14754
(2023)


标题

词典瓶颈
大规模预训练

摘要

要点:词典瓶颈 + masked + autoencoder
结构:encoder 和 decoder 之间加一个词汇瓶颈模块,其中构建了连续的词袋瓶颈,以无监督的方式学习词典重要性分布
目的:感知重要性 / importance-aware的词汇表示

在大规模检索中,词典加权范式(学习词汇空间中的加权稀疏表示)已显示出高质量和低延迟的有希望的结果。尽管它深入利用了预训练语言模型的词典表示能力,但语言建模和词典加权检索之间仍然存在一个关键的差距——前者更喜欢某些或低熵词,而后者更喜欢枢轴或高熵词——成为大规模检索的词典加权性能的主要障碍。为了弥补这一差距,我们提出了一种全新的预训练框架,即词典瓶颈屏蔽自动编码器(LexMAE),以学习重要性感知的词典表示。
本质上,我们在正常语言建模编码器和弱化解码器之间提出了一个词典瓶颈模块,其中构造了一个连续的词袋瓶颈,以无监督的方式学习词典重要性分布。预训练的 LexMAE 通过微调很容易转移到词典加权检索。在临时检索基准 MS-Marco 上,通过 CPU 机器,段落数据集的 MRR@10 达到了 42.6%,QPS 为 45.8;文档数据集的 QPS 达到了 44.4% MRR@100,QPS 为 134.8。 LexMAE 在 BEIR 基准测试上通过 12 个数据集展示了最先进的零样本传输能力。

1 引言

因为文档库文档的数量巨大
1)与查询无关的文档表示(即,独立索引集合)
2)轻量级相关性度量(例如,余弦相似度、点积)
3)two-tower structure / bi-encoder / dual-encoder

大规模检索,也称为第一阶段检索(Cai et al, 2021),旨在从庞大的集合中获取与查询最相关的文档。除了在对话系统(Zhao et al, 2020)、问答系统(Karpukhin et al, 2020)、搜索引擎等方面发挥着不可或缺的作用外,它还在最近的前沿话题中风起云涌,例如检索增强生成(Lewis 等人,2020)和检索增强语言建模(Guu 等人,2020)。由于馆藏中有数百万甚至数十亿的文档,效率是大规模检索的最基本前提。
为此,与查询无关的文档表示(即独立索引集合)和轻量级相关性度量(例如余弦相似度、点积)已成为满足先决条件的常见做法——通常通过两塔结构来实现( Reimers & Gurevych,2019),又名双编码器和双编码器,在表示学习文献中。

除了在同一低维、实值潜在语义空间中对查询和文档进行编码的流行“密集向量检索”范式(Karpukhin 等人,2020)之外,另一种检索范式“词典加权检索”旨在利用词汇空间中的加权稀疏表示(Formal 等人,2021a;Shen 等人,2022)。它学习使用词汇表中的一些词典,并为它们分配权重来表示查询和文档 - 与 BM25 共享高级灵感,但在动态(压缩和扩展)词典及其在端到端中学习的重要性权重方面有所不同-结束方式。尽管在如此高维的词汇空间中学习表示对于有限的人工注释查询文档对来说似乎很棘手,但最近激增的预训练语言模型(PLM),特别是掩码语言模型(MLM),有助于传输上下文感知词典- 通过在带注释的对上微调 PLM,将知识协调到词典加权检索中(Formal 等人,2021b;a;Shen 等人,2022)。
在这里,坐标术语(充满同义词和概念)与以相关性为中心的任务高度相关,并减轻词典不匹配问题(Cai 等人,2021),从而实现卓越的检索质量。

由于具有相同输出词汇空间的预训练-微调一致性,基于词典的检索方法可以充分利用 PLM,包括其掩码语言建模 (MLM) 头,从而实现更好的搜索质量(例如,~ 1.0% MRR@10 改进)通过微调相同的 PLM 初始化来超越密集向量(Formal 等人,2021a;Hofstatter 等人,2020))。同时,由于高维稀疏可控表示(Yang et al, 2021; Lassance & Clinchant, 2022),这些方法通常比密集向量方法具有更高的检索效率(例如,在相同的性能下,速度快 10 倍)我们的实验)。

尽管如此,预训练语言模型和下游词典加权目标之间仍然存在微妙但至关重要的差距。也就是说,MLM(Devlin et al, 2019)的目标是在给定上下文的情况下恢复单词,因此它倾向于为某些(即低熵)单词分配高分,但这些单词最有可能是冠词、介词等,或者属于搭配或常用短语。因此,语言建模与出于相关性目的的词典加权表示相冲突,后者更关注对查询或文档的语义至关重要的高熵词(例如主语、谓语、宾语、修饰语) 。这些可以解释,在我们的实验中,当在词典加权检索范式下进行微调时(Formal 等人,2021a),为什么中等 PLM(即 DistilBERT)甚至可以胜过相对较大的 PLM(即基于 BERT 的 PLM) )以及为什么训练有素的 PLM(例如 RoBERTa)甚至无法实现收敛。

为了缩小差距,在这项工作中,我们提出了一种全新的预训练框架,称为词典瓶颈屏蔽自动编码器(LexMAE),以学习重要性感知的词典表示,以实现大规模词典加权检索的可转移知识。基本上,LexMAE 预训练一个语言建模编码器,用于整个词汇表上特定于文档的词典重要性分布,以反映每个词典对文档重建的贡献。受最近密集瓶颈增强预训练(Gao & Callan,2022;Liu & Shao,2022;Wang et al,2022)的推动,我们提出通过在分布上构建连续词袋(CBoW)瓶颈,以无监督的方式学习词汇重要性分布。

因此,LexMAE 预训练架构由三个组件组成:
i) 语言建模编码器(与大多数其他 PLM 一样,例如 BERT、RoBERTa),
ii) 词典瓶颈模块,以及
iii) 弱掩蔽式解码器。具体来说,集合中的掩码损坏文档被传递到语言建模编码器中,以在词汇空间中生成标记级 LM logits。除了用于通用表示学习的 MLM 目标之外,还将最大池化和归一化函数应用于 LM logits 以导出词典重要性分布。
为了无监督地学习这样的分布,词典瓶颈模块利用它作为权重来产生 CBoW 密集瓶颈,而弱化掩蔽式解码器则被要求从瓶颈重建积极掩蔽的文档。考虑到浅层解码器及其激进的屏蔽,LexMAE中的解码器很容易在CBoW瓶颈的基础上恢复屏蔽标记,因此LexMAE编码器为屏蔽文档的基本词汇词典分配较高的重要性分数,但为琐碎的词汇词典分配较低的重要性分数。这与词典加权检索范式的目标紧密结合,并提高了其性能。

在大规模集合上对 LexMAE 进行预训练后,我们对其语言建模编码器进行了微调,以获得词典加权检索器,将之前最先进的性能提高了 1.5% MRR@10,加速了 ∼13 倍在临时段落检索基准上。同时,LexMAE 还在临时文档检索基准上提供了最新的最新结果 (44.4% MRR@100)。最后,LexMAE 显示了出色的零样本传输能力,并在具有 12 个数据集(例如 Natural Questions、HotpotQA 和 FEVER)的 BEIR 基准上实现了最先进的性能。 1

2 相关工作

基于 PLM 的密集向量检索。
最近,预训练语言模型(PLM),例如 BERT(Devlin 等人,2019)、RoBERTa(Liu 等人,2019)、DeBERTa(He 等人,2021b),已被证明在转移到通过微调广泛的下游任务。
将 PLM 转移到大规模检索时,普遍存在的范式被称为“密集向量检索”(Xiong 等人,2021)——在同一低维语义空间中对查询和文档进行编码,然后计算查询-文档相关性分数基于空间距离。
然而,密集向量检索方法面临着词典恢复语言模型预训练和文档压缩密集向量微调之间的客观差距。尽管通过构建伪查询文档对(Lee et al, 2019;Chang et al, 2020;Gao & Callan,2022;Zhou et al, 2022a)或/和增强瓶颈密集表示来解决这一差距( Lu 等人,2021;Gao 和 Callan,2022;Wang 等人,2022;Liu 和 Shao,2022),这些方法仍然受到其固有表示方式的限制——密集向量导致索引大小和检索延迟较高。 – 应用加速算法、乘积量化(Zhan et al, 2022),但导致性能急剧下降(例如,Xiao et al (2022) 提出的−3% ∼ 4%)。

词典权重检索
与几乎不可学习的 BM25 相比,提出了通过神经模型对词典权重进行操作的词典权重检索方法,以利用语言模型进行基于术语的检索(Nogueira 等人,2019b;a;Formal 等人,2021b;一;2022)。根据不同类型的语言模型,有两条工作线:基于因果语言模型(CLM)(Radford et al; Raffel et al, 2020),(Nogueira et al, 2019a)使用文档和文档之间的并发性查询基于词典的稀疏表示扩展。同时,基于掩码语言模型(MLM)(Devlin 等人,2019;Liu 等人,2019),(Formal 等人,2021b)将原始单词与来自预定义的顶部坐标术语(充满同义词和概念)结合起来。然而,这些工作直接微调预训练的语言模型,而不管通用语言建模和面向相关性的词典权重之间的客观不匹配。

3 LEXMAE:词典瓶颈屏蔽自动编码器

语言建模Encoder:
word embedding module
+ multi-layer Transformer
+ language modeling head(重新映射回vocabulary space R|V|)

词典瓶颈模块
Encoder 输出得到词汇重要性分布,然后进行bottlenecked

weakened 体现在两个方面
1)激进的 mask 策略
2)Transformer层浅:两层

LexMAE 预训练概述
如图 1 所示,我们的词典瓶颈屏蔽自动编码器 (LexMAE) 包含一个编码器和一个解码器,其屏蔽输入符合屏蔽自动编码器 (MAE) 系列(He et al, 2021a; Liu & Shao, 2022),同时配备用于特定文档的词典重要性学习的词典瓶颈模块。

给定来自大规模集合 D 的一段自由格式文本 x,我们的目标是预训练语言建模编码器 θ (enc),它用词汇空间中的加权词典表示 x,即ε [0, 1]|V| 。 V表示整个词汇表。这里,每个ai = P(w = wi |x; θ (enc))和wi ∈ V表示词典wi对整个文本x的重要程度。为了以无监督的方式学习 x 的分布 a,需要额外的解码器 θ (dec) 来基于 a 重建 x。

3.1 语言建模编码器

与大多数先前的语言建模编码器相同,例如 BERT(Devlin 等人,2019),LexMAE 中的语言建模编码器 θ (enc) 由三部分组成,即将 x 的离散标记映射到的词嵌入模块密集向量、用于深度上下文化的多层 Transformer(Vaswani 等人,2017)以及映射回词汇空间 R |V| 的语言建模头。

首先,遵循无监督地预训练编码器的常见做法,采用掩码语言建模(MLM)目标来预训练 θ (enc)。形式上,给定一段文本x ∈ D,对x中一定比例(α%)的token进行掩码得到x¯,其中80%用特殊token[MASK]替换,10%用随机token替换V 中,其余保持不变(Devlin 等人,2019)。然后,将屏蔽后的 x 馈入语言建模编码器 θ (enc),即

在这里插入图片描述

其中 S (enc) 表示 LM logits。最后,MLM的目标是尽量减少以下损失,

在这里插入图片描述
其中 M(enc) 表示 x 中标记的掩码索引集,w j 表示 x 第 j 个位置处 V 上的离散变量,xj 是其原始标记(即 MLM 目标的黄金标签) 。

3.2 词典瓶颈模块

给定 V 中定义的等式(1)的标记级 logits,我们通过以下方式计算词典重要性分布

在这里插入图片描述

其中 Max-Pool(·) 沿着其序列轴进行池化,这被证明比词典表示中的均值池化更有效(Formal et al, 2021a),Normalize(·) 是一个标准化函数(令滑ai = 1) ,我们在主要实验中简单地采用了 softmax(·)。 P(w|x¯; θ (enc)) 是 V 上的词典重要性分布,用于指示 V 中的哪些词典对 x 相对重要。

学习词典重要性分布 P(w|x́; θ (enc)) 的主要障碍是我们没有任何通用的监督信号。受最近瓶颈增强的密集表示学习(Gao & Callan,2022;Liu & Shao,2022;Wang et al,2022)的启发,我们建议利用词典重要性分布作为重构 x 的线索。因此,我们的语言建模编码器将倾向于更多地关注 x 中的枢轴或基本标记/单词。然而,直接看待高维分布向量 a ∈ [0, 1]|V| 是很困难的。作为瓶颈,因为 i) 整个 V 上的分布有足够的容量来容纳 x 的大部分语义(Yang et al, 2018),使得瓶颈不太有效,并且 ii) 高维向量很难输入解码器表示学习和文本重建。

因此,我们进一步建议按照从等式(3)导出的词典重要性分布 P(w|x¯; θ (enc)) 构建连续词袋(CBoW)瓶颈。那是

在这里插入图片描述

这里,W(we) = [e (w1) , e (w2) , . 。 。 ] ∈ R d×|V|表示语言建模编码器参数 θ (enc) 中的可学习词嵌入矩阵,其中 d 表示嵌入大小,e (wi) ∈ R d 是词典 wi 的词嵌入。因此,b ∈ R d 代表密集向量 CBoW 瓶颈,在此基础上要求解码器(将在下一小节中详细介绍)重建原始 x 。

评论
正如我们在引言中提到的,MLM 和词汇重要性目标之间存在冲突,但我们仍然在编码器中应用 MLM 目标。这是因为 i) MLM 目标可以作为正则化项,以确保 x 中的原始标记与其坐标项相比获得相对较高的分数,并且 ii) MLM 任务引入的标记级噪声已被证明在鲁棒性方面有效。学习

3.3 弱化掩蔽式解码器

最后,为了指示瓶颈表示 b 并从而学习词典重要性分布 P(w|x¯; θ (enc)),我们利用解码器在 b 上重建 x。根据最近的瓶颈增强神经结构(Gao & Callan,2022;Wang et al,2022),我们采用了由 θ (dec) 参数化的弱化掩蔽式解码器,这使得解码器严重依赖瓶颈表示。值得注意的是,“削弱”体现在两个方面:i)积极的屏蔽策略和 ii)浅 Transformer 层(说是两层)。

特别是,给定编码器端的屏蔽输入 x ,我们首先应用额外的 β% 屏蔽操作,得到 x 。也就是说,解码器需要恢复编码器中也不存在的所有屏蔽标记,这促使编码器将丰富的上下文信息压缩到瓶颈中。然后,我们在 x~ 上添加瓶颈表示 b 的前缀,即用瓶颈替换特殊标记 [CLS]。因此,我们使用基于 Transformer 的语言建模解码器进行的弱化掩蔽式解码可以表示为

在这里插入图片描述
其中 θ (dec) 参数化了这个弱掩蔽式解码器。最后,与编码器端的MLM类似,损失函数定义为
在这里插入图片描述
其中 M(dec) 表示解码器输入 x~ 中标记的掩码索引集。

3.4 词汇加权检索器的预训练目标和微调

预训练LexMAE的最终损失是等式(2)和等式(6)中定义的损失的相加,即
在这里插入图片描述
同时,我们将 LexMAE 预训练架构中的所有词嵌入指标联系起来,包括编码器和解码器的词嵌入模块和语言模型头,以及等式(4)中的 W(we)。值得注意的是,我们在方程(4)中截断了 W(we) 的梯度反向传播,以使训练仅关注词汇重要性分布 P(w|x¯; θ (enc)) 而不是W(我们)

下游大规模检索的任务定义
给定一个包含多个文档的集合,即 D = {di} |D| i=1,查询 q,检索器旨在获取文本片段列表 ́Dq 以包含所有相关文本片段。一般来说,这是基于连体方式中 q 和每个文档 di 之间的相关性得分,即 < Enc(q),Enc(di) >,其中 Enc 是任意表示模型(例如神经编码器)并且 < · ,·> 表示轻量级相关性度量(例如,点积)。

为了将 LexMAE 转移到大规模检索中,我们去掉了它的解码器,而只微调了词典加权检索器的语言建模编码器。基本上,为了利用语言建模编码器进行词典加权表示,我们采用(Formal et al, 2021a)并通过以下方式在高维词汇空间中表示一段文本 x:

在这里插入图片描述
其中 max(·, 0) 确保所有值大于或等于零以满足即将到来的稀疏要求,饱和函数 log(1 + Max-Pool(·)) 防止某些项占主导地位。

与分类任务相反,检索任务被表述为对比学习问题。
也就是说,对于查询 q 仅提供有限数量的正文档 d (q) + ,因此我们需要采样一组负文档 N (q) = {d (q) − , 。 。 。 },从 D 到 q。我们将深入研究各种采样策略以获得 §A 中的 N (q)。请注意,如果没有出现混淆,我们将省略表示“特定于查询”的上标 (q),以进行清晰的演示。通过遵循 Shen 等人 (2022) 的方法,我们可以首先推导正 {d+} 和负 N 个文档的似然分布,即
在这里插入图片描述
其中 v (·) ∈ R* |V|从方程(8)导出的表示查询q或文档d的词典加权表示。然后,针对该检索任务的对比学习的损失函数定义为

在这里插入图片描述

其中 FLOPS(·) 表示表示稀疏性的正则化项(Paria 等人,2020),由 Formal 等人(2021b)首次引入,λ 表示其损失权重的超参数。请注意,为了训练有竞争力的检索器,我们采用了(Wang et al, 2022)中的微调流程,该流程由三个阶段组成(有关我们的训练流程和推理详细信息,请参阅§A和§B)。

Top-K 稀疏化
由于固有的灵活性,我们可以调整文档的词汇权重表示的稀疏性,以实现有针对性的功效-效率权衡。在这里,“稀疏性”表示我们用来表示每个文档的词汇表中有多少个词典。
以前的方法要么调整稀疏正则化强度(Formal et al, 2021a; 2022)(例如,方程(10)中的 λ),要么提出其他稀疏超参数(Yang et al, 2021; Lassance & Clinchant, 2022)(例如,数量激活的词典),但是会导致大量的微调开销。因此,我们提出了一种简单但有效的稀疏方法,该方法仅在推理阶段的嵌入文档期间出现,因此几乎需要零额外开销。它只保留表示 v (d) ∈ R* |V| 中的前 K 个加权词典。通过等式(8),同时通过分配零权重来删除其他项(详细信息请参见§D)。我们将在第 4.2 节后面深入探讨实证功效-效率分析。

4 实验

基准数据集
继 Formal 等人(2021a)之后,我们首先采用广泛使用的段落检索数据集 MS-Marco(Nguyen 等人,2016)。我们仅利用其官方查询(无增强(Ren 等人,2021b)),并报告 MS-Marco Dev 集、TREC 深度学习 2019 集(Craswell 等人,2020)和 TREC 深度学习 2020 集(Craswell 等人) ,2021)。此外,我们在 BEIR 基准上评估了我们模型的零样本可迁移性(Thakur 等人,2021)。
我们使用了 12 个涵盖语义相关性和基于相关性的检索任务的数据集(即 TREC-COVID、NFCorpus、Natural Questions、HotpotQA、FiQA、ArguAna、Touche-2020、DBPedia、´ Scidocs、Fever、Climate-FEVER 和 SciFact) BEIR 基准,因为它们在大多数以前的检索工作中广泛使用。最后,为了检查我们的 LexMAE 是否也兼容长上下文检索,我们在 MS-Marco Doc Dev 上进行了文档检索评估。请注意,如果我们在其余部分的分析部分中未指定,则这些数字将在 MS-Marco 通道开发中报告。

评估指标
我们为 MS-Marco Dev(段落)报告了 MRR@10 (M@10) 和 Recall@1/50/100/1K,并为 TREC Deep Learning 2019(段落)和 TREC Deep Learning 2020(段落)报告了 NDCG@10 )。此外,NDCG@10 是在 BEIR 基准上报告的,而 MRR@100 和 Recall@100 是在 MS-Marco Doc 上报告的。关于R@N指标,我们发现有两种计算方式,我们严格遵循官方评估(请参考§C)。

设置
我们在 MS-Marco 集合上进行预训练(Nguyen 等人,2016),其中大多数超参数与(Wang 等人,2022)相同:编码器由 BERTbase 初始化(Devlin 等人,2019),而其他参数是随机的初始化,批量大小为2048,最大长度为144,学习率为3×10−4,训练步数为80k,编码器的掩蔽百分比(α%)为30%,并且(α+解码器的β%)为50%。同时,随机种子始终为42,预训练在8×A100 GPU上在14小时内完成。请参阅§A.2 了解我们的微调设置。

4.1 主要评估

MS-Marco Dev(段落检索)
首先,我们将经过微调的 LexMAE 与各种基线和竞争对手进行比较,以执行表 1 中的大规模检索。结果表明,我们的方法大大优于之前最好的检索器 SimLM(+1.5)。 % MRR@10) 并实现了新的最先进的性能。考虑到不同的检索范式和不同的瓶颈结构,如此大的性能余量验证了在给出适当的初始化时词典加权检索的优越性。同时,LexMAE 显着优于其基线(Formal 等人,2022 年)Co-SelfDisil(+5.1% MRR@10),具有相同的神经模型规模但不同的模型初始化(coCondenser(Gao & Callan,2022)与 Co-SelfDisil)。莱克斯梅)。这验证了我们的词典瓶颈预训练在词典加权检索中比密集瓶颈预训练更有效。

TREC 深度学习 2019 和 2020
如表 1 所示,我们还评估了 TREC 深度学习 2019 (DL’19) 和 TREC 深度学习 2020 (DL’20) 上的 LexMAE。据观察,LexMAE 在两个数据集上始终实现了新的最先进性能。

BEIR 基准
同时,我们在 BEIR 基准上评估 LexMAE,其中包含 12 个数据集,其中 ArguAna、Scidocs、Fever、Climate-FEVER 和 SciFact 是语义相关性任务,而 TREC-COVID、NFCorpus、NQ、HotpotQA、FiQA、Touche-2020 和DBPedia ´ 是基于相关性的检索任务。为了将 LexMAE 预训练应用于该基准,我们在 BEIR 集合上预训练 LexMAE,然后在 BEIR 基准的域内监督数据上微调预训练的编码器。最后,我们在域内评估集和 12 个域外数据集上评估微调的 LexMAE,其结果列于表 2 中。据观察,我们的 LexMAE 实现了最佳的域内性能。当对 12 个域外数据集执行零样本传输时,LexMAE 在 12 个数据集中的 7 个上实现了最佳,并提供了最佳的整体指标,即“BEST ON”和“AVERAGE”,验证了 LexMAE 的泛化能力。

MS-Marco 文档
最后,我们在表 3 中评估 MS-Marco 文档上的文档检索:我们在文档集合上预训练 LexMAE,并遵循 (Ma et al, 2022) 的微调流程(无蒸馏),其中我们的设置是384 个代币的第一个 P。

4.2 效率分析与比较

在这里,我们展示了应用 top-K 稀疏化后的功效-效率相关性(请参见 3.4)。
检索系统的一个关键指标是检索延迟(每秒查询,QPS)、倒排索引的索引大小以及每个文档的表示大小(对于非倒排索引)方面的效率。一方面,如图 2 所示,我们的 LexMAE 在所有密集向量、量化密集和基于词典的方法中实现了最佳功效-效率权衡。与之前最先进的检索器 SimLM 相比,我们将其检索效率提高了 1.5% MRR@10,加速度为 14.1 倍。通过 top-L 稀疏化,LexMAE 可以与 SimLM 一起实现具有 100+ QPS 的竞争性能。此外,LexMAE 比最近最好的 PQ-IVF 密集向量检索器 RepCONC 表现出更好的权衡。令人惊讶的是,当每次段落仅保留 4 个 token 时,LexMAE 的性能(24.0% MRR@10)仍然优于 BM25 检索(18.5%)。

另一方面,如表4所示,我们还比较了不同检索范式的存储需求。请注意,词典加权稀疏向量中的每个激活(非零)术语需要 3 个字节(2 个字节用于索引,1 个字节用于其量化权重)。与密集向量方法相比,基于词典的方法(包括我们的 LexMAE)本质上在集合的索引大小和每个文档的表示字节数方面显示出更少的存储要求。

另一方面,如表4所示,我们还比较了不同检索范式的存储需求。请注意,词典加权稀疏向量中的每个激活(非零)术语需要 3 个字节(2 个字节用于索引,1 个字节用于其量化权重)。与密集向量方法相比,基于词典的方法(包括我们的 LexMAE)本质上在集合的索引大小和每个文档的表示字节数方面显示出更少的存储要求。

4.3 进一步分析

密集词典补集分析
Shen 等人(2022)证实,词典加权检索与密集向量检索是互补的,它们的简单线性组合可以实现优异的性能。如表 5 所示,我们进行了一项实验,用我们重新实现的最先进的密集向量检索方法(即 SimLM)来补充我们的 LexMAE(Wang 等人,2022)。具体来说,我们建议利用两种策略:i)集成:将组合应用于两种范式的检索分数,由于两次大规模检索而导致显着的开销; ii) 管道:利用检索管道来避免两次检索:我们的词典加权检索是从集合中检索前 K 个文档,然后我们的密集向量检索仅应用于密集分数的受约束候选者。结果表明,我们在 MS-Marco Dev 上将之前最先进的混合检索方法改进了 2.4% MRR@10。

零样本检索
为了弄清楚我们的 LexMAE 预训练是否可以学习词汇重要性分布,我们在 MS-Marco 上进行了零样本检索。具体来说,我们提出了基于饱和函数的 L1 范数(即 L1-Norm(log(1 + ReLU(·)))),而不是等式(3)中的 softmax 归一化函数,并保持其他部分不变。在不进行微调的情况下,我们将预训练的 LexMAE 应用于 MS-Marco 检索任务,并使用 log(1 + ReLU(·))) 的稀疏表示。如图 3 所示,我们的 LexMAE 词汇重要性嵌入(110M 参数)在大规模检索方面击败了 BM25,并且与具有 6.1B 参数的超大型模型 SGPT-CE(Muennighoff,2022)具有竞争力。

多阶段检索性能
如表 6 所示,我们展示了有关不同预训练方法在多个微调阶段的检索性能的更多详细信息(参见§A)。可以看出,我们的 LexMAE 在所有 3 个阶段中始终取得了最佳或有竞争力的结果。

4.4 模型选择和消融研究

我们进行了大量的实验,从表 7 中的多个方面检查我们的模型选择及其消融。请注意,我们的 LexMAE 使用 softmax-norm CBoW 瓶颈,共享编码器和瓶颈的 LM logits,并采用 30% 的包含屏蔽策略编码器和解码器的 50%。

首先,我们尝试等式(5)中的其他三个瓶颈,即 CBoW 的饱和范数(如“零样本检索”中详述)、使用 [CLS] 的密集瓶颈以及通过切断瓶颈来无瓶颈。如图 4 所示,他们的训练损失曲线显示,与“无瓶颈”相比,我们的 CBoW 瓶颈确实有助于解码,但不如 [CLS] 上下文密集向量。但是,由于预训练-微调的一致性,CBoW 瓶颈在词典加权检索方面表现更好。

对于两个不同的词典 CBoW 瓶颈,我们在图 5 中显示了它们的微调开发曲线:由于相同的词典表示方式,“sat-n​​orm”在早期微调阶段表现出了出色的性能,而“softmax-norm”则表现更好后来由于其泛化而对结果进行了微调。

然后,我们对 LexMAE 进行了一些微妙的架构更改:i)对词嵌入矩阵启用梯度反向传播会导致学习捷径,从而导致微调结果更差; ii) 共享编码器和解码器的 LM 头(等式(1)和等式(5))并添加专门用于瓶颈 LM logits 的额外 LM 头(等式(3))会导致轻微下降,并且iii)用 DistilBERT 替换 BERT(Sanh 等人,2019),我们的初始化仍然优于许多竞争对手。

最后,除了我们在第 3.3 节中使用的“包容”策略之外的掩蔽策略确实对下游微调有较小的影响。而且,编码器和解码器的掩蔽比例会影响 LexMAE 的能力,当它们的比例很大时,负面“影响”变得不明显。

总之,预训练 LexMAE 对于各种变化都非常稳定,并且始终如一地提供出色的结果。更多实验比较请参阅§E。

5 结论

在这项工作中,我们建议通过预训练词典瓶颈屏蔽自动编码器(LexMAE)来改进词典权重检索,这可以减轻屏蔽语言建模编码器和面向相关性的词典重要性之间的客观不匹配。在大规模集合上对 LexMAE 进行预训练后,我们首先观察到出色的零样本性能。然后,在大规模检索基准上对 LexMAE 进行微调后,我们以非常高的效率获得了最先进的检索质量,并在 BEIR 基准上提供了最先进的零样本传输性能。对检索延迟和存储内存方面的功效与效率权衡的进一步详细分析也验证了我们微调的 LexMAE 的优越性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/614509.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

「云渲染教程」3D渲染时GPU内存不足怎么解决?

在进行三维场景渲染时&#xff0c;如果遇到模型较为复杂&#xff0c;用户们可能会面临图形处理单元&#xff08;GPU&#xff09;内存不足的挑战。这种情况通常意味着现有的硬件配置不足以满足渲染任务的需求。为了缓解GPU的工作压力&#xff0c;可以采取一些策略来优化资源的分…

如何使用联合体判断一个机器是大端还是小端

如何使用联合体判断一个机器是大端还是小端 #include<iostream> using namespace std; union Checker//联合体中的数据共享内存 {int val;char ch[2]; }; int main() {Checker checker;checker.val 0x1234;if (checker.ch[0] 0x34)//数组中的数据是由低地址往高地址存放…

Arduino-ILI9341驱动开发TFT屏显示任意内容三

Arduino-ILI9341驱动开发TFT屏显示任意内容三 1.概述 这篇文章介绍使用ILI9341驱动提供的函数控制TFT屏显示字符串、图形、符号等等内容的编辑和展示。 2.硬件 2.1.硬件列表 名称数量Arduino Uno12.8" TFT彩色液晶触摸屏模块&#xff08;ILI9431&#xff09;110K 电阻…

什么是web3D?应用场景有哪些?如何实现web3D展示?

Web3D是一种将3D技术与网络技术完美结合的全新领域&#xff0c;它可以实现将数字化的3D模型直接在网络浏览器上运行&#xff0c;从而实现在线交互式的浏览和操作。 Web3D通过将多媒体技术、3D技术、信息网络技术、计算机技术等多种技术融合在一起&#xff0c;实现了它在网络上…

QT6 android程序界面强制横屏显示不旋转

QT6开发的Android程序有时候旋转后程序会变形&#xff0c;比如想让其固定位横屏显示&#xff0c;就需要进行特殊设置&#xff0c;本文提供一种简便的设置方法。 一.AndroidManifest.xml文件介绍 Android的Manifest.xml文件是一个重要的配置文件&#xff0c;用于描述应用程序的…

2024.5.9 关于 SpringCloud —— Nacos 的安装与配置

目录 Windos 安装步骤 docker 启动 nacos Windos 安装步骤 1&#xff09;点击下方链接&#xff0c;进入并访问 nacos 官网 Nacos官网 | Nacos 官方社区 | Nacos 下载 | Nacos 2&#xff09;按照下图箭头指示下载对应版本的压缩包 3&#xff09;此时我们将得到一个压缩包&…

ARM时钟树结构(GD32)

时钟树的简易框图 初始化配置系统时钟 配置系统初始化时钟&#xff08;参考手册&#xff09; 对应hal库函数 使用72MHz的系统时钟 do -----------while&#xff08;0&#xff09;的使用方法 系统时钟 #include <stdint.h> #include "gd32f30x.h"int main(void)…

分布式事务技术方案

什么是分布式事务 一次课程发布操作需要向数据库、redis、elasticsearch、MinIO写四份数据&#xff0c;这里存在分布式事务问题。 什么是分布式事务&#xff1f; 首先理解什么是本地事务&#xff1f; 平常我们在程序中通过spring去控制事务是利用数据库本身的事务特性来实现…

Rancher-Kubewarden-保姆级教学-含Demo测试

一、什么是Kubewarden&#xff1f; What is Kubewarden? | Kubewarden 1、就是容器集群的准入策略引擎。 1、使用的策略其实就是k8s原生的security context. 2、使用WebAssembly来编写策略。 1、WebAssembly&#xff0c;可以使用擅长的开发语言来编写策略。&#xff08;下面的…

shared_ptr 引用计数相关问题

前言 智能指针是 C11 增加的非常重要的特性&#xff0c;并且也是面试的高频考点&#xff0c;本文主要解释以下几个问题&#xff1a; 引用计数是怎么共享的、怎么解决并发问题的资源释放时&#xff0c;控制块的内存释放吗weak_ptr 怎么判断对象是否已经释放 文中源码用的是 L…

CSS的基础语法和常见的语法简单归纳

CSS CSS 是层叠样式表&#xff08;Cascading Style Sheets&#xff09;的缩写。它是一种用来控制网页样式和布局的标记语言。通过 CSS&#xff0c;可以定义网页中的元素&#xff08;如文字、图像、链接等&#xff09;的外观和排版方式&#xff0c;包括字体、颜色、大小、间距、…

【Android】Apk图标的提取、相同目录下相同包名提取的不同图标apk但是提取结果相同的bug解决

一般安卓提取apk图标我们有两种常用方法&#xff1a; 1、如果已经获取到 ApplicationInfo 对象&#xff08;假设名为 appInfo&#xff09;&#xff0c;那么我们获取方法为&#xff1a; appInfo.loadIcon(packageManager)// 返回一个 Drawable 对象2、 如果还没获取到 Applica…

静态分析-RIPS-源码解析记录-01

token流扫描重构部分&#xff0c;这一部分主要利用php的token解析api解析出来的token流&#xff0c;对其中的特定token进行删除、替换、对于特定的语法结构进行重构&#xff0c;保持php语法结构上的一致性 解析主要在lib/scanner.php中通过Tokenizer这个类来实现,也就是在main…

ICode国际青少年编程竞赛- Python-4级训练场-列表综合练习

ICode国际青少年编程竞赛- Python-4级训练场-列表综合练习 1、 Flyer[3].step(1) Flyer[7].step(2) Flyer[11].step(1) for i in range(4):Flyer[i * 2].step(1) Flyer[8].step(3)for i in range(3):Dev.turnRight()Dev.step(-5)2、 for i in range(5):Flyer[i5].step(Flyer[…

git 推送github 选https遇到登录 openSSH问题

使用https需要使用github令牌token作为密码&#xff0c; 使用SSH不需要登录。 还有一个问题&#xff1a; 创建github仓库后没有quick setup页面解决办法 千万不要点击任何多的操作&#xff01;&#xff01;&#xff01;输入仓库名&#xff0c;直接create&#xff01;&#x…

数据分析——业务指标分析

业务指标分析 前言一、业务指标分析的定义二、业务问题构建问题构建的要求 三、业务问题的识别在识别问题的阶段对于企业内部收益者的补充 四、竞争者分析竞争者分析的内容竞争者分析目的案例 五、市场机会识别好的市场机会必须满足的条件市场机会案例 六、风险控制数据分析师常…

多模态CLIP和BLIP

一、CLIP 全称为Contrastive Language-Image Pre-Training用于做图-文匹配&#xff0c;部署在预训练阶段&#xff0c;最终理解为图像分类器。 1.背景 以前进行分类模型时&#xff0c;存在类别固定和训练时要进行标注。因此面对这两个问题提出CLIP&#xff0c;通过这个预训练…

1.前端环境搭建

1.安装nodejs 因为我们开发Vue项目需要使用npm命令来创建和启动&#xff0c;安装node.js是为了获得这个命令&#xff0c;目前和使用node.js无关 下载地址&#xff1a;http://nodejs.cn/download/ 下载完之后安装&#xff0c;通过cmd查看是否安装成功 node --version2.创建项目…

老板必读:防数据泄露,保卫您的商业秘密

在信息技术高速发展的今天&#xff0c;数据泄露已成为所有企业都必须正视的风险。对于企业而言&#xff0c;数据不仅仅是一堆数字和信息的集合&#xff0c;更是企业的核心竞争力与商业秘密的载体。一旦数据泄露&#xff0c;不仅会导致经济损失&#xff0c;还可能使企业信誉受损…

如何解读 Web 自动化测试 Selenium API?

Web自动化测试是一种通过编写代码来模拟用户操作&#xff0c;并验证Web应用程序的功能和性能的技术。Selenium是一个流行的Web自动化测试工具&#xff0c;它提供了一组API来与Web浏览器进行交互。在本文中&#xff0c;我们将深入探讨Selenium API&#xff0c;并解释如何从零开始…