信息检索(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 的优越性。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用OpenShift的ImageStream部署临时版本

公司是港企&#xff0c;项目都部署在OpenShift上统一管理&#xff0c;因为运行环境为香港网络(外网)&#xff0c;配置、中间件等大陆无法直接访问联通。因此在大陆开发时&#xff0c;测试是个很大的问题。为了避免往Git上频繁提交未确定可用的版本&#xff0c;选择用利用OpenSh…

机器人系统仿真

0、何为仿真 通过计算机对实体机器人系统进行模拟的技术。 1、为何仿真 低成本&#xff1a; 机器人实体一般价格昂贵&#xff0c;为降低机器人学习、调试的成本&#xff1b;高效&#xff1a; 搭建的环境更为多样且灵活&#xff0c;可以提高测试效率以及测试覆盖率&#xff1b…

【python】python中的argparse模块,教你如何自定义命令行参数

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

谁使用DITA?

▲ 搜索“大龙谈智能内容”关注公众号▲ Keith根据LinkedIn上的数据进行的统计&#xff0c;主要反应的西方世界使用DITA的公司。因为LinkedIn在国内不能访问&#xff0c;笔者认为针对中国的数据并不准确。 作者 | John Walker - NXP销售和市场营销业务分析师 2013年4月18日 …

栈实现队列

一、分析 栈的特点是先出再入&#xff0c;而队列的特点为先入先出&#xff0c;所以我们创造两个栈&#xff0c;一个用来存放数据&#xff0c;一个用来实现其它功能此时栈顶为队尾&#xff1b;当要找队头数据时将前n-1个数据移入到另一个栈中&#xff0c;此时剩余那个数据为队头…

ASP.NET网上图书预约系统的设计

摘 要 《网上图书预约系统的设计》是以为读者提供便利为前提而开发的一个信息管理系统&#xff0c;它不仅要求建立数据的一致性和完整性&#xff0c;而且还需要应用程序功能的完备、易用等特点。系统主要采用VB.NET作为前端的应用开发工具&#xff0c;利用SQL Server2000数据…

做题杂记666

[XYCTF2024] 铜匠 题目描述&#xff1a; from Crypto.Util.number import * from secrets import flagm bytes_to_long(flag) m1 getRandomRange(1, m) m2 getRandomRange(1, m) m3 m - m1 - m2def task1():e 149p getPrime(512)q getPrime(512)n p * qd inverse(e,…

VTK官方示例

VTK官方示例 -vtk字體 #!/usr/bin/env python# noinspection PyUnresolvedReferences import vtkmodules.vtkInteractionStyle # noinspection PyUnresolvedReferences import vtkmodules.vtkRenderingFreeType # noinspection PyUnresolvedReferences import vtkmodules.vtk…

Java - Json字符串转List<LinkedHashMap<String,String>>

需求&#xff1a;在处理数据时&#xff0c;需要将一个Object类型对象集合转为有序的Map类型集合。 一、问题 1.原代码&#xff1a; 但在使用时出现报错&#xff1a; Incompatible equality constraint: LinkedHashMap<String, String> and LinkedHashMap 不兼容的相等…

【软考】模拟考卷错题本2024-05-11

1 设计模式- 适配器模式 基本上上述的图解已经涵盖了绝大多数主流的设计模式和其特点。理解记忆下即可&#xff0c;这里对下午的考题也有帮助的。 2 计算机组成原理 cpu 访问速度 这个真的是憨憨咯~看到内存就选内存&#xff0c;题目都没审好。这里的速度比cpu内部的要比外部的…

【C语言】动态内存管理

一、为什么有动态内存分配 在进入正文前&#xff0c;我们简单了解一下变量在内存中的位置&#xff08;在最后具体讲&#xff09;&#xff1a; 函数形参&#xff0c;局部变量&#xff1a;栈区 动态开辟的空间&#xff1a;堆区 全局变量&#xff0c;静态变量&#xff08;static修…

【QVariant类型剖析】

QVariant类型剖析 &#x1f31f; 官方文档中给出的定义&#x1f31f; 特性&#x1f338;QVariant实战应用&#x1f338;项目成果展示 &#x1f31f; 官方文档中给出的定义 &#x1f4d8;Because C forbids unions from including types that have non-default constructors or…

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

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

SVM直观理解

https://tangshusen.me/2018/10/27/SVM/ https://www.bilibili.com/video/BV16T4y1y7qj/?spm_id_from333.337.search-card.all.click&vd_source8272bd48fee17396a4a1746c256ab0ae SVM是什么? 先来看看维基百科上对SVM的定义: 支持向量机&#xff08;英语&#xff1a;su…

【Linux系列】file命令

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Kafka效率篇-提升效率三板斧

kafka在效率上做了很多的努力。最初的一个使用场景是处理网页上活跃的数据&#xff0c;它往往有非常大的体量&#xff0c;每个页面都能产生数十条写入。而且我们假设每条消息都会被至少一个消费者消费&#xff08;通常是多个&#xff09;&#xff0c;因此&#xff0c;我们努力让…

HTML【常用的标签】、CSS【选择器】

day45 HTML 继day44&#xff0c;w3cschool 常用的标签 k) 表格 表格由 table 标签来定义。每个表格均有若干行&#xff08;由 tr 标签定义&#xff09;&#xff0c;每行被分割为若干单元格&#xff08;由 标签定义&#xff09;。字母 td指表格数据&#xff08;table data&…

Linux线程(二)线程互斥

目录 一、为什么需要线程互斥 二、线程互斥的必要性 三、票务问题举例&#xff08;多个线程并发的操作共享变量引发问题&#xff09; 四、互斥锁的用法 1.互斥锁的原理 2、互斥锁的使用 1、初始化互斥锁 2、加锁和解锁 3、销毁互斥锁&#xff08;动态分配时需要&#…

【BUUCTF】Crypto_RSA(铜锁/openssl使用系列)

【BUUCTF】Crypto_RSA&#xff08;铜锁/openssl使用系列&#xff09; 1、题目 在一次RSA密钥对生成中&#xff0c;假设p473398607161&#xff0c;q4511491&#xff0c;e17 求解出d作为flga提交 2、解析 RSA加密过程&#xff1a; 1&#xff09;选择素数&#xff1a;选择两个不…

Zabbix监控中文乱码问题解决方法

一、问题描述 1.查看Zabbix仪表盘 在Zabbix的监控仪表盘界面&#xff0c;字体显示为“方框”&#xff0c;无法查看到具体的性能指标名称。 2.问题分析 Zabbix的web端没有中文字库&#xff0c;导致切换到中文页面&#xff0c;中文成了乱码这个问题&#xff0c;我们最需要把中文…