嵌入模型检索面临严重限制 | DeepLearning.AI

作者:DeepLearning.AI | 日期:2025年1月16日

你的检索器真的能为用户可能输入的任何查询找到所有相关文档吗?研究表明,也许不能。

最新进展: 来自 Google 和约翰斯·霍普金斯大学的 Orion Weller、Michael Boratko、Iftekhar Naim 以及 Jinhyuk Lee 指出了一个关键的文档数量阈值。一旦超过这个阈值,检索器所使用的嵌入模型就不再足以检索出某个给定查询所对应的全部相关文档。

https://arxiv.org/abs/2508.21038

检索器基础: 有些检索器通过比较关键词来查找文档,另一些则通过比较查询与文档的嵌入向量来完成检索。在这种情况下,检索器的嵌入模型通常通过对比学习来学习生成嵌入:给定一个查询和一组文档,模型学习将查询与文档嵌入到同一空间,使得某个查询与其相关文档的嵌入彼此相似,而查询与无关文档的嵌入彼此不相似。随后,训练完成的嵌入模型可以用来创建文档嵌入的向量库。在推理阶段,检索器会生成一个查询嵌入,将其与存储的文档嵌入进行比较,并返回那些与查询嵌入最相似的文档。大多数检索模型为每个查询或文档只生成一个嵌入;较少情况下,有些模型会为每个查询或文档生成多个嵌入。

关键洞见: 理想情况下,一个单嵌入检索器应该能够返回数据库中的任意文档子集,因为对于某个查询而言,任何子集都有可能是相关的(例如,“给我关于 X 和 Y 但不包括 Z 的文档”)。但在现实中,随着文档数量的增加,某些文档对在嵌入空间中不可避免地相距过远,以至于不存在一个单一的查询嵌入能够同时成为这两个文档的最近邻。结果是,另一篇相关性较低的文档,反而会比其中一个距离较远的文档更接近该查询。相关子集越多样,嵌入维度就必须越大,才能区分出最相关的文档。换言之,一个检索器能够找到的不同文档对(或更大集合)的数量,从根本上受限于其嵌入维度大小。

工作原理: 为了衡量一个嵌入空间最多可以表示多少对文档,作者进行了两项实验。(i) 他们首先进行了一个最理想情况下的实验:跳过嵌入模型,直接使用可学习向量来表示查询和文档的嵌入,并测试这些可学习查询在检索可学习文档时的能力。(ii) 他们构建了一个由简单文档和查询组成的数据集,并使用现有的检索器来测试其表现。

  • • 在最理想的设置中,作者改变了嵌入的维度大小(尝试的维度小于 46)。对于每一种维度大小,他们构建了一组可学习的文档嵌入(初始为随机)。对于每一种可能的文档嵌入对,他们创建了一个对应的可学习查询嵌入(同样初始为随机)。他们通过梯度下降来调整这些查询和文档嵌入,以观察是否能够正确检索到对应的文档对。具体而言,他们鼓励文档对中每个文档的嵌入,与对应查询嵌入的相似度高于所有其他文档嵌入的相似度。随后,他们逐步增加文档数量;当文档数量超过某个阈值时,无论再进行多少优化,查询嵌入都无法再用于成功检索文档嵌入。
  • • 在使用真实检索器和自然语言的实验中,作者构建了 50,000 篇文档和 1,000 个查询,每个查询恰好对应两篇相关文档。每篇文档描述了一个人及其喜好(例如“Jon 喜欢苹果和短尾矮袋鼠”),而每个查询都在询问“谁喜欢 X?”。作者选择了 46 篇文档作为相关文档池(46 是其两两组合数量首次超过 1,000 的最小数目)。其余 49,954 篇文档作为干扰项。语言本身极其简单——没有否定、没有歧义、也没有长上下文——但任务依然困难,因为这 46 篇相关文档的每一种可能组合,都是某个查询的正确答案。

结果: 作者的实验表明,不存在任何模型能够生成一组查询与文档的嵌入,使得查询可以检索出所有可能的文档对。

  • • 在最理想的设置中,能够被完美表示的双文档组合数量大致随着嵌入维度 d 呈立方增长。作者对数据拟合了一个三次多项式(r² 相关系数为 0.999——1 表示完全相关),并将结果外推到更大的嵌入维度。当 d = 512 时,进一步优化已无法将查询与文档对的匹配数量提升到约 50 万以上;当 d = 768 时,该上限上升至 170 万;当 d = 1,024 时,约为 400 万;当 d = 3,072 时,为 1.07 亿;而当 d = 4,096 时,则约为 2.5 亿。
  • • 在第二项实验中,所有预训练的单嵌入检索器表现都很差。即便在嵌入维度为 4,096 的情况下,Promptriever Llama3(80 亿参数)的 recall@100 也仅达到 19%,GritLM(70 亿参数)达到 16%,而 Gemini Embeddings(参数数量未披露)仅约为 10%。相比之下,BM25(一种传统的基于关键词的检索器,根据文档中查询词出现频率进行排序)达到了接近 90%,而 ModernColBERT 通过为每个查询和文档使用多个嵌入(每个 token 一个小嵌入),取得了 65%。

为何重要: 理解单嵌入检索在理论上的极限,有助于为检索器的性能以及在特定任务中应选择的最佳嵌入大小设定现实的预期。随着智能体化检索系统的发展,这些限制将变得尤为重要。

我们的看法: 单嵌入检索器在原则上无法表示所有可能的查询—文档组合这一事实是真实存在的,但并不值得恐慌。在实际应用中,用户通常会查询彼此相关的信息,因此日常检索任务很可能远低于这些理论极限。当查询变得格外复杂时,智能体化检索——即由一个智能体迭代地决定是否以及从何处检索更多文档——提供了一种颇具前景的替代方案。

https://www.deeplearning.ai/the-batch/google-and-johns-hopkins-researchers-show-embedding-models-cant-search-unlimited-documents

如果觉得内容不错,欢迎你点一下「在看」,或是将文章分享给其他有需要的人^^

相关好文推荐:

理解多模态 LLM | Sebastian Raschka

这是最好的时代,也是最坏的时代

理解推理型 LLM | Sebastian Raschka

理解用于评估大语言模型(LLM)的四种主要方法 | Sebastian Raschka

从 DeepSeek V3 到 Mistral 3 Large:现代大语言模型(LLM)架构设计概览(三)| Sebastian Raschka

从 DeepSeek V3 到 Mistral 3 Large:现代大语言模型(LLM)架构设计概览(二)| Sebastian Raschka

从 DeepSeek V3 到 Mistral 3 Large:现代大语言模型(LLM)架构设计概览(一)| Sebastian Raschka

Agent 设计模式 | Lance

递归语言模型(Recursive Language Models) | Alex Zhang

重新构想 LLM 记忆:将上下文作为训练数据,使模型能够在测试时学习 | Nvidia

Manus 中的上下文工程 | Lance

引入嵌套学习(Nested Learning):一种用于持续学习的全新机器学习范式

如何构建多智能体研究系统

真正决定 AI 系统上限的是什么?

软件 2.0 | karpathy

2025年 LLM 年度回顾 | karpathy

苦涩的教训

0条留言

留言