← 返回 2026-02-25

任意模态下的多向量索引压缩 Multi-Vector Index Compression in Any Modality

Hanxiang Qin, Alexander Martin, Rohan Jha, Chunsheng Zuo, Reno Kriz, Benjamin Van Durme 📅 2026-02-24 👍 22 2026-07-13 08:35
信息检索 多向量检索 多模态检索 索引压缩 聚类 迟交互

提出注意力引导聚类(AGC)方法,在固定向量预算下压缩多模态迟交互索引,性能逼近甚至超越未压缩基线。

前置知识

多向量迟交互 (Multi-Vector Late Interaction)

ColBERT 提出的检索范式:将查询和文档分别编码为一组向量(每个 token 一个),然后通过 MaxSim 操作计算相关性分数,即对每个查询向量取与所有文档向量的最大点积,再求和。相比单向量检索,迟交互保留了细粒度的 token 级匹配信息,在文本和多模态检索中表现优异,但索引存储和查询成本随文档长度线性增长。

本文的核心问题就是如何在保持迟交互细粒度匹配优势的同时,大幅压缩其索引大小。

MaxSim 操作

ColBERT 风格的相关性评分函数:给定查询表示 $Q \in \mathbb{R}^{n_q \times h}$ 和文档表示 $C \in \mathbb{R}^{m \times h}$,相关性分数为 $s(q,d) = \sum_{i=1}^{n_q} \max_{1 \le j \le m} \langle q_i, c_j \rangle$。对每个查询 token,找到与其最相似的文档 token 并取点积,然后对所有查询 token 求和。这使得每个查询 token 都能独立地找到文档中语义最相关的区域。

理解 MaxSim 是理解本文所有压缩方法的关键——压缩的目标是在减少文档向量数量的同时,尽量保持 MaxSim 匹配的质量。

注意力引导聚类 (AGC)

本文提出的核心压缩方法,由三个组件构成:(1)注意力选择质心——通过可学习的「通用查询 token」利用注意力机制识别文档中语义最重要的区域作为聚类质心;(2)硬聚类——将所有文档 token 按余弦相似度分配到最近的质心,减少冗余;(3)加权聚合——用注意力显著性分数作为权重对簇内 token 加权平均,构建最终的压缩表示。

AGC 是本文的唯一创新方法,它同时解决了现有方法的信息浪费(SeqResize)、信息坍缩(MemTok)和对噪声敏感(H-Pool)的问题。

通用查询 token (Universal Query Tokens)

一组可学习的特殊 token $X_\Psi \in \mathbb{R}^{|\Psi| \times h}$,在编码时附加到文档 token 之后。它们不对应任何具体查询,而是作为「探针」在双向注意力中探测文档的语义显著区域。通过平均所有头和所有通用查询 token 的注意力权重,得到每个文档 token 的显著性分数 $\alpha$。

这是 AGC 区别于传统聚类方法的关键创新——利用注意力机制而非仅几何距离来选择信息最丰富的区域作为压缩锚点。

索引利用率 (Index Utilization)

衡量压缩方法在迟交互中实际使用了多少文档 token 的指标。作者发现,未压缩的多模态模型在一次评估中仅利用约 1% 的文档 token,前 2% 的 token 主导了匹配过程。这说明完整的多模态索引存在大量冗余,压缩不仅可行而且必要。

这一发现直接证明了压缩的合理性和重要性,也解释了为什么压缩后性能损失极小。

研究动机

迟交互(late interaction)已成为文本、图像、视觉文档和视频检索的主流范式,但其计算和存储成本随文档长度线性增长,在多模态语料库中尤为严重。以视频为例,索引 1 个视频需要约 10MB 的多向量表示,而 YouTube 上约有 140 亿个视频,预估索引大小高达 140PB。此外,作者发现多模态迟交互模型在一次完整评估中仅使用了约 1% 的索引 token,意味着绝大多数存储和计算都被浪费在了编码冗余信号上(如静态背景、静音段等)。现有的文本域压缩方法(SeqResize、MemTok、H-Pool)在多模态场景下各自存在严重缺陷:SeqResize 存在建模失败,大量 token 在交互中从未被使用;MemTok 的架构导致信息坍缩,过度平滑了不同语义;H-Pool 虽然能去除冗余,但贪心迭代合并容易被噪声异常值误导。

本文的目标是本文的目标是在固定向量预算 $m$ 下,学习查询无关(query-agnostic)的紧凑多向量多模态文档表示,使索引存储和查询时成本可控且可按需定制,同时保留迟交互细粒度匹配的优势。具体来说,作者希望找到一种压缩映射 $\pi: d \mapsto C = \{c_1, \ldots, c_m\} \in \mathbb{R}^{m \times h}$,使得相关性评分函数 $S(Q, C)$ 在压缩后仍能正确区分相关和不相关的文档。

与已有工作不同的是,现有的 token 压缩方法主要针对生成任务(如 KV 缓存驱逐),优化的是保留全局「gist」信息,但检索需要的是区分硬负例和正例的判别性细节。此外,这些方法通常需要查询信息才能确定保留哪些 token(查询感知),与检索索引的「文档表示必须在查询之前计算」这一约束不兼容。在查询无关的方法中,尚无方法能同时兼顾:(1)利用注意力机制识别语义显著区域,(2)通过聚类减少冗余,(3)通过加权聚合平衡离散分配与连续优化。本文正是从这三个维度的结合出发设计了 AGC。

核心方法

本文的整体思路是:在多模态迟交互检索中,固定文档表示的向量数量为 $m$(不随原始文档长度变化),然后设计压缩映射 $\pi$ 将任意长度的文档映射到这个固定预算下。作者首先将三种已有的文本域压缩方法适配到多模态场景:SeqResize(通过 MLP 投影降维)、MemTok(附加可学习记忆 token)和 H-Pool(层次化聚类合并)。在此基础上,作者发现这三种方法在多模态数据下各自有致命缺陷,因此提出了 AGC(Attention-Guided Clustering)。AGC 的直觉是:与其像 H-Pool 那样仅根据几何距离盲目合并,不如先用「注意力探针」找到文档中最值得保留的区域,再围绕这些区域进行聚类和加权聚合。这就像先确定一篇论文中哪些段落最关键,然后把相关段落归并到关键段落下。

AGC 的核心创新在于将「注意力机制」引入到聚类过程中,具体体现为三个层次的区别:(1)质心选择方面,AGC 不依赖几何距离的贪心合并(H-Pool),也不依赖可学习 token 的隐式聚合(MemTok),而是通过附加可学习的通用查询 token,利用双向注意力权重显式地识别文档中语义最显著的 token 作为聚类质心;(2)聚类方面,AGC 使用硬分配(hard assignment)而非完全软操作,确保不同语义概念在潜空间中保持分离,避免 MemTok 的过度平滑问题;(3)聚合方面,AGC 使用注意力显著性分数 $\alpha$ 作为加权平均的权重,区分信号和冗余,而非像 H-Pool 那样等权合并。这使得 AGC 既保留了判别性细节,又去除了冗余信息。

方法步骤详情

AGC 的完整流程分为三步。第一步,注意力选择质心:将可学习的通用查询 token $X_\Psi \in \mathbb{R}^{|\Psi| \times h}$ 附加到文档 token $X$ 之后,通过 $L$ 层双向 Transformer 编码器 $F_{\text{enc}}$ 得到最后一层隐状态 $Z^{(L)} = [Z_X^{(L)}, Z_\Psi^{(L)}]$。然后,计算每个文档 token 的显著性分数 $\alpha = \frac{1}{H \cdot |\Psi|} \sum_{i \in \Psi} \sum_{\eta=1}^{H} \text{Attn}^{(L,\eta)}_i$,其中 $H$ 是注意力头数。选取显著性最高的 $m$ 个 token 的索引 $I$,其对应的隐状态作为聚类质心 $M = \{\mu_k\}_{k=1}^m$。第二步,硬聚类:将每个文档 token 分配到余弦相似度最高的质心,即 $G_k = \{j \in \{1,\ldots,n\} : k = \arg\max_{k'} \cos(Z_{X,j}^{(L)}, \mu_{k'})\}$。第三步,加权聚合:对每个聚类 $G_k$,计算加权平均 $c_k = \frac{\sum_{j \in G_k} \alpha_j Z_{X,j}^{(L)}}{\sum_{j \in G_k} \alpha_j}$,得到最终的压缩表示 $C = [c_1, \ldots, c_m]$。虽然聚类操作是离散的(硬分配),但加权聚合保持了连续性,梯度可以回传到特征编码器。

技术新颖性

AGC 的技术新颖性主要体现在以下几个方面:(1)首次将注意力引导机制引入到多向量索引压缩的聚类过程中,不同于传统的层次聚类仅依赖局部几何距离,AGC 的质心选择是全局语义驱动的;(2)通用查询 token 的设计使得压缩过程可以利用 Transformer 的注意力机制来评估 token 重要性,而这在检索场景中是查询无关的——这些 token 在索引时就已完成工作,不需要实际查询;(3)硬分配与加权聚合的结合解决了连续优化和离散结构之间的矛盾:硬聚类确保语义分离(不同于 MemTok 的软聚合导致坍缩),加权聚合保证梯度连续流动(不同于纯硬操作导致的优化困难);(4)作者还发现压缩训练本身可以提升性能(AGC 在 MSR-VTT 上的 R@1 甚至超过了未压缩基线),揭示了多模态数据中存在大量语义冗余,压缩实际上在去噪。

Overview of multi-vector index compression techniques
Figure 2: Overview of multi-vector index compression techniques
Index utilization and inter-position similarity analysis on MSR-VTT
Figure 3: Index utilization and inter-position similarity analysis on MSR-VTT

实验结果

本文在四个基准(BEIR、ViDoRe v2、MSR-VTT、MultiVENT 2.0)和三种模态(文本、视觉文档、视频)上进行了全面实验。核心发现如下:(1)AGC 在所有模态上一致优于其他压缩方法,在 nDCG@10 上平均保持了未压缩基线的 97%。(2)在 MSR-VTT 上,AGC 在预算为 32 时达到了 R@1=56.9,超过了未压缩基线的 55.7(102.1%),同时在预算为 5(99.62% 压缩率)时仍保持 R@1=53.9,优于 OmniEmbed-7B 的 51.5。这表明压缩不仅不是损失,反而可以通过去除冗余和噪声提升性能。(3)在 BEIR 文本检索上(预算 32,约 80% 压缩率),AGC 和 MemTok 表现接近,均保持约 97% 的基线性能。(4)在 ViDoRe v2 上,AGC(nDCG@5=56.7)和 H-Pool(56.4)显著优于 SeqResize(51.7)和 MemTok(54.3),但 AGC 在不同领域上更稳定。(5)在 MultiVENT 2.0 上,由于无法为未压缩模型建立索引(隐维度 2048 导致存储过大),AGC 达到 R@10=49.6,证明了压缩对于大规模多模态索引的必要性。(6)作者发现未压缩基模型仅使用约 1% 的索引 token,前 2% 的 token 主导了迟交互匹配。(7)消融实验证明 AGC 的三个组件均有贡献:移除注意力权重导致 R@1 从 56.9 降到 55.7,移除注意力选择降到 54.1,移除聚类降到 52.9。(8)AGC 具有良好的压缩率可迁移性——在预算 32 上训练的模型可以直接用于预算 5 和 128 的测试,性能接近专门为该预算训练的模型。

nDCG@5 breakdown by domain on ViDoRe v2 for the multilingual subsets
Table 3: nDCG@5 breakdown by domain on ViDoRe v2 for the multilingual subsets
Retrieval performance metrics of AGC across varying budgets and appending tokens on MSR-VTT
Table 5: Retrieval performance metrics of AGC across varying budgets and appending tokens on MSR-VTT
查看结构化数据
任务指标本文基线提升
MSR-VTT (视频检索) R@1 56.9 (AGC, budget=32) 55.7 (未压缩基线, 1318 tokens) +2.1%, 压缩率97.6%下超越未压缩基线
MSR-VTT (视频检索) nDCG@10 71.5 (AGC, budget=32) 71.9 (未压缩基线) 99.2% of baseline
ViDoRe v2 (视觉文档检索) nDCG@5 56.7 (AGC, budget=64) 60.0 (未压缩基线, 1297 tokens) 94.5% of baseline
BEIR (文本检索, 平均) nDCG@10 45.0 (AGC, budget=32) 46.2 (未压缩基线) 97.4% of baseline
MultiVENT 2.0 (音视频检索) nDCG@10 46.3 (AGC, budget=64) 无法构建 (隐维度2048导致存储过大) 基线不可用,AGC是唯一可运行的方法

局限与改进

本文的局限性包括以下几个方面:(1)训练规模有限——MSR-VTT 仅使用 9K 训练样本训练 2 个 epoch,ViDoRe 使用 ColPali 训练集,与 MetaEmbed 的比较仅为其 1/201 的训练规模,更大规模训练可能带来更多提升。(2)音频处理瓶颈——在 MultiVENT 2.0 上,Qwen-Omni 模型的音频采样效率低下,需要从 16KHz 降至 4KHz 才能适应设备限制,低于 4KHz 的采样率会降低语音可懂度,这限制了音视频检索的效果。(3)静态预算分配——当前的压缩预算 $m$ 是静态固定的或在 H-Pool 中线性分配的,不同信息密度的文档使用相同数量的 token,可能不是最优策略。作者也承认,未来的压缩机制应根据文档固有的信息内容按比例分配预算。(4)ViDoRe 未压缩索引无法构建——由于隐维度 2048 和每文档超过 1000 个 token 的组合,未压缩表示无法放入 FastPlaid 索引,只能使用暴力搜索的平面索引进行比较,影响了公平性。(5)索引利用相关性分析仅使用了 5 个样本计算 Pearson 相关,更大规模的验证尚需进一步探索。(6)消融实验中各组件是单独移除而非顺序移除的,无法完全量化各组件的交互效应。

独立分析的弱点

(1)SeqResize 在多模态数据上的建模失败问题:实验发现 SeqResize 在不同压缩率下性能几乎不变(Table 4),且在索引利用率分析中仅使用了极少数 token,这些未使用的 token 表现出负余弦相似度(不应出现于同一文档的 token 之间),表明 MLP 投影在多模态场景下存在严重的表征退化。改进方向:可以考虑使用更复杂的投影架构(如交叉注意力机制)替代简单 MLP,或引入正则化约束保证投影后 token 的一致性。(2)MemTok 的信息坍缩:热力图分析显示 MemTok 生成的 token 之间高度相似,缺乏多样性,这是因为记忆 token 通过全局注意力聚合信息时自然趋于平滑。改进方向:可以引入多样性正则化损失,或在记忆 token 之间增加对比学习目标。(3)H-Pool 对噪声敏感:多模态数据中的静音段、静态背景等语义空信号会干扰 Ward 层次合并,导致噪声 token 被错误地与信息 token 合并。改进方向:可以在合并前先进行基于注意力权重的 token 预筛选。(4)AGC 的计算开销:相比 H-Pool 的纯后处理,AGC 需要训练额外的通用查询 token 并在整个编码过程中参与注意力计算,增加了训练成本。改进方向:可以探索轻量级的注意力近似或知识蒸馏方法。

未来方向

作者在结论中明确提出了未来研究方向:(1)动态预算分配——开发按文档信息内容按比例分配压缩预算的机制,可以利用本文发现的 token 利用率等轻量特征来校准压缩程度,避免对高信息密度文档过度压缩或对低信息密度文档预算浪费。(2)更高效地传递音视频信号——MultiVENT 2.0 实验暴露了 Qwen-Omni 模型在音频处理上的瓶颈,未来可以探索更高效的音频编码和传递方式,如分层音频采样或模态自适应的 token 分配。(3)更大规模训练——当前实验规模有限(MSR-VTT 仅 9K 训练样本),在更大规模的多模态数据上训练可能进一步提升 AGC 的性能和泛化能力。(4)自适应压缩——基于作者发现的「索引利用率与检索性能高度相关」(Pearson r 达 0.996),可以设计在线自适应压缩策略,在索引构建时根据 token 利用率预测动态调整压缩率。(5)与其他压缩技术的结合——AGC 专注于序列维度压缩,未来可以将其与量化(如 4-bit residual)、维度降维等技术结合,实现多维度的联合压缩。

复现评估

本文的复现条件较好:(1)源代码已在 GitHub 开源(github.com/hanxiangqin/omni-col-press),提供了完整实现。(2)使用的所有数据集(BEIR、ViDoRe v2、MSR-VTT、MultiVENT 2.0)均为公开可获取的标准基准。(3)基于的预训练模型也是公开的:gte-modernbert-base(BEIR 基础)、Qwen2.5-VL-3B/7B 和 Qwen3-VL-4B(ViDoRe 和 MSR-VTT)、Qwen2.5-Omni-3B(MultiVENT 2.0)。(4)训练配置明确——MSR-VTT 使用 28 的 batch size、2 个 epoch、学习率 $10^{-5}$、bfloat16 精度,可在单机多 GPU 环境下复现。(5)索引构建使用 FastPlaid 引擎(也是开源的),4-bit residuals。(6)但需注意:MultiVENT 2.0 上的完整未压缩索引由于存储过大无法构建(隐维度 2048),部分对比实验需要较大 GPU 显存;MSR-VTT 的详细结果依赖于特定的 flat index 实现。总体而言,复现难度中等,算力需求适中(3B 模型为主),数据和代码均公开。