多向量检索提速 90%:MUVERA 把复杂检索压回单向量搜索

AI Summary (BLUF)
Google Research 提出 MUVERA 算法,将多向量检索转化为单向量最大内积搜索(MIPS),在保持高召回率的同时大幅降低延迟。实验表明,在 BEIR 数据集上,MUVERA 比 PLAID 平均召回率高 10%,延迟降低 90%,且 FDE 可压缩 32 倍。该算法已开源,为多向量检索的实用化铺平道路。
核心洞察
多向量检索使用多个向量表示一个数据点(如每个 token 一个向量)的检索方式,能捕获更丰富的语义关系,但计算成本高。的精度优势一直卡在一个尴尬的地方:效果好,但太慢太贵,实际落地时经常被迫退回单向量方案。MUVERA 这篇论文的价值在于,它用一套有理论保证的编码方法把多向量问题“降维”回单向量搜索,延迟降了九成,召回还涨了。我比较在意的是它那个“数据无关”的特性,意味着换数据集不用重新调参,这对工程落地来说省了很多事。
神经嵌入模型已经是现代信息检索的基石。用户输入一个查询,比如“珠峰有多高”,检索系统的任务是从海量数据里找到相关内容。嵌入模型把每个数据点变成一个单向量嵌入,语义相似的数据点在数学上也相似。嵌入之间通常用内积相似度比较,配合最大内积搜索算法就能高效检索。
不过最近几年,多向量模型比如 ColBERT一种神经IR方法,避免池化操作,更有效地保留查询和文档嵌入信号,可以自动识别多句子片段。 的出现,在检索任务上表现明显更好。
和单向量嵌入不同,多向量模型用一组嵌入来表示每个数据点,相似度函数也更复杂,能捕捉更丰富的关系。比如当前最先进的多向量模型常用的 Chamfer 相似度一种多向量相似度度量,计算查询中每个向量与文档中最近向量的相似度之和,衡量整体匹配程度。,衡量的是一个多向量嵌入的信息在多大程度上被另一个多向量嵌入包含。多向量方案提升了准确率,能检索到更多相关文档,但计算上的麻烦也大了不少。嵌入数量暴增,多向量相似度打分的复杂度也高,检索成本显著上升。
Google 的 MUVERA 提出了一种新的多向量检索算法,目标是填平单向量和多向量检索之间的效率鸿沟。思路是把多向量检索转化成更简单的问题:为查询和文档构建固定维度编码(FDE),每个 FDE 是一个单向量,它的内积近似多向量相似度。这样一来,复杂的多向量检索就回到了单向量最大内积搜索。有了这个转换,就可以利用高度优化的 MIPS 算法先召回一批候选,再用精确的多向量相似度重新排序,既快又不丢精度。FDE 构建算法的开源实现在 GitHub 上可以找到。
核心结论
MUVERA 通过固定维度编码(FDE)将多向量检索归约为单向量最大内积搜索(MIPS),在 BEIR 基准信息检索领域的常用基准数据集集合,用于评估检索模型性能。上相比此前最优方法 PLAID此前最先进的多向量检索系统,基于单向量启发式方法,MUVERA 与其进行了对比。 平均召回率高 10%,延迟降低 90%。
FDE 变换与数据无关,不依赖特定数据集分布,换数据集无需重新调参,对数据分布变化更稳健,也适合流式应用场景。
要达到固定召回率,MUVERA 的 FDE 所需召回的候选文档数量比单向量启发式方法少 5 到 20 倍,显著降低了检索计算量。
FDE 可通过乘积量化有效压缩,内存占用降低 32 倍,且对检索质量影响很小。
MUVERA 采用“FDE 生成 → MIPS 召回 → Chamfer 相似度重排序”三步流程,理论上有可证明的近似保证,能在指定误差范围内近似真实 Chamfer 相似度。
多向量检索难在哪
多向量模型为每个查询或文档生成多个嵌入,通常每个 token 一个嵌入。计算查询和文档的相似度一般用 Chamfer 匹配:对每个查询嵌入,找到最接近的文档嵌入,取最大相似度,再对所有查询向量求和。所以 Chamfer 相似度提供的是一种“整体”度量,衡量查询的每个部分和文档某个部分的关系。
多向量表示有它的好处,可解释性更强,泛化也更好,但检索时面临几个硬骨头:
嵌入数量激增。按 token 生成嵌入,待处理的嵌入数量大幅增加。
相似度打分复杂且计算密集。Chamfer 匹配是非线性操作,需要矩阵乘法,比单向量点积贵得多。
缺少高效的次线性搜索方法。单向量检索受益于高度优化的算法,比如基于空间划分的方法,能同时做到高精度和次线性搜索时间,避免穷举比较。多向量相似度的复杂性质让这些快速几何技术没法直接套用,大规模检索效率上不去。
传统单向量 MIPS 算法也没法直接用在多向量检索上。举个例子,一个文档可能某个 token 和查询的某个 token 相似度很高,但整体上这个文档未必相关。这个问题逼着人们用更复杂、更耗算力的检索方法。
MUVERA 的做法:固定维度编码
MUVERA 的思路很巧:把多向量相似度搜索归约到单向量 MIPS,让复杂多向量数据的检索快起来。想象你有一个很大的“多向量集合”数据集,每个集合描述一个数据点,但逐个搜索这些集合很慢。MUVERA 的办法是把整组多向量压缩成一个更容易处理的单向量,也就是固定维度编码(FDE)。关键在于,比较这些简化后的 FDE,结果和比较原始多向量集合非常接近。这样就能用为单向量设计的快速搜索方法。
MUVERA 的流程大致分三步:
FDE 生成。用映射把查询和文档的多向量集合转成 FDE,这些映射要在固定长度向量里捕捉关键的相似度信息。
基于 MIPS 的检索。文档的 FDE 用标准 MIPS 求解器建索引。给定查询,算出它的 FDE,MIPS 求解器高效召回最相似的文档 FDE。
重排序。对 MIPS 召回的初始候选,用原始 Chamfer 相似度重新排序,提升精度。
MUVERA 的一个关键优势是 FDE 变换与数据无关。它不依赖特定数据集,对数据分布变化更稳健,也适合流式应用。另外,和模型产生的单向量不同,FDE 能保证在指定误差范围内近似真实 Chamfer 相似度。所以经过重排序阶段,MUVERA 能保证找到最相似的多向量表示。
理论基础
这套方法受了概率树嵌入技术的启发,那是几何算法理论里的一个工具。研究者把它改造了一下,使其适用于内积和 Chamfer 相似度。
FDE 生成的核心思路是把嵌入空间划分成若干区域。如果查询和文档中相似的向量落进同一个区域,就能高效近似它们的相似度。但查询和文档向量之间的最优匹配事先不知道,所以用了随机化划分方案。
论文还给出了理论保证,证明 FDE 对 Chamfer 相似度有很强的近似能力。这个结果挺重要,它为用单向量代理做多向量检索提供了一种有原则的方法,精度可证明。
实验结果
研究者在 BEIR 基准的多个信息检索数据集上评估了 MUVERA。实验显示,MUVERA 稳定达到高检索精度,同时延迟比之前的最优方法 PLAID 大幅降低。
几个关键发现:
召回率更高。MUVERA 优于单向量启发式方法(多向量检索里的常见做法,PLAID 也用了),召回更好,召回的候选文档还少得多。比如要达到固定召回率,FDE 召回的候选数量少 5 到 20 倍。
延迟更低。和 PLAID 相比,MUVERA 在 BEIR 数据集上平均召回率高 10%,延迟降低 90%。
另外,FDE 可以用乘积量化有效压缩,内存占用降低 32 倍,检索质量影响很小。
这些结果说明 MUVERA 有潜力显著加速多向量检索,让它在实际应用里更可行。
结语
MUVERA 是一种新的高效多向量检索算法,近似质量有可证明的保证,实际表现也不错。它把多向量搜索归约到单向量 MIPS,利用了现有的优化搜索技术,在效率大幅提升的同时达到当前最优性能。感兴趣的读者可以在 GitHub 上找到 FDE 构建算法的开源实现。
这项工作为高效多向量检索打开了新路子,对搜索引擎、推荐系统和自然语言处理等应用都很关键。进一步的研究和优化应该还能带来更大的性能提升,让多向量检索技术被更广泛地采用。
致谢
本文总结的工作与 Majid Hadian、Jason Lee 和 Vahab Mirrokni 合作完成。感谢 Kimberly Schwede 对文中动画制作的帮助。
常见问题(FAQ)
MUVERA 是怎么把多向量检索变成单向量搜索的?
它用固定维度编码(FDE)把查询和文档的多向量集合各压缩成一个单向量,使两者的内积近似原来的 Chamfer 相似度,从而把多向量检索转化为单向量最大内积搜索(MIPS),再用精确相似度重排序候选。
MUVERA 比 PLAID 快多少、准多少?
在 BEIR 数据集上,MUVERA 平均召回率比 PLAID 高 10%,延迟降低 90%;达到相同召回率时,FDE 召回的候选文档数量少 5 到 20 倍,FDE 还能用乘积量化压缩 32 倍。
MUVERA 的 FDE 为什么说与数据无关?
FDE 变换不依赖特定数据集,对数据分布变化更稳健,也适合流式应用;换数据集不用重新调参,而且它能在指定误差范围内近似真实 Chamfer 相似度,重排序后可保证找到最相似的多向量表示。
版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。
文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。
若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。




