Paper Reading 12 LLM-IR-Transformer Memory as a Differentiable Search Index(DSI)

2024/12/02 Paper Reading IR LLM 共 7424 字,约 22 分钟

Paper Reading 11 LLM- Transformer Memory as a Differentiable Search Index(DSI)

论文信息

Transformer Memory as a Differentiable Search Index

AI总结

论文《Transformer Memory as a Differentiable Search Index》分析

1. 研究范围与背景

论文提出了一种新型的信息检索(Information Retrieval, IR)系统,名为可微检索索引(Differentiable Search Index, DSI)。该方法以单一的Transformer模型为基础,通过将文本查询直接映射到文档标识符(docids),替代传统的多阶段检索管道。研究主要集中于对中等规模数据集(源自Natural Questions数据集)的概念验证。


2. 核心思想

DSI框架将整个语料库的信息嵌入到Transformer模型的参数中,实现了从查询到文档标识符的端到端映射。这种方法通过优化模型参数,将检索过程简化为标准的机器学习任务。


3. 方法

  • 模型架构: 使用基于预训练T5模型的序列到序列(seq2seq)编码-解码架构。
  • 索引策略
    • Inputs-to-Targets:将文档内容作为输入,docids作为输出。
    • Span Corruption:通过掩码操作与docids结合进行训练。
    • 双向编码:结合Inputs-to-Targets与反向任务。
  • docid表示
    • 原子标识符:随机分配的唯一整数。
    • 字符串标识符:将docids分解为可标记的字符串。
    • 语义标识符:通过层次聚类生成具有语义结构的docids。
  • 优化: 采用多任务学习方式,将索引和检索任务联合优化,基于序列到序列的交叉熵损失进行训练。

4. 主要贡献

  1. 端到端检索:展示了通过单一模型完成索引和检索任务的可行性。
  2. 性能提升:在微调和零样本场景下,显著优于传统方法(如BM25和双编码器)。
  3. docid创新表示:提出并验证了语义docid编码的优势。
  4. 扩展性研究:分析了DSI与双编码器在模型规模增长下的不同表现。

5. 创新与区别

  • 架构简化:区别于依赖固定检索过程的双编码器,DSI通过生成解码实现检索。
  • 学习驱动的索引:将语料知识嵌入模型参数中,取代外部结构化索引(如倒排索引)。
  • 语义结构化:层次化的docid减少了检索复杂性,并提高了任务相关性能。

6. 结果与结论

  • 性能表现
    • 在各种数据集上优于BM25和双编码器(Hits@1性能提升最高达20%)。
    • 在零样本场景中表现出强大的能力,超过如SentenceT5等基线方法。
  • 扩展性:模型规模越大,语义docid表现越优。
  • 未来潜力:指出可探索的方向包括动态语料更新、无监督学习集成及混合专家模型的应用。

7. 与其他方法对比

方法索引机制检索机制性能
BM25倒排索引稀疏矩阵乘法基线
双编码器(DE)向量化表示近邻搜索中等
DSI(本文提出)参数化索引自回归生成优秀

8. 讨论

DSI将传统检索中的索引任务转换为可训练的模型任务,显著降低了复杂性并提高了检索精度。然而,其依赖模型参数嵌入语料库信息的方式,在动态语料处理及计算资源需求方面存在挑战。


9. 验证与证明

通过NQ数据集(10k至320k文档)验证了DSI的可行性。实验表明,该方法在有监督和零样本设置中表现稳定,为进一步探索神经网络检索系统提供了坚实基础。


DSI方法展现了其在信息检索领域的变革潜力,尤其在整合检索任务为单一神经模型方面。未来研究可进一步提升其在动态数据集上的扩展性和适应性,推动神经检索系统的进一步发展。

AI 问答

什么是 docid

语义docid编码的概念与设计思想

1. 概念

语义docid编码是一种基于文档语义特征生成的标识符表示方法,其设计目的是在文档标识符(docid)中引入语义结构信息,使得检索模型能够更高效地进行索引和检索。这种方法通过对文档的语义特征进行聚类和分层组织,将语义相似的文档映射到共享前缀或结构化标识符,从而在检索过程中简化搜索空间。


2. 设计思想

  1. 语义聚类
    • 利用文档的嵌入向量(通过语言模型生成,如BERT)对文档进行聚类。
    • 使用层次聚类(hierarchical clustering)算法,将文档组织成多个语义相关的类别,每个类别分配一个编号。
    • 每个类别内的文档递归地分成子类别,继续生成子层次编号,直到类别规模小于设定阈值为止。
  2. 层次化结构
    • 通过聚类结果生成类似“树形结构”的docid,每个文档标识符由多个层次的编号组成(例如“3.1.4”)。
    • 文档编号的前缀部分反映了其所属的上层类别,因此具有相同前缀的文档在语义上更为接近。
  3. 解码过程的优化
    • 在检索时,模型逐步解码docid的每一层次,通过beam search等算法逐步缩小搜索范围。
    • 这种逐层缩小的方式极大减少了搜索空间,提高了检索效率。
  4. 语义约束与优化
    • 将语义信息引入docid表示,使得检索目标不仅限于随机标识符,而是具备语义引导能力。
    • 这种设计允许模型在训练中更高效地优化,因为语义相近的docid在嵌入空间中更容易被模型学习到。

3. 方法示例

以层次化的十进制树为例:

  • 第一步:所有文档根据嵌入向量分成10个大类(0-9),每个类别代表一个一级编号。
  • 第二步:对于类别内文档,继续聚类,生成二级编号(例如0.1, 0.2)。
  • 第三步:重复以上过程,直到每个类别内文档数量满足设定的最小规模(如100文档)。

4. 优势与意义

  1. 优化搜索效率
    • 通过层次化结构逐步缩小搜索空间,显著降低解码复杂度。
    • 对于大规模语料库尤为适用,能够避免直接搜索全量docid导致的性能瓶颈。
  2. 提升学习效率
    • 语义docid中引入的结构性信息使得模型训练更高效,能够更容易学习文档与查询的关联。
  3. 对抗随机性与优化难题
    • 相较于随机分配的docid(如原子标识符),语义docid具有更稳定的性能,尤其在模型参数较小时性能表现更优。
  4. 适配动态扩展
    • 在动态语料场景中,可以通过重新生成或局部更新树形结构,轻松适应新增文档。

5. 实现示意图

树形层次结构:

  3
 /|\
3.1 3.2 3.3
   / \
3.2.1 3.2.2
  • 查询首先定位到根节点(3),然后逐层筛选最终找到目标文档(如3.2.1)。

6. 总结

语义docid编码通过结合文档语义信息和层次化设计,实现了检索效率和学习效率的提升。其核心思想是利用语义信息优化检索模型的目标空间,使得模型能够更有效地捕捉查询与文档之间的相关性,是对传统随机docid表示方法的重大改进。

第三部分提到的 Indexing Method,Document Representation Strategies, Representing Docids for Retrieval里面提到的多种方法与策略

第三部分方法与策略详解

以下对文中提到的 Indexing MethodDocument Representation Strategies、和 Representing Docids for Retrieval 中的方法与策略进行详细分析,包括其概念、设计思想与目的、区别及优缺点。


1. Indexing Method(索引方法)

1.1 Inputs-to-Targets

  • 概念:将文档内容(tokens)作为输入,文档标识符(docid)作为输出。
  • 设计思想:直接将文档与其标识符绑定,通过序列到序列(seq2seq)任务训练模型,使模型学会根据文档内容预测对应docid。
  • 优点
    • 与检索任务一致,输入是查询(query),输出是docid。
    • 简化模型任务,直接优化检索目标。
  • 缺点
    • 文档内容本身不是目标,不能利用现有文档预训练模型。
    • 对长文档训练可能有挑战。

1.2 Targets-to-Inputs

  • 概念:反向任务,即将docid作为输入,预测文档内容(tokens)。
  • 设计思想:通过训练模型生成文档内容,以学习docid与文档的映射关系。
  • 优点
    • 对生成式模型友好,适配自回归任务。
    • 可以利用docid的生成损失优化模型。
  • 缺点
    • 检索任务是预测docid,反向生成与实际任务不一致。
    • 在检索阶段转换为docid可能复杂。

1.3 Bidirectional

  • 概念:结合Inputs-to-Targets和Targets-to-Inputs任务,同时进行正向和反向的seq2seq训练。
  • 设计思想:通过双向任务共享模型权重,以增加模型泛化能力。
  • 优点
    • 提高模型对docid与文档内容的双向关联理解。
    • 增强索引的鲁棒性。
  • 缺点
    • 增加训练复杂性。
    • 对于某些任务可能产生不一致的优化方向。

1.4 Span Corruption

  • 概念:将docid作为前缀连接到文档tokens,通过span corruption(掩码修复)任务进行训练。
  • 设计思想:通过预训练方式增强模型对文档内容和docid关联的理解,同时实现目标与输入的平衡。
  • 优点
    • 结合了生成任务和docid任务。
    • 可以利用预训练任务增强模型。
  • 缺点
    • 需要额外设计掩码策略。
    • 在某些场景可能产生不稳定表现。

2. Document Representation Strategies(文档表示策略)

2.1 Direct Indexing

  • 概念:直接使用文档的前L个tokens作为表示。
  • 设计思想:保留文档的原始信息,以其内容为索引特征。
  • 优点
    • 简单直观。
    • 对短文档效果好,信息量足够。
  • 缺点
    • 长文档的截断可能导致信息丢失。
    • 对高频无意义词(如停用词)敏感。

2.2 Set Indexing

  • 概念:对文档内容去重(删除重复词),并移除停用词后形成表示。
  • 设计思想:减少冗余和无关信息,突出文档的关键特征。
  • 优点
    • 文档表示更加紧凑。
    • 减少模型对噪声词汇的学习。
  • 缺点
    • 停用词和高频词的去除可能丢失语境信息。
    • 对文档内部关联的建模能力弱。

2.3 Inverted Indexing

  • 概念:将文档分割为连续的内容块(chunk),每个块映射到同一个docid。
  • 设计思想:通过随机采样文档块增加文档索引的覆盖范围。
  • 优点
    • 避免仅关注文档前L个tokens。
    • 提高对文档全局信息的捕获。
  • 缺点
    • 随机采样可能导致训练不稳定。
    • 多次暴露相同docid可能干扰模型学习。

3. Representing Docids for Retrieval(docid表示方法)

3.1 Unstructured Atomic Identifiers

  • 概念:为每个文档分配一个随机整数作为docid。
  • 设计思想:将docid简单地表示为模型的输出类别。
  • 优点
    • 实现简单。
    • 可直接与现有语言模型的输出层适配。
  • 缺点
    • 缺乏语义关联,优化困难。
    • 对于大规模数据集需要扩展词汇表,增加计算复杂度。

3.2 Naively Structured String Identifiers

  • 概念:将docid视为字符串,并进行逐字符解码。
  • 设计思想:通过逐字符生成避免大规模词汇表的依赖。
  • 优点
    • 简化输出空间。
    • 可以逐步生成,避免大规模输出层的优化难题。
  • 缺点
    • 字符串生成需要beam search等复杂解码策略。
    • 效率可能低于直接分类方法。

3.3 Semantically Structured Identifiers

  • 概念:基于文档语义生成层次化的标识符,使得相似文档共享前缀。
  • 设计思想:利用层次聚类为文档生成具有语义结构的docid,简化检索任务。
  • 优点
    • 引入语义信息,优化检索性能。
    • 结构化设计减少搜索空间。
  • 缺点
    • 需要额外的聚类和分层过程。
    • 对动态语料库更新支持有限。

总结与比较

方法分类子方法优点缺点
索引方法Inputs-to-Targets简单高效,直接优化检索目标。无法预训练文档内容,长文档可能受限。
 Targets-to-Inputs对生成任务友好,适配docid优化。与检索任务不完全一致。
 Bidirectional双向学习增强鲁棒性。增加训练复杂性。
 Span Corruption结合生成与docid任务,预训练友好。掩码策略设计复杂,稳定性可能不足。
文档表示策略Direct Indexing保留原始信息,简单易用。长文档截断,停用词敏感。
 Set Indexing紧凑高效,减少噪声。丢失语境信息,模型能力受限。
 Inverted Indexing提高覆盖范围,捕获全局信息。采样随机性导致不稳定,多次暴露影响学习。
docid表示方法Unstructured Atomic简单直接,适配现有模型。缺乏语义关联,优化困难。
 Naively Structured String避免大规模输出层,逐步生成灵活。解码复杂,效率较低。
 Semantically Structured引入语义结构,性能提升明显。需要额外聚类,动态支持有限。

以上策略和方法针对不同需求与场景提供了多样化的解决方案,同时也展现了设计中的权衡和创新。

文中算法最终选定的的策略是什么,为什么这么选择

最终选定的策略及原因

1. 最终选定的策略

根据文中描述,以下是论文最终采用的策略:

  1. 索引方法(Indexing Method)
    • 选用 Inputs-to-Targets 方法。
    • 原因:该方法直接将文档内容(tokens)映射到文档标识符(docid),与检索任务的目标最为一致。相比其他方法(如Targets-to-Inputs或Span Corruption),Inputs-to-Targets方法性能稳定,能够更高效地学习文档与标识符之间的关联。
  2. 文档表示策略(Document Representation Strategies)
    • 选用 Direct Indexing
    • 原因:该方法简单直接,利用文档的前L个tokens作为输入,在实验中表现出最佳性能。其他方法(如Set Indexing和Inverted Indexing)虽有理论优势,但在实践中无法稳定优化,性能不及Direct Indexing。
  3. docid表示(Representing Docids for Retrieval)
    • 选用 Semantically Structured Identifiers
    • 原因:引入语义层次化设计使得检索性能显著提升,尤其是在文档量较大的数据集上。相比于Unstructured Atomic Identifiers和Naively Structured String Identifiers,语义标识符(Semantic Identifiers)能够更有效地减少搜索空间,并提供更高的优化效率。

2. 选择原因

Inputs-to-Targets:

  • 与检索任务直接相关:模型的输入是文档内容,输出是docid,与检索时的查询到docid映射逻辑一致。
  • 实验验证中,该方法性能优于其他索引方法,如Targets-to-Inputs和Span Corruption,尤其是在Hits@1和Hits@10等指标上表现更好。
  • 训练效率较高:不需要设计复杂的多任务训练或掩码策略。

Direct Indexing:

  • 简单有效:直接使用文档的前L个tokens,信息量充足且易于优化。
  • 实验结果表明,这种方法在各种规模的数据集(如NQ10K、NQ100K、NQ320K)上都能保持较高的性能。
  • 其他方法(如Set Indexing和Inverted Indexing)在实现和训练上增加了复杂性,但未能显著提升效果。

Semantically Structured Identifiers:

  • 语义优势显著:实验结果表明,语义标识符在所有规模的数据集上表现优于其他docid表示方式(如Atomic Identifiers和String Identifiers)。
  • 层次化设计减少搜索空间:通过逐步缩小检索范围(如beam search解码),提高了效率。
  • 在零样本(zero-shot)检索场景中,也展现出良好的性能优势。

3. 不同策略效果的实验验证

文中通过多组实验验证了不同策略的效果差异,以下为主要实验结果和分析:

  1. 索引方法
    • 实验结果:Inputs-to-Targets方法在Hits@1指标上明显优于其他方法,Targets-to-Inputs和Span Corruption未能提供有意义的检索性能(几乎为0%)。
    • 分析:Inputs-to-Targets直接优化了检索目标,而其他方法与检索目标不一致,导致性能较差。
  2. 文档表示策略
    • 实验结果:Direct Indexing在所有数据集(NQ10K、NQ100K、NQ320K)上表现最佳。Set Indexing和Inverted Indexing在性能和稳定性上均逊色。
    • 分析:Direct Indexing方法保持了文档的语义完整性,而Set Indexing和Inverted Indexing因信息丢失或重复暴露docid导致优化困难。
  3. docid表示方法
    • 实验结果:语义标识符(Semantic Identifiers)在大规模数据集(NQ320K)上表现突出,特别是在Hits@1指标上相对其他方法提升显著(例如提升高达66%)。
    • 分析
      • Atomic Identifiers由于随机性较强,优化难度较大,在不同数据集上的表现不稳定。
      • Naively Structured Identifiers虽然避免了大规模softmax输出,但在准确性上无法与语义标识符竞争。
      • Semantic Identifiers通过层次化设计显著提高了检索效率。

4. 实验结果展示

以下是关键实验结果总结(摘自文中表格):

方法NQ10K Hits@1NQ100K Hits@1NQ320K Hits@1
Inputs-to-Targets最佳最佳最佳
Direct Indexing最佳最佳最佳
Semantic Identifiers33.9%26.9%40.4%
Atomic Identifiers13.0%25.3%24.0%
Naively Structured28.1%27.5%23.8%

5. 总结

论文通过实验验证和分析,选定了Inputs-to-Targets、Direct Indexing和Semantic Identifiers作为最终策略。这些策略在性能、优化效率和检索准确性方面均表现最佳,且其选择均基于实验结果的支持。这种策略组合使DSI在多种数据集规模和任务设置下展现出显著优势。

个人理解

参考笔记

Transformer Memory as a Differentiable Search Index - 知乎

单个Transformer完成信息检索,谷歌用可微搜索索引打败双编码器模型

[下一代的搜索引擎是什么样子?神经网络真的能「死记硬背」吗?query_网易订阅](https://www.163.com/dy/article/H2QM9MMN0511CQLG.html)

文档信息

Search

    Table of Contents