← 返回 2026-03-09

超越网格:基于解析的视觉文档多向量检索(ColParse) Beyond the Grid: Layout-Informed Multi-Vector Retrieval with Parsed Visual Document Representations

Yibo Yan, Mingdong Ou, Yi Cao, Xin Zou, Shuliang Liu, Jiahao Huo, Yu Huang, James Kwok, Xuming Hu 📅 2026-03-02 👍 1 2026-07-13 08:35
信息瓶颈 多向量检索 文档解析 表示学习 视觉文档检索

用文档解析做多向量检索,存储减 95% 性能反升 10 分

前置知识

Visual Document Retrieval (VDR)

视觉文档检索是从大规模文档图像语料中根据文本查询返回相关页面的任务。文档页面通常包含密集的文本、表格、图表和复杂版面(如学术论文、财务报告、发票),需要模型同时理解文字语义和版面结构。

本文研究对象就是 VDR,需要理解 VDR 与自然图像检索的本质差异(版面结构而非视觉对象)才能理解为什么多向量表示在该任务中重要。

多向量检索(Multi-Vector / Late Interaction)

以 ColBERT 为代表,将文档表示为一组 token 级或 patch 级向量,查询时通过 MaxSim 等后交互算子计算相关性:$s(q,d)=\sum_i \max_j (q_i^\top d_j)$。在 VDR 中由 ColPali 引入,文档被切成数百至上千个 patch 向量。

理解多向量范式的存储瓶颈($O(N_p \times D)$)是看懂本文动机的关键;ColParse 正是要解决这个瓶颈。

MaxSim 算子

MaxSim 是多向量检索的核心打分机制:对每个查询 token $q_i$,在所有文档向量 $d_j$ 上做内积并取最大值,再对查询维度求和。它能实现细粒度的局部对齐,是 ColBERT/ColPali 类模型高效的关键。

ColParse 保留了 MaxSim 机制,但搜索空间从 $N_p$ 个网格向量压缩到 $k<10$ 个布局感知向量,是理解其效率提升的核心。

文档解析 VLM(Document Parsing VLM)

将文档图像转换为结构化格式(Markdown、LaTeX、HTML)的模型,典型如 MinerU2.5、Dolphin、MonkeyOCR。它先做版面分析识别区域类别(标题/表格/图/段落)和边界框,再对各区域做高分辨率识别。

ColParse 把文档解析当作'版面检测器'用,只取其输出的边界框和类别标签,不依赖其识别出的文字内容,是把 OCR 工具重新定位为版面感知组件的关键技巧。

信息瓶颈(Information Bottleneck, IB)

信息瓶颈是表示学习的经典框架,目标是最小化压缩后表示 $Z$ 与输入 $D$ 的互信息 $I(Z;D)$,同时最大化 $Z$ 与目标 $R$ 的互信息 $I(Z;R)$,其 Lagrangian 为 $\min I(Z;D) - \beta I(Z;R)$。

本文从 IB 视角为 ColParse 提供理论支撑:把文档拆成 $k$ 个语义区域相当于把单变量压缩问题分解为 $k$ 个并行子问题,再通过全局上下文融合补充条件信息。

研究动机

当前 Visual Document Retrieval 的主流方案是基于 ColPali 的多向量范式:把每页文档均匀切成网格,用 VLM 编码为 $N_p$ 个 patch 向量(通常几百到上千个),再用 MaxSim 做后交互。这种范式在 ViDoRe、VisRAG 等基准上效果远超单向量模型,但带来了严重的存储瓶颈——单页需要 $O(N_p \times D)$ 的存储开销,在百万页语料上根本无法实用化。论文用 ColQwen 为例:每页要存 768 个向量,部署成本极高。社区此前探索了三类压缩路径:(1)剪枝类(DocPruner)通过文档内注意力打分丢弃冗余向量,但在激进压缩率下性能崩塌;(2)合并类(Light-ColPali/ColQwen)用聚类把相似 patch 合并,但稀释了细粒度对齐信息;(3)抽象 token 类(MetaEmbed、CausalEmbed)引入可学习的隐式 token 代替 patch,但这些 token 缺乏对文档天然版面结构的显式 grounding,无法捕获关键的版面语义。

本文的目标是本文目标是把多向量 VDR 的存储开销降低一个数量级(论文目标 ≥95% 压缩率),同时不损失甚至提升检索性能。具体来说,作者希望构造一个『布局感知的多向量表示』 $D_{ColParse}=\{d_{fused}^{(j)}\}_{j=1}^{k}$,其中 $k \ll N_p$(通常 $k<10$),每个向量既编码细粒度的版面组件语义(表格、图、段落),又融合了整页的全局上下文,使 MaxSim 仍能高效工作。

与已有工作不同的是,现有方案的根本问题是忽略了文档图像天然具有『分块结构』这一先验。论文的独特定切入角度是:与其在 VLM 输出端的连续 patch 空间做后处理(剪枝/合并/插入隐式 token),不如利用已经成熟的文档解析模型,把解析器的版面检测结果当作硬性结构先验——把页面按内容类型(标题/表格/图/段落)切成 $k$ 个语义子图,再分别编码。这一思路把 OCR-style 的文档解析工具重新定位为『版面检测器』,是论文的核心 insight。理论上,作者从 Information Bottleneck 视角出发,提出『语义集中公理』(Semantic Concentration Axiom):对任意查询,文档的相关性主要由某一主要语义区域决定,其他区域近似条件独立,由此把 IB 压缩问题从单变量分解为 $k$ 个并行子问题。实证上,作者在 5 个 VDR 基准套件、24 个数据集、10 个主流单向量模型上验证 ColParse 都能即插即用、稳定提点。

核心方法

ColParse 的整体思路是『用版面结构重写多向量表示的构造过程』,从而在不改变 MaxSim 推理流程的前提下,把向量数从上千降到个位。直觉上:既然论文、报告、表格等文档天然就是由标题、段落、图表、表格等独立语义组件拼成的,那就不该让模型去学——直接用现成的文档解析器把这些组件裁出来,单独编码即可。具体技术路线分三步:第一步用文档解析模型(作者选用 MinerU2.5)做版面感知分块,把每页切成 $k$ 个带语义标签的子图;第二步用同一个单向量检索模型对 $k$ 个子图分别编码得到局部向量,同时对整页编码得到全局向量;第三步通过加权逐元素加法把全局向量融进每个局部向量,得到 $k$ 个『既懂局部又懂全局』的融合向量,存下来做 MaxSim。整个流程是 training-free、plug-and-play 的,不修改 base encoder 也不需要额外训练。

和已有方法相比,ColParse 的本质区别在于『硬性版面先验 vs 后验 token 操作』:DocPruner/Light-ColPali/MetaEmbed 都是在 VLM 输出端的连续向量空间做软操作(剪枝/聚类/隐式 token),保留了 patch 的连续网格结构;ColParse 则跳到输入端的离散版面空间,用文档解析模型的硬性边界框把页面切成视觉上完整、语义上独立的子图。这带来三个本质差异:(1)保留了视觉-语义对齐——子图内部是完整的图表或表格,视觉编码器能直接读取,避免了 token 切碎带来的语义稀释;(2)天然可解释——检索结果可以反向追溯到具体的版面组件(某个表格、某段文字),作者在 Figure 8 的案例中清晰展示了这一点;(3)真正解决『小 $k$』问题——$k<10$ 是因为页面里独立语义组件就这么多,不是靠聚类强行压缩得到。

方法步骤详情

ColParse 的离线流水线对每页文档图像 $d \in \mathbb{R}^{H\times W \times 3}$ 分三步处理。步骤一:版面感知文档解析(Layout-Informed Document Parsing)。输入是页面图像,调用现成文档解析模型 $\Psi_{parse}(\cdot)$(作者用 MinerU2.5),输出 $k$ 个布局区域 $[\{b_j, c_j\}_{j=1}^k]$,其中 $b_j=(x_{j1},y_{j1},x_{j2},y_{j2})$ 是边界框、$c_j$ 是内容类别('title'/'table'/'figure'/'text' 等),然后用边界框裁出 $k$ 个子图 $S_d = \{s_1,\ldots,s_k\}$,每个 $s_j \in \mathbb{R}^{H_j \times W_j \times 3}$,$k$ 由解析器根据页面复杂度动态决定(典型 $k<10$)。步骤二:双流编码(Dual-Stream Encoding)。输入是同一组 $S_d$ 和整页 $d$,调用同一个单向量编码器 $\Phi_{enc}: \mathbb{R}^{H'\times W'\times 3} \to \mathbb{R}^D$ 做两路并行:局部流把每个 $s_j$ 独立编码得到 $v_{local}^{(j)} \in \mathbb{R}^D$,全局流把整页 $d$ 编码得到 $v_{global} \in \mathbb{R}^D$,两路共用同一个 encoder,不引入额外参数。步骤三:全局-局部融合(Global-Local Fusion)。对每个 $j\in\{1,\ldots,k\}$,按公式 $d_{fused}^{(j)} = \alpha \cdot v_{global} + (1-\alpha) \cdot v_{local}^{(j)}$ 做加权逐元素加法,$\alpha \in [0,1]$ 是平衡因子,最终存 $D_{ColParse}=\{d_{fused}^{(j)}\}_{j=1}^k \in \mathbb{R}^{k\times D}$。在线推理时,查询 $q$ 按标准方式编码为 $Q=\{q_i\}_{i=1}^{N_q}$,用 ColParse-MaxSim 打分 $s_{ColParse}(q,d) = \sum_i \max_j (q_i^\top d_{fused}^{(j)})$,搜索空间从 $N_p$ 降到 $k$,存储减少 $95\%+ $。$\alpha$ 的最优值在 $[0.6, 0.8]$ 区间(Figure 6),说明适度偏全局融合最有效。

技术新颖性

技术新颖性体现在三个层面。第一,输入空间重新设计:把文档解析模型从 OCR 工具重新定位为版面检测器,只用其边界框和类别标签,抛弃识别出的文字内容,是一种『任务无关的版面特征提取器』新用法。第二,理论框架:用 Information Bottleneck 视角给出了 $k$ 为什么可以这么小的非平凡解释——提出『语义集中公理』$I(D;R) \approx I(S_{j^*};R)$,把单变量压缩问题分解为 $k$ 个并行子问题,并用 Data Processing Inequality 分析全局-局部融合的信息增益 $\Delta I_j = I(Z_j;R) - I(V_j;R) > 0$,这是已有剪枝/合并/隐式 token 方法都没提供的理论分析。第三,融合机制的『参数免费』:$\alpha \cdot v_{global} + (1-\alpha) \cdot v_{local}$ 的加法融合没有可训练参数,但作者在 Figure 5 变体研究里证明它显著优于『附加式』s2m-g-i(把全局向量作为一个独立向量加到集合里),说明元素级加法起到了『深度上下文条件化』的作用,是比简单拼接更紧的融合机制。整体上,ColParse 把『结构化表示 + 经典检索算子』做到了工程和理论的双重闭环。

The simplified illustration of ColParse framework.
Figure 3: The simplified illustration of ColParse framework.
Comparison of MinerU2.5 against its counterparts. The y-axis represents the overall score of OmniDocBench, the x-axis shows end-to-end throughput (Pages/Sec), and bubble size indicates the parameter size.
Figure 7: Comparison of MinerU2.5 against its counterparts. The y-axis represents the overall score of OmniDocBench, the x-axis shows end-to-end throughput (Pages/Sec), and bubble size indicates the parameter size.

实验结果

实验在 5 个 VDR 基准(ViDoRe-V1、ViDoRe-V2、VisRAG、ViDoSeek、MMLongBench,共 24 数据集)上、10 个单向量 base 模型上系统评估,核心发现可分四块。第一,存储与性能双赢(Table 1):以 GME-7B 为 base,ColParse 把 MMEB-visdoc 总体分从 79.50 提到 80.61(+1.11),但每页向量数从 1 增到 5.9、延迟从 0.30s 增到 0.81s;对照 ColQwen*(768 向量)总分 80.02,ColParse 用 1.3% 的存储量达到并超过其精度,存储减少超过 99%。第二,跨模型普适性(Figure 4):在 VLM2Vec-V1-2B/7B、VLM2Vec-V2-2B、UniME-V2-2B/7B、GME-2B/7B、B3-2B/7B、LamRA-Ret 等 10 个模型上 ColParse 都稳定提点,平均 nDCG@5 增益在 ViDoRe-V1 上 VLM2Vec-V1-2B +31.64 分、VLM2Vec-V1-7B +42.69 分,红色 envelope 始终位于最外层。第三,融合机制关键(Figure 5):s2m-g-i(仅附加全局向量)变体在所有 10 个模型和基准上都明显劣于 ColParse,例如 VLM2Vec-V1-2B 在 ViDoRe-V1 上 ColParse 比 s2m-g-i 高 2.44 分,说明元素级加法不是简单组合而是深度条件化。第四,超参数鲁棒性(Figure 6):在 $\alpha \in [0.1, 0.9]$ 整个区间都超过 base 线,最低 $\alpha=0.1$ 时 VLM2Vec-V1-2B 也有 35.97 vs base 31.18,最优点通常落在 $[0.6, 0.8]$,例如 B3-7B 从 $\alpha=0.1$ 的 62.09 单调上升到 $\alpha=0.7$ 的 68.51 后回落。第五,解析器选择(Figure 7):MinerU2.5 在 OmniDocBench 上 Overall 90.67(text error 0.047、reading order 0.044),吞吐量 2.25 pages/sec,比 MonkeyOCR-pro-3B(88.85)和 Nanonets-OCR-s(0.55 pages/sec)更优,处于 Pareto 前沿。第六,案例可解释性(Figure 8):查询『2023 vs 2022 碳排放下降百分比』被准确路由到包含数字的纯文本子向量 #10,可视化展示子图级的命中位置,这是 token 级方法天然缺失的能力。

Efficiency analysis of ColParse on the best performing model GME-7B and its multi-vector counterpart.
Table 1: Efficiency analysis of ColParse on the best performing model GME-7B and its multi-vector counterpart.
The performance comparison (evaluated by nDCG@5) between ColParse and baselines on five VDR benchmarks across ten mainstream single-vector multimodal retrieval models.
Figure 4: The performance comparison (evaluated by nDCG@5) between ColParse and baselines on five VDR benchmarks across ten mainstream single-vector multimodal retrieval models.
Variant study of ColParse and its variants.
Figure 5: Variant study of ColParse and its variants.
The comparison of the average performance of ColParse across different balancing factors.
Figure 6: The comparison of the average performance of ColParse across different balancing factors.
The illustration of a representative case.
Figure 8: The illustration of a representative case.
Radar plots comparing ColParse with s2m-g-i variant on each base model.
Figure 9: Radar plots comparing ColParse with s2m-g-i variant on each base model.
Model-level comparisons of ColParse across different balancing factors.
Figure 10: Model-level comparisons of ColParse across different balancing factors.
查看结构化数据
任务指标本文基线提升
MMLongBench(长文档多跳检索) nDCG@5 32.07 (VLM2Vec-V1-2B), 44.21 (UniME-V2-2B) 25.93 (VLM2Vec-V1-2B), 29.31 (UniME-V2-2B) VLM2Vec-V1-2B +6.14, UniME-V2-2B +14.90;增益尤其显著,验证版面切分在多跳推理场景降低信噪比
ViDoRe-V1(综合 VDR) nDCG@5 VLM2Vec-V1-2B +31.64 分, VLM2Vec-V1-7B +42.69 分(平均增益) 原单向量 base 性能 红色 envelope 始终最外层;GME-7B 上 ColParse 让 base 提升 1.11 分,而 c-sem 让 GME-7B 从 89.36 暴跌到 23.21
VisRAG(密集检索任务) nDCG@5 51.96 (VLM2Vec-V1-2B + ColParse) 38.94 (VLM2Vec-V1-2B + s2m-add) +13.02;7B 模型上 ColParse 领先 s2m-g-i 2 分以上,密集版面最受益
MMEB-visdoc 整体分(效率分析对照) Overall Score 80.61 (GME-7B + ColParse), 5.9 vec/page, 0.81s 79.50 (GME-7B base, 1 vec/page, 0.30s); 80.02 (ColQwen*, 768 vec/page, 0.41s) vs base +1.11 分; vs ColQwen* +0.59 分但存储减少 99.2%
OmniDocBench(文档解析器选型) Overall Score 90.67 (MinerU2.5), 2.25 pages/sec 88.85 (MonkeyOCR-pro-3B), 0.55 pages/sec (Nanonets-OCR-s) 解析精度 SOTA 同时吞吐量比对比模型高 4×

局限与改进

作者明确承认的局限主要有两个:(1)对解析器质量的依赖——ColParse 的版面切分完全由 MinerU2.5 决定,解析器漏掉的区域会直接丢失(Figure 7 显示即使 SOTA 也有 text error 0.047、reading order 0.044),扫描质量差、版式罕见(手写笔记、漫画、多语种竖排)的文档可能解析失败;(2)$\alpha$ 需逐模型调优——虽然 0.1–0.9 区间都过 base 线,但最优值跨模型不一致(VLM2Vec-V1-2B 一个最优点、B3-7B 另一个最优点),缺自适应机制。从我观察还有几个隐含局限:(3)离线管线开销——每页都要先跑一遍文档解析再做视觉编码,即使 MinerU2.5 有 2.25 pages/sec 的吞吐量,对百万页级语料仍然可观;(4)跨页证据——多向量天然不能跨页融合,对需要拼接多页上下文的问题(如 MMLongBench 内的某些 query)仍受限于单页 $k$ 个向量;(5)$k$ 动态但不可控——$k$ 由解析器决定,理论上 1–2 个组件的极简页面会过度合并、超复杂页面会切碎,缺少对 $k$ 的显式约束;(6)向量加法融合的假设——$\alpha \cdot v_{global} + (1-\alpha) \cdot v_{local}$ 假设两个向量在同一个语义空间且可线性组合,但 base encoder 没有显式保证这一点,存在过简化的可能。

独立分析的弱点

从独立分析视角,ColParse 还有几个可改进的弱点。第一,$\alpha$ 调参开销:Figure 6 表明最优 $\alpha$ 跨模型不一致(0.1 到 0.9 都有),意味着每接入一个新 base model 都要扫一次 $\alpha$,违反『plug-and-play』的初衷;改进方向是用一个轻量级门控网络 $g(v_{local}, v_{global}) \to \alpha$ 自动学习权重,或者用 KL 散度对齐两端分布后做可学习加权。第二,文档解析是串行瓶颈:每页必须先解析再编码,无法跳过;当 MinerU2.5 在某个版式上失败时整个流程降级;改进方向是引入解析质量估计器,对低置信度页面自动回退到 ColPali 网格方案,或训练多解析器集成(投票选区域)。第三,加法融合假设过强:$\alpha \cdot v_{global} + (1-\alpha) \cdot v_{local}$ 隐含假设两向量在同空间可线性组合,但论文没做对齐分析;改进方向是先做一次 LayerNorm 或可学习仿射对齐 $W_\alpha \cdot v_{global}$ 再相加,或换成 cross-attention 让局部向量查询全局上下文。第四,$k$ 不可控:$k$ 由解析器决定对长尾版式不鲁棒,缺少约束;改进方向是设 $k_{min}$ 和 $k_{max}$ 阈值,过少则按版面类型强制再切,过多则按语义相似度合并。第五,离线-在线割裂:当前解析和编码串行,延迟翻倍;改进方向是用一个端到端模型直接输出 $k$ 个子图向量,把版面检测当作自监督辅助任务。

未来方向

作者在结论中提到 ColParse 『为多向量 VDR 建立了新的性能-效率权衡』,但没给出明确下一步。基于本文成果,有几条值得延伸的方向。第一,多模态查询扩展:当前 query 仍是纯文本,可以扩展到图文混合 query(如『找包含这张示意图的页』),把 query 也做版面解析后做多对多 MaxSim。第二,跨页融合:ColParse 当前每页独立,把『跨页』作为额外超结构,做页面级版面图(page graph)后用 GNN 融合跨页子图向量,应对真正的长文档检索。第三,解析器微调:把 MinerU2.5 的版面检测当作可微模块,与下游检索任务联合训练(detached forward + straight-through gradient),让解析器知道『哪些区域对检索有用』,而非纯 OCR 优化。第四,自适应 $\alpha$ 与动态 $k$:用检索 loss 反向传播学习一个轻量级控制器,输入是 query 类型,输出是 $(\alpha, k)$,让同一文档在不同 query 下采用不同融合强度和粒度。第五,结合隐式 token:ColParse 的硬性版面和 MetaEmbed 的软性隐式 token 各有优势,可以做混合表示——版面区域 + 1–2 个全局可学习 token,兼顾可解释性和灵活性。第六,工业部署研究:作者只在 80G A100 上实验,对 GPU 显存、CPU 推理、向量数据库(Milvus/Qdrant)的工程化适配未涉及,是落地必经环节。

复现评估

复现评估:作者明确说『完整代码将在论文接收后公开』(Section 4.1),所以当前是承诺开源状态,实际拿不到代码。依赖方面:(1)base encoder 是 VLM2Vec-V1-2B/7B、VLM2Vec-V2-2B、UniME-V2-2B/7B、GME-2B/7B、B3-2B/7B、LamRA-Ret,权重均可从 HuggingFace 公开下载;(2)文档解析器 MinerU2.5 来自 OpenDataLab 仓库(github.com/opendatalab/MinerU),同样开源;(3)评测基于 MMEB codebase(github.com/TIGER-AI-Lab/MMEB),24 个 VDR 数据集由该仓库统一管理。算力:作者用 A100 (80G) 集群;MinerU2.5 跑 2.25 pages/sec,按 5.9 vec/page 编码 0.81s/页估算,百万页约需 60 GPU-day,门槛中等。复现难度中等偏上:管线分三步(解析→编码→融合),每步都要正确处理边界框对齐、归一化、$\alpha$ 调参,工程化细节多;但因为是 training-free、不涉及训练超参搜索,跑通主线结果相对直接。最大不确定性是 $\alpha$ 的逐模型搜索(Figure 10 在附录)和对个别数据集的 fine-tuned 值。