MarginMerge 砍九成向量,视觉文档检索保住 97% 质量

Coverage Matters: MarginMerge for Compressing Multi-Vector Visual Document Retrievers

Ailar Mahdizadeh, Aria Salari, Sohail Rajabi, Shahriar Mirabbasi, Panos Nasiopoulos, Alireza Morsali

cs.IR

2026-08-04

ColPali/ColQwen 这类多向量视觉文档检索器为每页存大量 patch 向量,索引大、MaxSim 打分贵。MarginMerge 是冻结模型的事后压缩法:选覆盖互补区域的锚点、聚簇、用 1057 参数小网为每簇合成一个代表向量,索引时压一次、检索沿用标准 MaxSim。六数据集上 5%/10% 保留率保住 97%~99% 平均 nDCG@5,排序翻转比几何合并少约 41%。

这篇在解决什么

ColPali、ColQwen 这类视觉文档检索器直接对渲染好的页面图像做检索,绕开 OCR。它们为每页存一堆细粒度的 patch 向量,检索时用 MaxSim(ColBERT 式晚交互)把查询 token 和文档 patch 一一比对。这种多向量表示是它准的原因——不同的查询词能从页面不同区域(文字段、表格、图、版式)各取所需。但每页几百上千个向量,索引和检索成本都跟着膨胀。

压缩的难处在于:简单粗暴地裁向量,可能正好裁掉晚交互赖以准确的那块证据。核心问题是建一个紧凑的多向量表示,同时保住原始模型的检索行为。

方法

论文给出的关键判断是「查询相关覆盖率」:压缩不该按单个 patch 的显著性独立挑选,而该保住那些「可能在不同查询下成为最强 MaxSim 匹配」的互补区域。这个视角也解释了为什么不同的内容类型压缩难度不同:密集渲染页(重复的字形、单元格、背景、版式)里很多 patch 互相可替代,好压;自然照片局部差异大,难压。

MarginMerge 是冻结模型的事后压缩法,三步。第一步,覆盖率感知锚点选择:用训练查询建一个 128 个「原型方向」的库(近似文档 patch 在检索时会遇到的查询方向),然后贪心地选 k 个锚点,使锚点集合 collectively 覆盖尽可能多的查询方向(而不是反复覆盖同一个方向)。这个目标是单调次模的,贪心法有 (1−1/e) 近似保证。第二步,把每个 patch 分到最近的锚点形成簇。第三步,学一个共享的小网(只有 1057 个参数,15→32→16→1)为每簇合成一个代表向量,它是簇内 patch 的凸组合,组合已有证据而非凭空生成 embedding。

训练用「排序边际蒸馏」:不是重建绝对检索分,而是保住正例与负例的分差(决定排序的那个 margin),用 Huber 损失,并对接近排序边界的对给更大权重。压缩只在离线索引时做一次,检索端存 k 个代表向量、沿用标准 MaxSim,既不要查询相关的压缩,也不改检索引擎。

结果

六个数据集(ArxivQA、DocVQA、InfoVQA、TAT-DQA、TabFQuad、Flickr),ColQwen2.5 和 ColPali 两个 backbone。5% 和 10% 保留率下,两个 backbone 上 MarginMerge 都拿到最高的查询无关平均分。

backbone(ColQwen2.5)5% 保留平均 nDCG@5
全量索引0.892
Light-ColPali(几何合并)0.839
MarginMerge0.865

相对同 backbone 的全量索引,它保住 97%99% 的平均 nDCG@5,同时存的向量减少 90%95%。5% 保留下,排序翻转比几何合并在 ColQwen2.5 全部六个数据集平均少约 41%。模型在 5% 保留率上训一次,直接复用到 10% 和 20% 不用重训;只在 ArxivQA、TabFQuad、Flickr 上训,其余零样本。

机制上有几个扎实发现:显著性裁剪(patch pruning)在未见查询上甚至不如随机保留,学习型选择器拟合了训练查询却留下相似 patch、漏掉互补区域;随机和 k-center 选择反而比按显著性强,说明保多样性比集中选「重要」patch 更关键。消融显示,学到的代表合成是主要增益来源,覆盖率锚点在聚合受限时才显出价值,分数重建和边际匹配表现相近。

为什么重要

对做文档检索、RAG 索引的工程师,这是把贵得多向量索引压到 1/101/20 存储而几乎不掉质量的实用办法,而且不动检索引擎、不依赖查询。覆盖率这个分析视角对设计任何多向量压缩都有指导意义:别想着挑单个重要 token,要保互补方向。

局限与存疑

作者承认几点:贪心锚点选择在索引时较慢(实现里每个 TAT-DQA 文档约 1.7 秒);论文报告的是向量保留率而非字节数,没和量化检索系统比完整搜索延迟;冗余度分析是观察性的、非因果,单文档统计是弱的预测器,只能当数据集级解释。

补一点:6 个数据集里有两个(InfoVQA、TabFQuad 5% 保留)MarginMerge 略低于几何合并(分别 −0.003、−0.009),优势不是在所有数据集所有设置上都成立。它的赢面集中在自然图像(Flickr 提升最大,5% 保留 +0.097)和零样本 DocVQA,主要靠「学习合成代表向量」取代「保留原始 patch」这一点。

术语

原文与代码

社区讨论

相关论文

全部论文解读