中国做贸易的网站,帮人做网站一定要先收费,最干净在线代理,全球购物官方网站有哪些Transformer Memory as a Differentiable Search Index 摘要1. 引言2. 相关工作3. 可微搜索索引3.1 索引策略3.1.1 索引方法3.1.2 文档表示策略 3.2 用于检索的 Docids 表示3.3 训练和优化 4. 实验4.1 基线4.2 实验结果 5. 结论参考资料 原文链接#xff1a;https://proceedin… Transformer Memory as a Differentiable Search Index 摘要1. 引言2. 相关工作3. 可微搜索索引3.1 索引策略3.1.1 索引方法3.1.2 文档表示策略 3.2 用于检索的 Docids 表示3.3 训练和优化 4. 实验4.1 基线4.2 实验结果 5. 结论参考资料 原文链接https://proceedings.neurips.cc/paper_files/paper/2022/file/892840a6123b5ec99ebaab8be1530fba-Paper-Conference.pdf 2022 摘要
在本文中我们证明可以使用单个 Transformer 来完成信息检索其中有关语料库的所有信息都编码在模型的参数中。为此我们引入了可微搜索索引DSI这是一种新的范例它学习文本到文本的模型将字符串查询直接映射到相关的文档 id换句话说DSI 模型仅使用其参数直接回答查询从而极大地简化了整个检索过程。我们研究文档及其标识符的表示方式的变化、训练程序的变化以及模型和语料库大小之间的相互作用。实验表明如果选择适当的设计DSI 的性能显着优于双编码器模型等强基线。此外DSI 展示了强大的泛化能力在零样本设置中优于 BM25 基线。
1. 引言
信息检索 (IR) 系统将用户查询 q ∈ Q 映射到相关文档的排序列表 {d1,… , dn} ⊆ D通常由称为文档标识符 (docids) 的整数或短字符串表示。最广泛使用的 IR 方法基于流水线 “ 检索然后排序 ” 策略。对于检索基于倒排索引或最近邻搜索的方法很常见其中基于对比学习的双编码器DEGillick 等人2018Karpukhin 等人2020Ni 等人2021是当前的soat。
本文提出了一种替代架构其中使用序列到序列seq2seq学习系统Sutskever 等人2014将查询 q 直接映射到相关的 docid j ∈ Y。该建议显示在下半部分图 1 的序列到序列编码器-解码器架构。
我们将这种提出的架构称为可微搜索索引DSI并使用大型预训练 TransformerV aswani 等人2017模型来实现它该模型建立在大型生成语言模型LMBrown 等人最近成功的基础上2020Raffel 等2019Devlin 等2018Thoppilan 等2022Du 等2021。在这个提出的架构中语料库的所有信息都被编码在 Transformer 语言模型的参数内。
在推理时训练后的模型将文本查询 q 作为输入并输出 docid j。如果需要可以使用集束搜索来生成潜在相关 docid 的排名列表。正如我们所展示的如果训练得当这个过程可以出奇地顺利。在我们的实验中它可以始终优于 DE 基线有时甚至远远超过对于 base 大小的 T5 模型最小语料库上的 Hits1 提高了 20 多个点从 DE 的 12.4% 提高到 DSI 的 33.9%在 30 倍大的语料库上性能提高了近 7 个百分点。当使用更大的模型时这些增益会增加对于 11B 参数的 T5 模型Hits1 性能在小语料库上比 DE 提高了 25 点以上在大语料库上提高了 15 点以上。 DSI 在零样本设置中也表现得非常好例如Hits1 比 BM25 提高了 14 点。
除了这些定量收益之外DSI 架构比 DE 简单得多参见表 1。DE 系统固定搜索过程 (MIPSMaximal Inner Product Search) 并学习内部表示来优化该搜索过程的性能相反DSI 系统不包含特殊用途的固定搜索过程而是使用标准模型推理从编码映射到 docids。
正如表 1 所示机器学习社区特别感兴趣的是在 DSI 中检索的所有方面都被映射到易于理解的 ML 任务中。这可能会带来新的潜在方法来解决长期存在的IR问题。举一个例子由于索引现在是模型训练的一种特殊情况因此增量更新索引成为模型更新的一种特殊情况Sun 等人2020。 通过训练模型来建立索引
在本文中DSI 应用于中等规模的语料库从 10k 到 320k 文档所有这些都源自一项具有挑战性的检索任务我们将 DSI 扩展到更大语料库的重要问题留给未来的工作。考虑的任务是从自然问题NQ数据集中检索给定问题的支持段落这对于词汇模型来说是一项具有挑战性的任务。
虽然 DSI 的想法很简单但实现它的方法有很多种其中一些方法效果出奇的好而另一些方法的效果却出奇的差。下面我们探讨 DSI 架构的多种变体。
文档表示 我们探索了几种表示文档的方法包括使用文档全文的“简单”方法以及传统 IR 引擎使用的词袋表示的变体。
Docid 表示 我们研究了几种表示 docids 的方法。除了将整数简单地表示为文本字符串之外我们还考虑非结构化原子文档ID其中每个文档都被分配一个唯一的标记以及一些用于构建结构化语义文档ID的简单基线这些文档描述如何通过语料库的层次聚类导航到文档。结构化文档ID通过聚类进行语义结构化或者简单地结构化为标记化整数可以更好地扩展到大型语料库因为解码器中使用的词汇量更大。
索引 可训练的 IR 系统传统上有两个阶段对语料库建立索引即记住每个文档的信息以及学习如何有效地从索引中检索。在DSI中索引存储在模型参数中索引只是另一种模型训练。图 1 提出了一种对语料库进行索引的方法即训练 (1) 示例 (dj, j)将文档 dj 与其 docid j 配对 (2) 示例 (q, j) 将查询 q 与相关 docid j 配对。在此设置中类型 (1) 的示例是“索引”示例。 虽然很明显类型2的示例本身并不能为系统提供足够的信息来推广到新颖的检索但类型1的示例有许多替代方案可以合理地“teach”模型文档和docid之间的关系。我们在下面探讨了其中的一些并表明一些看似合理的技术表现非常差。我们还探索了许多替代的多任务优化和课程学习方案来结合这些类型的示例。
1如何表示文档2如何表示文档id a如何建立文档与文档id的联系b如何建立query与文档id的联系
模型和语料库大小的影响 由于最近的结果表明大型 LM 的某些属性仅在非常大的模型大小下出现Brown 等人2020因此我们探索了 DSI 对于一系列模型大小和 10k、100k 和 320k 文档的语料库大小的性能。
总结 我们证明即使是简单的文档和 docids 表示再加上适当的训练程序来微调现代大型 LM也能表现得令人惊讶地好我们提出了两种改进的 docid 表示即非结构化 docids 和语义结构化 docid它们改进了朴素表示选择。我们表明索引/训练策略之间的性能存在很大差异并且 DSI 的性能随着模型规模的扩大而显着且持续地提高。据我们所知这是生成索引在经过充分研究的文档检索任务的强基线上提高性能的第一个案例。 1docid 的两种表示方式 2index / train 的策略对于性能有很大影响 3DSI 性能跟模型规模相关
2. 相关工作
De Cao 等人 (2020) 描述了一种称为自回归实体链接的相关序列到序列系统其中提及实体的文档可能是隐式的例如通过提出该实体作为答案的问题被映射到规范该实体的名称。就维基百科而言规范实体名称对应于页面标题因此这可以被视为一种文档检索。这种方法已适应其他目的例如以规范形式生成知识库三元组Josifoski 等人2021。我们考虑的任务与自回归实体链接中考虑的任务不同我们的目标是检索包含答案的文档而不是标题是答案的文档。更重要的是在自回归实体中链接生成目标是一个语义上有意义的名称而我们允许目标是任意的 docids。这使得我们的方法适用于一般检索任务但提出了有关文档id表示和索引策略的新问题。
在自回归实体链接中生成被限制为从固定集合返回输出。将 DSI 生成输出限制为有效的 docids 是可行的。尽管我们不使用这种技术但它能在多大程度上提高性能是一个值得思考的问题。 不使用限制生成
在检索增强生成方面有大量工作即检索辅助文档以增强语言模型Borgeaud 等人2021Guu 等人2020。这些技术对于包括问答在内的许多任务都很有用但依赖于传统的检索方法例如 DE。在这里我们使用生成来代替检索过程而不是使用检索来增强生成过程。
双编码器Dehghani 等人2017Gillick 等人2018Gao 等人2021Ni 等人2021Karpukhin 等人2020是一种成熟的检索范例。关键思想是独立生成查询和文档嵌入并在向量空间中跨所有嵌入对执行相似性检索。查询和候选文档由序列编码器生成并使用对比损失的形式进行训练。
之前的工作已经研究过将大型 Transformer 模型解释为内存存储。 Roberts 等人2020在闭卷 QA 任务上取得了成功他们训练 T5 模型以检索在预训练期间在模型参数中编码的事实。然而与 CBQA 不同的是本文提出的问题是基于 docids 检索完整文档而不是生成直接答案。同时Petroni et al, 2019还研究了作为知识库的语言模型发现预训练的语言模型可能已经包含关系知识。 Geva 等人2020分析了 Transformer 前馈层中编码的知识。还有一些作品证明了 Transformers 与联想记忆和 Hopfield 网络的关系Ramsauer 等人2020这强化了 Transformers 应该直观地充当良好的联想记忆存储或搜索索引的概念。
3. 可微搜索索引
所提出的可微搜索索引DSI背后的核心思想是在单个神经模型中完全参数化传统的多阶段检索然后排名管道。为此DSI 模型必须支持两种基本操作模式
索引 DSI 模型应该学会将每个文档 dj 的内容与其相应的 docid j 相关联。本文采用简单的序列到序列seq2seq方法将文档标记作为输入并生成标识符作为输出。 检索 给定输入查询DSI 模型应返回候选 docid 的排序列表。在这里这是通过自回归生成来实现的。
在这两个操作之后可以训练 DSI 模型来索引文档语料库并可选择对可用的标记数据集查询和标记文档进行微调然后用于检索相关文档 - 所有这些都在一个统一的框架内进行。检索然后排序方法相反这种类型的模型允许简单的端到端训练并且可以轻松用作更大、更复杂的神经模型的可微分子组件。 可微分的意思是说搜索索引的结构和算法能够被嵌入到神经网络中并且能够通过梯度下降等优化算法进行端到端的训练。
3.1 索引策略
我们研究了各种旨在了解文档及其标识符之间关联的索引策略。我们训练模型来根据给定的文档标记序列来预测 docids。这使得我们的模型能够了解哪个标识符属于哪个文档并且可以被视为传统搜索索引的可微分形式。我们考虑各种替代方案并在后续部分中取消这些设置。最终采用的策略是带有直接索引的Inputs2Targets。 索引策略直接索引doc前 k 个token Inputs2Targetsdoc--》docid
3.1.1 索引方法
本节讨论我们考虑的索引任务变体。
Inputs2Target 我们将其构建为 doc_tokens → docid 的 seq2seq 任务。顾名思义这以一种简单的目标输入方式将 docids 绑定到文档标记。这里的优点是标识符是去噪目标这使其更接近损失函数。由于检索任务还涉及预测标识符因此该公式允许网络在序列长度方面遵循类似的输入目标平衡。一个潜在的弱点是文档标记不是去噪目标因此没有机会对文档标记进行一般预训练。
Targets2Input 该公式考虑了与上述相反的情况即从标识符生成文档标记即 docid → doc_tokens。直观上这相当于训练一个以 docid 为条件的自回归语言模型。
Bidirectional 此公式在同一协同训练设置中训练 Inputs2Targets 和 Targets2Inputs。前置前缀标记是为了让模型知道任务正在执行的方向。
Span Corruption 我们还探索了一种执行基于跨度损坏的去噪的设置Raffel 等人2019其中包含 docid 令牌。在这种方法中我们将标识符连接到文档标记作为前缀可以在跨度损坏目标中随机屏蔽为跨度。该方法的优点是1在索引期间也执行一般预训练2实现 docids 作为去噪目标和输入的良好平衡。将 docid 作为屏蔽 span。
3.1.2 文档表示策略
在上一节中我们探讨了“如何索引”。本节研究“索引什么”即如何最好地表示 doc_tokens。我们在这里陈述我们的选择并在稍后的实验中仔细消除它们。最终最好的选择是直接索引方法。
Direct Indexing 该策略准确地代表了一个文档。我们获取文档的前 L 个标记并保留顺序并将它们与 docid 相关联。
Set Indexing 文档可能包含重复的术语和/或非信息性单词例如停用词。此策略使用默认的 Python set集合操作来删除重复的术语并从文档中删除停用词。过滤后文档的其余部分以与直接索引类似的方式传递到模型中。
Inverted Index 该策略将分块文档连续的标记块而不是整个文档直接映射到 docid。我们对 k 个标记的单个连续块进行随机下采样并将它们与 docid 相关联。这种方法的主要优点是允许查看前 k 个标记之外的内容。
3.2 用于检索的 Docids 表示
基于 seq2seq 的 DSI 模型中的检索是通过解码给定输入查询的 docids 来完成的。如何有效地进行解码很大程度上取决于 docids 在模型中的表示方式。本节的其余部分探讨了表示 docids 的多种可能方法以及如何处理每种方法的解码。
非结构化原子标识符 表示文档的最简单的方法是为每个文档分配一个任意并且可能是随机的唯一整数标识符。我们将它们称为非结构化原子标识符。有了这些标识符一个明显的解码公式是学习标识符的概率分布。在这种情况下模型经过训练为每个唯一的 docid (|Ndocuments|) 发出一个 logit。这类似于标准语言模型中的输出层但扩展为包括 docids。为了适应这一点我们扩展了标准语言模型的输出词汇如下所示 在哪里 [; ] 是逐行串联运算符Wtokens ∈ Rdmodel×|Ntokens|且 Wdocs ∈ Rdmodel×|Ndocuments|。 hlast 是解码器堆栈的最后一层的隐藏状态ε Rdmodel。要检索给定查询的前 k 个文档我们只需对输出 logits 进行排序并返回相应的索引。这也让人想起标准的列表学习其中所有文档都被同时考虑进行排名。
简单结构化的字符串标识符 我们还考虑了一种表面上荒谬的方法它将非结构化标识符即任意唯一整数视为可标记的字符串。我们将这些称为简单的结构化标识符。在此公式中检索是通过一次一个标记顺序解码 docid 字符串来完成的。这消除了对非结构化原子标识符附带的大型 softmax 输出空间的需要。它还消除了学习每个单独的 docid 嵌入的需要。解码时使用波束搜索来获得预测的最佳docid。通过这种策略获得 top-k 排名就不那么简单了。人们可以详尽地梳理整个 docid 空间并获得给定查询的每个 docid 的可能性。相反我们使用部分波束搜索树来构建 top-k 检索分数。我们发现这种近似在实践中非常有效。
语义结构标识符 迄今为止用于表示 docids 的所有方法都假设标识符是以任意方式分配的。虽然探索任意标识符的限制非常有趣但直观的是将语义结构注入文档空间可以带来更好的索引和检索功能。因此本节探讨语义结构化标识符。 具体来说我们的目标是自动创建满足以下属性的标识符(1) docid 应捕获有关其关联文档语义的一些信息(2) docid 的结构应能够有效减少搜索空间每个解码步骤。这会产生语义相似的文档共享标识符前缀的标识符。 在这项工作中我们将其视为完全无监督的预处理步骤。然而作为未来工作的一部分有可能以完全端到端的方式集成并自动学习语义标识符。 为了构造具有此属性的标识符我们在文档嵌入上采用简单的层次聚类过程来生成十进制树或更一般地说trie树。 给定一个要索引的语料库所有文档都分为 10 个簇。每个文档都分配有一个标识符其簇号为 0-9。对于包含超过 c 个文档的每个簇递归应用该算法并将下一级的结果标识符的剩余后缀附加到现有标识符。 对于具有 c 个或更少文档的簇每个元素都被分配一个从 0 到最多 c-1 的任意数字同样它的数字会附加到现有标识符后。虽然这个特定过程会产生十进制树但可以使用任意数量的其他合理策略来产生类似类型的尝试。在实践中我们简单地将 k 均值应用于小型 8 层 BERT 模型生成的嵌入其中 c 100. 我们在算法 1 中包含此过程的伪代码。
3.3 训练和优化
我们训练的 DSI 模型针对 seq2seq 交叉熵损失进行了优化并使用教师强制进行训练。我们探索了训练 DSI 模型的两种主要策略。 1第一个也是更直接的策略是首先训练模型来执行索引记忆然后是微调阶段其中训练的模型用于将查询映射到 docids例如检索。 2第二个策略是在多任务设置中一起训练他们。为此我们以与 T5 式协同训练类似的方式构建协同训练任务例如使用任务提示来区分它们。后者的表现明显更好特别是当索引与检索任务示例的比例很高时。因此我们采用多任务学习作为默认策略。 联合训练是类似于 T5 任务提示的方式本工作使用联合训练 / 多任务学习方式
在这里我们观察到我们的设置是独特的与传统的多任务学习或迁移学习不同。在典型的多任务设置中两个任务具有共同点如果一起学习可以提高这两个任务的性能。然而在我们的设置中检索任务完全依赖于索引任务。特别是如果没有索引任务检索任务所利用的标识符将完全没有意义。因此为了解决任务 B检索模型需要足够好地学习任务 A索引。这个问题设置提出了 ML 社区可能感兴趣的独特且很大程度上尚未探索的研究挑战。
4. 实验
在本节中我们讨论我们的实验设置、使用的数据集和比较的基线。我们还讨论了本文前面部分讨论的实验结果、发现和各种策略的效果。由于这是一个相当新的概念因此这项工作旨在提出 “ 概念验证 ” 并寻求回答研究问题而不是进行“sotaesque”比较。我们将其他设置和基线的广泛比较留给未来的工作。 重点在验证概念而不是比较方法
数据集 我们在具有挑战性的自然问题NQKwiatkowski 等人2019数据集上进行了实验。 NQ 由 307K 个查询-文档训练对和 8K 验证对组成其中查询是自然语言问题文档是维基百科文章。给定一个问题检索任务是识别回答该问题的维基百科文章。为了评估 DSI 模型在不同规模下的表现我们从 NQ 构建了三个集合来形成我们的测试床即 NQ10K、NQ100K 和 NQ320K表示组合训练和验证分割中不同数量的总查询文档对。 NQ320K 是完整的 NQ 集并使用其预定的训练和验证分割来进行评估。与 NQ320K 不同NQ10K 和 NQ100K 构建随机采样的验证集。对于所有数据集我们对所有非结构化原子和朴素结构化标识符实验使用相同的 320K 令牌的文档空间/预算。为每个数据集单独生成语义结构化标识符以防止语义信息从较大的分割泄漏到较小的分割中。文本为小写。请注意这些数据集中存在的唯一文档少于查询文档对。请参阅表4附录其中报告了这些数据集的统计数据。
评价 我们在 HitsN 上评估我们的模型其中 N{1, 10}。该指标报告排名前 N 个预测的正确文档的比例。
实现细节 所有 DSI 模型均使用标准预训练 T5Raffel 等人2019模型配置进行初始化。配置名称和相应的模型参数数量为Base (0.2B)、Large (0.8B)、XL (3B) 和 XXL (11B)。1对于非结构化原子标识符运行我们将标识符随机初始化为新参数并且仅在索引阶段微调权重。我们使用 Jax/T5X 2 实现进行实验。 DSI 模型使用 128 的批量大小进行最多 1M 步骤的训练。我们根据检索验证性能选择最佳检查点。我们的训练硬件由 128-256 个 TPUv4 芯片用于 1B 参数以上的模型和 64-128 个 TPUv3 或 TPUv4 芯片组成。据估计NQ320K 参数高于 1B 的模型通常至少需要一整天的时间才能收敛。我们在 {0.001, 0.0005} 之间调整学习率并在 {10K, 100K, 200K, 300K} 和/或无之间调整线性预热。 2语义结构化标识符是使用 8 层 BERTDevlin 等人2018模型和 scikit-learn 中默认的 k-means 聚类生成的。基于我们对各种 DSI 设置的早期消融实验给出的主要结果使用直接索引 (L 32) 和 Inputs2Targets 索引策略。我们展示了所有文档id表示方法的结果。在主要结果之后我们介绍了我们的消融研究。
4.1 基线
对于基线我们使用 (Ni et al, 2021) 实现的基于 T5 的双编码器。我们使用 gensim4包来计算 BM25 分数。 1对于基于 T5 的双编码器我们对 NQ 对进行对比学习进行训练直到收敛约 10K 步并使用类似于 ScaNN 的系统获得前 k 个最近邻Guo 等人2020。 2对于零样本检索我们还与最先进的无监督基线 Sentence T5Ni 等人2021进行比较该基线经过相似性学习任务的专门预训练。我们考虑Ni et al, 2021这项工作的相关双编码器基线而不是其他密集检索工作例如 DPRKarpukhin et al, 2020有两个原因。首先我们采用完全相同的预训练模型它允许系统地消除所提出的方法而不会合并其他因素。从科学角度来说我们相信与微调 T5 的比较是我们提供的最佳同类比较。其次微调 T5 双编码器被认为在架构和方法上与 DPR 非常相似有一些细微的差别例如参数共享但使用相同的批内负片概念。
4.2 实验结果
表 2 报告了经过微调的 NQ10K、NQ100K 和 NQ320K 的检索结果表 3 报告了零样本检索结果。对于零样本检索模型仅针对索引任务而不是检索任务进行训练因此模型看不到带标签的 query → docid 数据。附录第 7.2 节报告了有关 DSI 索引性能和训练动态的扩展结果。
监督微调结果 我们的结果表明DSI 在所有数据集大小上都优于 DE。在小数据集NQ10K上DSI 和 DE 之间的性能差距很大例如最好的 DSI 变体比 DE 性能好 2 倍。在 NQ100K 上差距变得不那么明显最佳 DSI 模型非结构化原子标识符的 Hits1 和 Hits10 的表现优于 DE 5%。在大型数据集 (NQ320K) 上最佳 DSI 模型结构化语义标识符比最佳 DE 模型的性能高出 66% 相对 Hits1 和 4.5% Hits10。
zero-shot 结果 零样本是只训练索引不训练检索。 表 3 报告了零样本检索的结果。回想一下零样本检索是通过仅执行索引而不执行检索任务来执行的。换句话说模型看不到任何带注释的查询或文档对。一般来说在 NQ100K 和 NQ320K 上通过使用非结构化原子标识符的 DSI 可以获得最佳结果。 所有 NQ 数据集上的最佳性能均优于 BM25 等完善的无监督检索基线。此外DSI 优于无监督表示学习方法例如 SentenceT5Ni 等人2021该方法经过训练以通过对比学习来学习相似性感知表示。我们还注意到原始 T5 嵌入的性能极差并且在无监督检索任务中无法产生合理的结果。鉴于无监督神经方法通常很难超越 BM25我们发现这些早期结果非常令人鼓舞。
文档标识符 本文的一个关键研究问题是如何表示 docids 的关键选择。一般来说我们发现结构化语义标识符很有帮助并且比非结构化标识符有所改进。在比较朴素字符串标识符和语义字符串标识符时如果可能的话似乎必须使用语义标识符。这是直观的因为向目标空间注入语义结构可以促进更轻松的优化和额外的无监督表示学习方法作为外部知识。非结构化原子标识符的竞争力有些好坏参半我们在优化此类模型时遇到了一些困难。我们假设这可能是因为新初始化的 softmax 层并且从头开始训练这样的系统可以缓解这些问题。然而我们将这一调查线推迟到未来的工作中。由于非结构化原子标识符的不稳定性和高方差不同数据集的性能并不一致。此外这些文档也可能会遇到间歇性不收敛的情况我们可以追溯到与优化相关的怪癖。然而我们还注意到非结构化原子标识符在零样本检索设置上表现最好并且性能通常比波束解码方法高出一倍以上。
索引策略 在本节中我们探讨不同索引方法的效果第 3.1.1 节。我们使用前面描述的不同索引策略在 NQ100K 上进行实验。使用 Naive Docid 方法训练模型。在没有索引的情况下该模型实现了 0% Hits1。这是直观的因为如果没有索引任务文档就没有意义。其次Inputs2Targets 和双向公式表现最好与前者相比双向方法表现稍差13.5 比 13.2。最后Targets2Inputs 的准确性和 Docids 的 Span Corrpution 没有产生任何有意义的结果0% 准确性。这表明索引策略之间可能存在巨大差异有些策略效果相当好有些则完全不起作用。 不同的索引策略效果差距很大。索引策略利用模型训练 doc--》docid
文档表示 在本节中我们将探讨第 3.1.2 节中描述的不同文档表示策略的性能。图 5 报告了 NQ320K 上的结果。总的来说我们发现直接索引方法效果最好。我们还发现由于 docid 反复暴露于不同的 token因此很难训练倒排索引方法。我们还发现较短的文档长度似乎在性能似乎大幅下降到超过 64 个标记的情况下效果很好这表明当文档标记数量较多时优化或有效记忆可能会更加困难。最后我们还发现对文档标记应用集合处理或停用词预处理没有额外的优势。 使用少量的 token 表示文档反而更好。 Scaling Laws 另一个有趣的见解是 DSI 的缩放法则与双编码器有何不同。近年来了解 Transformer 的缩放行为引起了人们的极大兴趣Kaplan 等人2020Tay 等人2021Abnar 等人2021。我们发现在 DE 中增加模型参数化所获得的检索性能增益似乎相对较小。相反DSI 的扩展特性似乎更为乐观。图 3 绘制了三种方法具有朴素 ID 和语义 ID 的 DE 和 DSI的缩放行为对数刻度。 DSI天真的从从基础到 XXL 的规模中受益匪浅并且似乎仍有改进的空间。与此同时DSI语义一开始与 DE 基础具有同样的竞争力但在规模方面表现得更好。不幸的是DE 模型在较小的参数化下或多或少处于稳定状态。
索引和检索之间的相互作用 我们早期的实验表明首先学习索引任务然后按顺序学习检索任务会导致表现平庸。在那里我们专注于探索使用多任务学习共同训练索引和检索任务的良好比率 r。图 4 显示了修改索引与检索样本比率的效果。我们发现优化过程受到索引和检索任务之间相互作用的显着影响。将 r 设置得太高或太低通常会导致性能不佳。我们发现 32 的比率通常表现良好。 1先 index然后 retrieve 效果不好 2index / retrieve 32效果最好
5. 结论
本文提出了可微分搜索索引DSI这是一种以统一方式学习端到端搜索系统的新范式为下一代搜索铺平了道路Metzler et al, 2021。我们定义了新颖的索引和检索任务将术语和文档之间的关系完全编码在 Transformer 模型的参数内。论文提出了多种不同的方式来表示文档和docid并探索了不同的模型架构和模型训练策略。在 Natural Questions 数据集上进行的实验表明无论是在标准微调设置还是零样本设置中DSI 的性能都优于 BM25 和双编码器等常见基线。尽管这里提出的模型和结果很有希望但基于这项工作可以探索大量潜在的未来研究来改进这种方法。例如探索表示文档和文档id的替代策略以及研究专家混合模型Du et al, 2021; Fedus et al, 2021; Lepikhin et al, 2020来扩展DSI 的内存容量。一个重要的方向也是探索如何针对动态语料库更新此类模型其中可以在系统中添加或删除文档。最后进一步研究 DSI 作为一种无监督表示学习方法和/或内存存储以供其他语言模型利用也可能很有趣。
参考资料
【1】TPUhttps://zhuanlan.zhihu.com/p/619847662