[paper阅读笔记][NeurIPS2022]Transformer Memory as a Differentiable Search Index

Paper的任务

通过单一的Transformer模型完成信息检索任务

任务的科学问题

本文任务虽然是:使用单一Transformer模型完成信息检索,但其实其本质科学问题是:如何有效地将文本查询映射到相关的文档标识符(docids)

原因是:信息检索的核心挑战在于理解查询文本的语义内容,并在大量文档中快速准确地找到与之相关的文档,这需要模型能够学习和编码文档内容与docid之间的关系。

challenges

  1. 参数化表示学习:如何设计模型参数,以便有效地学习和编码文档内容与docid之间的关系。
  2. 端到端优化:如何在一个统一的框架内同时优化索引和检索过程,实现端到端的训练。模型从输入数据直接学习到最终的任务输出,而不需要人为地设计和优化中间步骤。
  3. 文档与docid的表示:如何选择或学习文档和docid的表示,以提高检索的准确性和效率。

文章在Argue什么?

传统检索方法的局限性:文章指出传统的信息检索方法,如基于倒排索引或最近邻搜索的对比学习双编码器(DEs),在处理信息检索任务时存在局限性。

  1. 在双编码器(DEs)模型中,查询和文档被独立编码,然后通过相似性检索来找到相关文档。这种方法可能导致编码阶段学到的信息在检索阶段没有得到充分利用。
  2. 缺乏端到端优化:由于检索和排序是分开进行的,很难在整个检索流程中实现端到端的优化,这就限制了整体性能的提升。
  3. 固定检索步骤:传统方法通常采用固定的检索步骤,如先进行文档的检索,再对检索结果进行排序。这种方法缺乏灵活性,不能根据具体任务的需求进行调整。

motivation

  1. 简化检索流程:文章提出,传统的信息检索方法涉及复杂的多阶段流程,包括索引构建和基于索引的检索,这增加了系统的复杂性和维护成本。文章主张通过单一的Transformer模型来简化这一流程。
  2. 端到端优化:文章认为,通过端到端的训练,可以更有效地优化整个检索过程,从而提高检索性能和准确性。
  3. 提高检索效率:文章指出,传统方法,通过相似性检索来找到相关文档的方法在处理大规模数据集时面临效率问题。本文提出的DSI模型旨在通过直接从文本查询映射到文档标识符来提高检索效率。

方法及框架

  • 方法 ——可微搜索索引(Differentiable Search Index,DSI)

    1. 端到端学习: DSI将信息检索的两个主要任务——索引和检索——统一在一个端到端的框架中。即从输入查询到输出相关文档标识符(docid)的整个过程都在一个模型中完成,无需分阶段处理。
    2. 索引阶段(Indexing): 在索引阶段,DSI模型学习将文档内容与其对应的docid关联起来。这是通过序列到序列(seq2seq)学习实现的,其中模型接收文档的文本作为输入,并生成对应的docid作为输出。
    3. 检索阶段(Retrieval): 在检索阶段,DSI模型接收一个文本查询,并使用模型参数中编码的知识来直接生成相关的docid。(不使用另外的检索方法,如倒排索引或最近邻搜索)
    4. 统一的模型架构: DSI使用预训练的Transformer模型(T5),作为其基础架构。这种模型已经在大量文本数据上进行了预训练,能够捕捉丰富的语言特征和语义信息。
    5. 直接映射: DSI模型通过训练学习如何将输入的查询文本直接映射到输出的docid。这种直接映射避免了传统检索系统中的多个步骤,如查询解析、文档匹配和排序。
    6. 训练策略: DSI模型采用多任务学习策略,同时训练索引和检索任务。这种策略使得模型能够更好地学习文档内容和docid之间的关联。
    7. 文档和docid的表示: 文章探索了不同的文档和docid表示方法,包括直接索引、集合索引、倒排索引,以及不同的docid表示策略,如无结构的原子标识符、简单的字符串标识符和语义结构化标识符。
      1. 无结构的原子标识符 (Unstructured Atomic Identifiers):为每个文档分配的唯一的、可能是随机的整数值。
      2. 简单的字符串标识符 (Naively Structured String Identifiers):将无结构的整数值作为可分词的字符串处理。
      3. 语义结构化标识符 (Semantically Structured Identifiers):通过某种方式(如聚类)嵌入了文档的语义信息,并具有结构化的特性,使得相似文档的标识符之间存在共享的前缀。
    8. 优化和推理: DSI模型使用序列到序列交叉熵损失进行优化,并采用教师强制(teacher forcing)技术进行训练。在推理阶段,使用束搜索(beam search)来生成排名靠前的相关docid列表。
      1. 教师强制(Teacher Forcing):一种在训练序列生成模型时使用的技术,主要用于加速模型的训练过程,并帮助模型更好地学习数据的潜在结构。
  • 框架图

      • DSI与传统双编码器(DE)方法的对比。
        • 在DE中,包含两个独立步骤:编码和检索。查询和文档被映射到向量空间中的向量,然后通过执行最大内积搜索(MIPS)来找到与查询向量内积最大的k个文档。
        • 在DSI中,统一了编码和检索过程。使用序列到序列(seq-to-seq)模型直接从查询生成docids,并在解码过程中结合束搜索机制创建k个文档的排名列表。
      • 用于分配语义结构化标识符的层次聚类过程的可视化(在推理过程中,束搜索(beam search)将遍历这个trie来解码正确的docid)
  • 结果

      • NQ文档检索的实验结果:
        • DSI优于BM25和Dual Encoder基线。
        • 在所有的Docid表示方法中,Semantic String Docids表现最好。
      • Zero-Shot NQ文献检索实验结果:
        • DSI优于BM25,T5嵌入和SentenceT5,最先进的无监督相似性建模。
        • 在Docid表示方法中,Atomic Docid在零样本学习上表现最好。
      • 传统的双编码器(DE)、使用朴素标识符的DSI(DSI with naive IDs)、使用语义结构化标识符的DSI(DSI with semantic IDs)。
      • 随着模型规模的增加,DSI方法的性能提升比DE方法更为显著。特别是,DSI(朴素)从基础版到XXL版有显著的性能提升,并且似乎还有进一步改进的空间。DSI(语义)起初与DE基础版相当,但随着模型规模的增加,性能提升更为显著。而DE模型在较小的参数化规模时性能提升有限,几乎趋于平稳。
      • 不同的文档表示方法,直接索引(Direct Indexing)、集合索引(Set Indexing)、倒排索引(Inverted Index)之间的比较
      • 直接索引方法的性能最好,而倒排索引方法由于docid反复暴露给不同的标记而难以训练。
      • 文档长度较短时性能较好,当文档标记数量超过64时性能显著下降,表明优化或有效记忆大量文档标记可能更具挑战性。
      • 索引的多任务比率对检索实例的影响。
      • 当索引与检索任务的比例过高或过低时,性能通常较差。图中指出了比例为32时性能最佳

实验是怎么做的?

  • 设置了哪些实验?

    1. 性能比较:DSI模型与传统的BM25和双编码器(DE)模型在Natural Questions(NQ)数据集上的性能比较。
    2. 不同规模数据集:在NQ数据集的不同规模(NQ10K, NQ100K, NQ320K)上测试DSI模型的性能,以观察模型规模和数据集规模对性能的影响。
    3. 不同文档表示方法:测试了不同的文档表示方法,包括直接索引、集合索引和倒排索引。
    4. 不同docid表示方法:评估了不同的docid表示方法,包括无结构的原子标识符、简单的字符串标识符和语义结构化标识符。
    5. 零样本学习:在没有查询-文档对标注数据的情况下,测试DSI模型的零样本检索性能。
    6. 索引策略:比较了不同的索引策略,如Inputs2Targets、Targets2Inputs和双向索引策略。
  • 消去实验都消去了什么?

    • 文档表示方法:使用不同文档表示方法,包括直接索引、集合索引和倒排索引。
    • docid表示方法:使用不同的docid表示方法,包括无结构的原子标识符、简单的字符串标识符和语义结构化标识符。
  • 文章有什么用?

  1. 总体结论: 为了简化和提高信息检索的效率和准确性,是可以使用可微搜索索引(DSI)这种方法的。
  2. 贡献点结论:
    1. 单一Transformer模型和端到端优化:使用大型预训练Transformer模型来端到端地从查询文本映射到文档标识符,可以简化传统检索系统的复杂性。
    2. 不同文档和docid表示方法:探索了多种文档表示(如直接索引、集合索引、倒排索引)和docid表示(如无结构原子标识符、简单字符串标识符、语义结构化标识符)方法,证明了特定表示方法可以显著提升检索的相关性。
    3. 多任务学习:采用多任务学习框架同时训练索引和检索任务,证明了这种策略对于DSI模型的有效性。
    4. 零样本学习能力:DSI模型在零样本设置下的性能表现,证明了其在没有标注数据的情况下进行有效检索的能力。
    5. 索引策略:通过不同的索引策略实验,证明了某些策略(如Inputs2Targets)在DSI中更为有效。

笔记

  1. 双编码器(Dual Encoder, DE):
    • 双编码器模型由两个编码器组成,它们通常是对称的。每个编码器将输入(一个查询和一个文档)转换成一个固定大小的向量,这些向量随后用于计算相似性得分。在信息检索中,查询编码器处理用户的查询,而文档编码器处理文档集合中的每个文档。通过比较查询向量和文档向量之间的相似度(例如,通过计算它们之间的余弦相似度或内积),系统能够检索出与查询最相关的文档。
  1. 编码器-解码器架构(Encoder-Decoder Architecture):
    • 这种架构由两部分组成:编码器和解码器。编码器读取输入数据(如文本、图像或音频),并将其转换成一个固定大小的内部表示,通常是一个连续的向量。解码器则负责将这个内部表示转换回输出数据。在机器翻译中,编码器将一种语言的句子编码为向量,解码器将这些向量解码为目标语言的句子。
  1. 序列到序列学习(Sequence-to-Sequence Learning, Seq2Seq):
    • Seq2Seq模型专门用于将一个序列转换为另一个序列的任务。这种模型在自然语言处理中非常流行,例如机器翻译、文本摘要、问答系统等。Seq2Seq模型通常包含一个编码器来处理输入序列,一个解码器来生成输出序列,两者之间可能还有一个或多个中间表示层。
  1. 最大内积搜索(Maximal Inner Product Search, MIPS):
    • MIPS是一种高效的相似性搜索算法,它通过计算查询向量与数据库中每个向量之间的内积来工作。内积越大,表示向量之间的相似度越高。MIPS的目标是找到与查询向量具有最大内积的向量,即最高的相似度的向量。
  1. Beam Search:
    • Beam Search是一种用于序列生成任务的优化搜索算法。它在每一步都维护多个(beam width数量的)最佳候选序列,并只扩展这些序列。Beam Search在每一步都考虑有限数量的候选,这使得它比穷举搜索更有效率,同时比贪心搜索更有可能找到全局最优解。
  1. 层次聚类(Hierarchical Clustering):
    • 层次聚类将数据点分组成不同层次的簇。它创建了一个由簇组成的树状结构,称为聚类树或树状图。层次聚类可以是凝聚的(自底向上)或分裂的(自顶向下)。在凝聚聚类中,每个数据点最初被视为一个单独的簇,然后逐步合并成更大的簇。在分裂聚类中,所有数据点最初都在一个簇中,然后逐步分裂成更小的簇。
  1. Trie(前缀树):
    • Trie是一种用于存储字符串集合的数据结构,它允许快速检索前缀、后缀和完整的字符串。Trie中的每个节点代表字符串中的一个字符,从根节点到某一节点的路径表示一个字符串。Trie树的高度通常与字符串中最长的字符串长度相同,并且可以高效地执行插入、搜索和前缀匹配操作。
  1. 教师强制(teacher forcing):
    1. 标准训练: 在标准的序列生成模型训练中,模型尝试根据前一个时间步的输出来预测下一个时间步的输出。例如,在语言模型中,模型会尝试根据前一个词来预测下一个词。
    2. 教师强制: 在教师强制的训练过程中,模型在生成序列的每一步中,不是使用自己之前预测的输出作为下一步的输入,而是使用真实的下一个输出(即“教师”的正确答案)。这意味着,即使模型在某个时间步的预测是错误的,它也会获得正确的信息来生成下一个预测。
    3. 损失函数: 在教师强制下,模型的损失函数通常是基于每一步预测的准确性来计算的,这促使模型学习如何更准确地预测序列中的下一个元素。
    4. 在DSI模型中,教师强制被用于训练阶段,以加速模型学习如何将文档内容或查询映射到正确的docid。
    5. 优点:
      • 加速训练: 教师强制可以帮助模型更快地收敛,因为它在每一步都提供了正确的信息,减少了模型学习过程中的不确定性。
      • 提高性能: 通过在训练过程中提供正确的上下文信息,教师强制有助于模型更好地学习序列数据的依赖结构。
      • 稳定学习: 对于那些依赖于前一步输出来生成下一步输出的模型,教师强制可以提供更稳定的学习信号。
    1. 缺点:
      1. 过度拟合: 由于模型在训练时总是获得正确的下一步信息,它无法学习如何从错误中恢复,导致模型在实际应用中的泛化能力下降。
      2. 训练与推理不一致: 在推理(或部署)阶段,模型需要使用自己生成的输出来预测下一步,这与训练阶段使用教师强制的情况不一致,可能导致模型表现不佳。
  1. BM25
    1. 是信息检索领域中一个非常著名的评分公式,它用于估计文档与用户查询之间的相关性。BM25是由Stephen Robertson、Karen Spärck Jones和Mandy M. Cochrane在1994年提出的,它是BM14模型的改进版本。
    2. BM25基于概率检索模型,特别是TF-IDF(词频-逆文档频率)框架。它考虑了以下因素:
    • 词频(TF):查询词在文档中出现的频率。
    • 逆文档频率(IDF):在整个文档集合中,包含查询词的文档的频率的倒数,用来衡量一个词的普遍重要性。
    • 文档长度:文档中的词数,用于调整词频的影响,因为较长的文档自然含有更多的词。
    • 平均文档长度:整个文档集合中所有文档长度的平均值,用于标准化文档长度的影响。
    1. 公式:

    • tfi,d 是查询词 i在文档 d中的词频。
    • idfi 是查询词 i的逆文档频率。
    • k1和 λ是模型参数,用于控制词频和文档长度的缩放。
    • b是另一个模型参数,用于调整文档长度的缩放。
    • avgdl是整个文档集合中文档的平均长度。
    • dld是文档 d的长度。
    • k3是控制短长度文档倾向的参数。
    • slend是文档 d中查询词出现的位置的序列长度。
  1. 文档表示方法
    1. 直接索引(Direct Indexing):文档的原始文本或经过某些预处理(如分词、去除停用词)的文本直接与一个docid相关联。在这种方法中,文档被表示为其全部或部分文本内容的直接映射,保持了文档的原始顺序和结构。优点是简单直观,但可能包含大量冗余信息,特别是对于长文档。
    2. 集合索引(Set Indexing):集合索引涉及将文档表示为一个词汇集合,其中重复的词汇和非信息性词汇(如停用词)被去除。这种策略通过使用集合数据结构来表示文档,从而减少存储空间并提高检索效率。集合索引有助于强调文档中独特的、与检索查询更相关的词汇。
    3. 倒排索引(Inverted Index):倒排索引是信息检索中最常用的索引方法之一,特别是在全文搜索引擎中。它是一种将文档中的词汇映射到包含它们的文档列表的方法。换句话说,它创建了一个词汇到文档的反向映射。倒排索引允许快速检索包含特定词汇的所有文档,因此它对于执行快速文本搜索非常有用。这种方法在处理大量文档时特别有效,因为它可以通过缓存和索引优化来减少搜索时间。
  1. 索引方法
    1. Inputs2Targets:
      • 这种方法将文档的标记序列(tokens)作为输入(inputs),将文档标识符(docid)作为目标(targets)。
      • 具体来说,模型被训练为接收一系列文档标记并预测相应的docid。这种方式使得docid成为去噪目标,因此它在损失函数中的地位更加突出。
      • Inputs2Targets的优势在于,它允许模型在索引阶段学习文档内容与docid之间的直接映射,这与检索任务中预测docid的目标一致。
    1. Targets2Inputs:
      • 与Inputs2Targets相反,Targets2Inputs方法将docid作为输入,并尝试生成对应的文档标记序列作为输出。
      • 这种方法可以被看作是训练一个条件自回归语言模型,该模型根据给定的docid生成文档内容。
      • 这种方法有助于模型学习docid与文档内容之间的反向关联,但不如Inputs2Targets直接适用于检索任务。
    1. 双向索引策略(Bidirectional Indexing):
      • 双向索引策略同时训练Inputs2Targets和Targets2Inputs两个方向,即模型需要学习文档标记到docid的映射,同时也学习docid到文档标记的映射。
      • 在这种策略中,会使用一个前缀标记来指示模型当前正在执行的任务方向,以便模型知道如何生成适当的输出。
      • 通过同时训练两个方向,模型可以更全面地理解文档内容与docid之间的关系,有助于提高检索性能。

  • 10
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瘦小星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值