选自arXiv

作者:Yi Tay等

机器之心编译

编辑:陈萍

谷歌提出基于 Transformer 的可微文本检索索引,明显优于双编码器模型等强大基线,并且还具有强大的泛化能力,在零样本设置中优于 BM25 基线。

信息检索 (Information Retrieval, IR) 从互联网诞生之日起,便有着不可撼动的地位。如何从海量数据中找到用户需要的信息是当前研究的热点。目前比较流行的 IR 方法是先检索后排序(retrieve-then-rank)策略。在检索算法中,比较常用的是基于反向索引或最近邻搜索,其中基于对比学习的双编码器 (dual encoders,DE) 是目前性能最优的模型。

近日,谷歌研究院在论文《Transformer Memory as a Differentiable Search Index》中提出了一种替代架构,研究者采用序列到序列 (seq2seq) 学习系统。该研究证明使用单个 Transformer 即可完成信息检索,其中有关语料库的所有信息都编码在模型的参数中。

该研究引入了可微搜索索引(Differentiable Search Index,DSI),这是一种学习文本到文本新范式。DSI 模型将字符串查询直接映射到相关文档;换句话说,DSI 模型只使用自身参数直接回答查询,极大地简化了整个检索过程。

此外,本文还研究了如何表示文档及其标识符的变化、训练过程的变化以及模型和语料库大小之间的相互作用。实验表明,在适当的设计选择下,DSI 明显优于双编码器模型等强大基线,并且 DSI 还具有强大的泛化能力,在零样本设置中优于 BM25 基线

论文链接:https://arxiv.org/pdf/2202.06991.pdf

DSI 体系架构与 DE 比较:

论文一作、谷歌高级研究员 Yi Tay 表示:在这个新范式中,检索的所有内容都映射到易于理解的 ML 任务上。索引是模型训练的一种特殊情况,不再依赖外部不可微的 MIPS 操作进行检索。这使得统一模型更容易。

可微搜索索引

DSI 背后的核心思想是在单个神经模型中完全参数化传统的多阶段先检索后排序 pipeline。为此,DSI 模型必须支持两种基本操作模式:

  • 索引:DSI 模型应该学会将每个文档内容 d_j 与其对应的 docid j ( 文档标识符 :document identifiers,docid)相关联。本文采用一种简单的序列到序列方法,将文档 token 作为输入并生成标识符作为输出;

  • 检索:给定输入查询,DSI 模型应返回候选 docid 排序列表。本文是通过自回归生成实现的。

在这两个操作之后,DSI 模型可以用来索引文档语料库,并对可用的带标记数据集(查询和标记文档)进行微调,然后用于检索相关文档 —— 所有这些都在单个、统一的模型中完成。与先检索后排序方法相反,DSI 模型允许简单的端到端训练,并且可以很容易地用作更大、更复杂的神经模型的可微组件

双编码器 (DE) 的概述,它有两个独立的步骤,编码和检索。

索引策略

Inputs2Target:研究者将其构建为 doc_tokens → docid 的 seq2seq 任务,此方式能够以直接输入到目标的方式将 docid 绑定到文档 token。

Targets2Inputs:从标识符生成文档 token,即 docid → doc token。直观来讲,这相当于训练一个以 docid 为条件的自回归语言模型。

双向:其在同一个联合训练设置中训练 Inputs2Targets 和 targets2input。附加一个 prefix token 以允许模型知道任务正在哪个方向执行。

表示 Docids 用于检索

基于 seq2seq 的 DSI 模型中的检索是通过解码给定输入查询 docid 来完成的。如何有效地解码很大程度上取决于模型中 docid 的表示方式。在本节中,研究者探讨了表示 docid 的多种可能方式以及如何处理解码。

非结构化原子标识符(Atomic Identifiers):表示文档最简单的方法是为每个文档分配一个任意的(并且可能是随机的)唯一整数标识符,该研究将这些标识符称为非结构化原子标识符。研究者要想使用这些标识符,一个明显的解码方式是学习标识符上的概率分布。在这种情况下,模型被训练为每个唯一的 docid (|Ndocuments|) 发出一个 logit。为了适应这种情况,该研究将标准语言模型的输出词汇表扩展如下:

简单的结构化字符串标识符:该研究还考虑了另一种方法,将非结构化标识符 (即任意唯一整数) 视为可标记的(tokenizable)字符串,将其称为简单的结构化标识符。在此标识符下,检索是通过依次解码一个 docid 字符串来完成的。解码时,使用 beam search 来获得最佳 docid。但是,使用这种策略不容易获得 top-k 排名。不过,研究者可以彻底梳理整个 docid 空间,并获得给定查询的每个 docid 的可能性。

语义结构化标识符:其目标是自动创建满足以下属性的标识符:(1) docid 应该捕获一些语义信息,(2) docid 的结构应该是在每一个解码 step 之后有效地减少搜索空间。给定一个需要索引的语料库,所有文档都聚集成 10 个簇。每个文档分配有一个标识符,其簇的编号从 0 到 9。下表为这个进程的伪代码:

实验结果

所有 DSI 模型均使用标准预训练 T5 模型配置进行初始化。配置名称和对应的模型参数数量为:Base (0.2B)、Large (0.8B)、XL (3B) 和 XXL (11B)。该研究用实验验证了上述各种策略的效果。

下表 3 给出了经过微调的 NQ10K、NQ100K 和 NQ320K 的检索结果,表 4 给出了零样本检索结果。对于零样本检索,模型仅针对索引任务而不是检索任务进行训练,因此模型看不到标记查询 → docid 数据点。

下图 4 给出了 NQ320K 上的结果。总的来说,研究者发现直接索引方法效果最好,并且由于 docid 反复暴露于不同的 token,因此很难训练倒排索引( inverted index)方法。他们还发现,较短的文档长度似乎在性能大幅下降超过 64 个 token 时效果很好,这表明当存在大量文档 token 时,可能更难优化或有效记忆。最后,研究者还发现对文档 token 应用集合处理或停用词预处理没有额外的优势。

下图 3 绘制了三种方法的缩放表现(以对数尺度计),它们分别是 DE、具有 naive ID 的 DSI 和具有语义 ID 的 DSI。其中,DSI (naive) 可以从 base 到 XXL 的尺度变化中获益,并且似乎仍有改进的空间。同时,DSI (语义) 在开始时与 DE base 具有同等竞争力,但会随尺度增加表现得更好。DE 模型在较小的参数化时基本处于稳定状态。

下图 5 展示了修改索引比例对检索样本的影响。研究者发现,索引和检索任务之间的相互作用会显著影响优化过程。r 值设置得过高或过低一般都会导致性能不佳。他们发现,索引比例为 32 时通常表现良好。

© THE END

转载请联系原公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

点个在看 paper不断!

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

  1. 微服务体系三维可缩放模型

    本文说明了微服务体系的可缩放模型中,3种维度上缩放能力的优缺点. X轴缩放 X轴缩放包括在负载均衡器后面运行的应用程序的多个副本.如果有N个副本,则每个副本处理1 / N的负载. 这是一种简单,常用的 ...

  2. 谷歌搜索的灵魂!BERT模型的崛起与荣耀

    本文转载自 智东西 刷榜各NLP任务.超70种语言搜索,起底搜索帝国谷歌的"引擎工程师"BERT! 如果你在谷歌上搜索"如何在没有马路的山上停车",谷歌会告诉你 ...

  3. Transformer:《Attention is all you need》(论文精读/原理解析/模型架构解读/源码解析/相关知识点解析/相关资源提供)

    本文解读Transformer较为详细,是一篇两万字的长文,如果想看简短版的,请参考这篇文章 目录 1 相关背景 1.1 Transformer 1.2<Attention is all you ...

  4. 谷歌Jeff Dean团队发文,探讨「学习模型」如何替代传统索引结构

    原文来源:arxiv-vanity 作者:Tim Kraska.Alex Beutel.Ed H. Chi.Jeffrey Dean.Neoklis Polyzotis 「雷克世界」编译:嗯~阿童木呀 ...

  5. 谷歌研发能处理多域多任务的机器学习模型——MultiModel

     谷歌研发能处理多域多任务的机器学习模型--MultiModel 我们知道,人工智能领域虽然发展迅速,但大部分机器学习的系统都是针对特定的学习任务存在的,例如会下棋的AlphaGo,识别人脸的图像 ...

  6. 通过谷歌骇客语法搜索后台:_Google骇客:以不寻常的方式使用Google的六大技巧...

    通过谷歌骇客语法搜索后台: Previously I've discussed ways of modifying queries to gain maximum value in Google se ...

  7. 内容:提出含冰蓄冷空调的微电网多时间尺度优化调度模型,研究冰蓄冷空调 的不同运行方式对优化调度的影响

    内容:提出含冰蓄冷空调的微电网多时间尺度优化调度模型,研究冰蓄冷空调 的不同运行方式对优化调度的影响. 日前计划中通过多场景描述可再生能源的不确定性,侧重于一个运行优化周期内的经济运行:日内调度基于日 ...

  8. 谷歌和百度常见搜索技巧

    经常使用谷歌,百度进行搜索,才发现还有很多比较基础的搜索技巧都不甚了解,抽空阅读了一下谷歌和百度的官方文档,整理总结了以下常见的搜索技巧. 谷歌搜索技巧 1.完全匹配,使用中文或者英文双引号 2.几个 ...

  9. 谷歌与百度的搜索技巧

    一, Google谷歌搜索高级语法 减除无关资料 (-) 如果要避免搜索某个词语,可以在这个词前面加上一个减号("-", 英文字符).但在减号之前必须留一个空格. 英文短语搜索 ( ...

最新文章

  1. C++中extern “C”含义深层探索(zz)
  2. python真的那么火吗-Python语言为什么这么火?
  3. s3c6140 UART驱动设计
  4. Python学习网络爬虫--转
  5. SpringBoot整合分布式消息平台Pulsar
  6. 框架--NoHttp和OkHttp哪个好用,Volley和NoHttp哪个好用?
  7. C/C++02: Josephus问题
  8. 培养创造力的10个注意点
  9. MyBatis 【返回自增id】
  10. Android UUID.randomUUID()生成唯一数,1到100随机数
  11. c语言的编译器vs2019的安装及简单实用
  12. 数字逻辑电路—全减器的实现
  13. 常用的前端框架有哪些?
  14. “罪魁祸首”已找到,微软回应修改 MIT 开源项目作者版权声明
  15. Scala实现Kafka生产者与消费者实例
  16. 大屏一体机!奥可视新品A5亮点浅析
  17. 【微信小程序】小程序功能开发
  18. 攻防世界 misc 打野
  19. JTAG (一)杂谈
  20. 栈溢出利用SEH异常处理

热门文章

  1. windows8下安装Visual Studio2008
  2. C#中的委托和事件 (4)---事件和委托的编译代码
  3. 刻意练习:LeetCode实战 -- Task09. 环形链表
  4. LeetCode实战:两数之和
  5. 深度强化学习的前景:帮助机器掌控复杂性
  6. 机器学习 KNN算法实践
  7. 鲲鹏高校行太原站来袭,两大课程一站式掌握未来潮流
  8. Git 看这一篇就够了
  9. 必看!52篇深度强化学习收录论文汇总 | AAAI 2020
  10. non-local神经网络:通过非局部操作解决深度神经网络核心问题