当前位置: 首页 > news >正文

上下文多模态文档检索开源思路-CMDR模型架构实现方法

现有多模态文档检索的两大缺陷:

  • Benchmark 层面:现有的多模态文档检索基准(如 SlideVQA、MMLongBench、ColPali/ViDoRe、VisR-Bench 等)都是【直接检索】——query 和目标 page 之间存在明显的词汇或语义匹配。忽略了真实文档中存在的:跨页依赖文档全局结构

  • 模型层面:ColPali、VisRAG、DSE、UniSE 等主流方法都是独立编码每一页,隐式假设"上下文对 embedding 无益"。但实际中:一个代词、一个缩写、一个表格续行的 header,可能只在别的页出现。

往期:

CMDR(Contextual Multimodal Document Retrieval)是一个新的多模态文档检索任务,要求系统在利用文档上下文的前提下,从多页文档(即一组有序的文档图像)中检索出相关页面。

  • 输入:queryqqq+ 多页文档D={I1,…,In}\mathcal{D} = \{I_1, \dots, I_n\}D={I1,,In}
  • 输出:top-kkkD+⊂D\mathcal{D}^+ \subset \mathcal{D}D+D,且k≪nk \ll nkn
  • 关键约束:识别D+\mathcal{D}^+D+必须依赖上下文页面推理,而不是仅看D+\mathcal{D}^+D+自身内容

下面主要看一下模型架构设计

模型架构:CMDR-Embed

总体思想是Chunk-then-Split(先联合编码,后拆分)

与 ColPali 最本质的区别:ColPali 等是每页独立过 LVLM,得到独立 embedding;CMDR-Embed连续多页当成一个 chunk 一起过 LVLM,token-level 表示自然带上跨页上下文;再按页边界切开,得到每页的 contextualized embedding。

Contextualized Multimodal Encoding(滑动窗口机制)

给定NNN页的文档{I1,…,IN}\{I_1, \ldots, I_N\}{I1,,IN}

  • stridesss、windowwww的滑动窗口
  • ttt个 chunk 是{Is(t−1)+1,…,Is(t−1)+w}\{I_{s(t-1)+1}, \ldots, I_{s(t-1)+w}\}{Is(t1)+1,,Is(t1)+w}
  • 每个 chunk 送进 LVLM → 得 token-level 表示 → 按页拆成EnI∈RNI×D\mathbf{E}^{\mathbf{I}}_n \in \mathbb{R}^{N^I \times D}EnIRNI×D
  • 当 chunks 重叠(s<ws < ws<w)时,同一页可能出现在多个 chunk:取更早那个 chunk 的表示(避免重复计算)
  • 最优配置:s=2,w=4s=2, w=4s=2,w=4(每个 chunk 4 页,每次滑 2 页,相邻 chunk 有 2 页重叠)

Q:为什么滑动窗口而不是全文档一次编码?
A:显存/算力限制 + 提高实用性;重叠又保证了 chunk 之间的信息交互。

Multimodal Late Interaction(LI,多向量检索)

沿用 ColBERT/ColPali 的多向量匹配方式(不用单向量 mean pooling):

LI(q,In)=∑i∈[1,Nq]max⁡j∈[1,NI]⟨Eqi,EnIj⟩ \mathbf{LI}(q, I_n) = \sum_{i \in [1, N^q]} \max_{j\in [1, N^I]} \langle\mathbf{E}^{\mathbf{q}_i},\mathbf{E}^{\mathbf{I}_j}_n\rangleLI(q,In)=i[1,Nq]j[1,NI]maxEqi,EnIj

即:query 的每个 token 找 page 中最相似的 token,取内积,再对所有 query token 求和。保留了 token 级细粒度,对文档检索(有图表、小文字、表格)尤其重要。


去掉 LI 改用 mean pooling + cosine,CMDR-Embed-Pali 直接掉26.5 分(49.8 → 23.3)。

训练目标:CMCL(Contextual Multimodal Contrastive Learning)

问题:联合编码带来的"信息泄漏",Chunk-then-split 会让同 chunk 内不同页的表示互相"污染"(因为它们过了同一次 attention),页级判别性下降 —— 邻近页面 embedding 变得太像,反而检索不出目标页。

解法:两种"上下文感知硬负例",

在标准 InfoNCE 基础上引入两类hard negative

硬负例类型定义直觉
In-Chunk NegativesIchunk\mathcal{I}_{\text{chunk}}Ichunk与正例同一 chunk 内的其他页当相似上下文出现在邻近页时最有效;防止相邻页 embedding 过于相似
In-Document NegativesIdoc\mathcal{I}_{\text{doc}}Idoc同一文档的其他 chunk当相似信息出现在远处页面时最有效;保持全文档判别性

短距离靠 in-chunk、长距离靠 in-doc。

CMCL Loss函数:

其中:

实验

参考文献

  • CMDR: Contextual Multimodal Document Retrieval,https://arxiv.org/abs/2607.05927v1
  • https://github.com/nttmdlab-nlp/CMDR-Bench
http://www.jsqmd.com/news/1171058/

相关文章:

  • 2026年7月12日成都钢材市场型材价格行情及市场分析 - 四川盛世钢联营销中心
  • 基于压电发声器与ARM MCU的智能警报系统设计
  • MongoDB 时区处理 3 种方案对比:客户端、聚合管道与视图转换
  • 双登蓄电池专业供应商选择:企业采购决策关键因素解析
  • 关于Xshell连接虚拟机Linux失败的主要原因
  • 树莓派Linux驱动开发实战:从GPIO到PWM与红外通信
  • SAP KO88 内部订单冲销结算:跨期间与同期间 2 种场景操作详解
  • 2026年7月最新唐山万国官方售后客服中心地址电话及服务网点分布 - 万国中国官方服务中心
  • 3个技巧深度掌握mootdx:A股数据获取终极指南
  • Unity宏定义高级用法:模块开关、调试工具与自动化构建实战
  • AI智能体工作流编排:从Fable 5到模型路由的实践指南
  • 初始Eino框架----相关组件的介绍
  • 华为/H3C/锐捷/思科 4厂商流量统计配置对比:3种实现原理与5个关键差异点
  • 金仓数据库高可用集群部署实战:主备同步与故障自动切换
  • 深度解析PDF补丁丁:如何实现高效PDF文档重构与批量处理
  • 涌现性不对齐:AI“学坏“会传染——《自然》新研究揭示AI行为模式跨任务扩散的机制与风险
  • Zotero + Obsidian 文献管理:开题报告文献综述 3 步高效工作流
  • Tomasulo 算法模拟器实战:5步图解 RAW/WAR/WAW 数据相关消除过程
  • 1987年5月18日中午11-13点出生性格、运势和命运
  • 【小白搭建小龙虾】 OpenClaw 实操|图形化一键部署全过程避坑详解(含安装包)
  • Camera Sensor 6种分辨率控制方法对比:Windowing/Binning/Scaling 对帧率与视场角影响
  • 从 SENet 到 GateNet:张俊林团队 3 代特征重要性模型演进与工业落地思考
  • 活性锰除醛产品怎么挑?我会先看这几个地方
  • 敏捷创新背后的举重式工作:突破性创新的幕后逻辑
  • 嵌入式系统信号上下拉设计与PIC18F85J10实践
  • 毕业必备!2026AI论文工具榜单(覆盖 99% 论文写作需求)
  • TEKLauncher终极指南:告别方舟MOD冲突与服务器配置烦恼的完整解决方案
  • 沐曦MXC600国产GPU实战:从CUDA迁移到AI训练集群部署
  • LabVIEW TDMS 文件高级应用:3步实现高速流盘与Excel数据交换
  • LinkSwift网盘直链下载助手:一键获取9大网盘真实下载地址的终极解决方案