news 2026/7/12 1:50:48

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
上下文多模态文档检索开源思路-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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/12 1:49:59

Vue 3 Support vs Volar 插件对比:5项核心功能实测与Vue 3项目选型指南

Vue 3 Support 与 Volar 深度对比&#xff1a;5大核心功能实测与项目选型策略在Vue 3生态快速发展的今天&#xff0c;开发工具的选择直接影响着项目效率与团队协作体验。作为VS Code平台上两款主流Vue开发插件&#xff0c;Vue 3 Support与官方推荐的Volar各有特色。本文将基于实…

作者头像 李华
网站建设 2026/7/12 1:48:28

勒让德变换与凸共轭函数:从3个经典案例看优化理论的数学基石

勒让德变换与凸共轭函数&#xff1a;优化理论的数学基石与三案例解析1. 数学工具的革命性意义当优化问题遇到非光滑函数时&#xff0c;传统微分方法便显得力不从心。这正是勒让德变换与凸共轭函数展现其威力的时刻——它们如同数学显微镜&#xff0c;能透视函数的深层结构&…

作者头像 李华
网站建设 2026/7/12 1:48:07

1987年5月25日中午11-13点出生性格、运势和命运

在占星学和命理学的领域里&#xff0c;出生时间往往被视为蕴含着个体性格、运势和命运密码的关键信息。1987年5月25日中午11 - 13点出生之人&#xff0c;这一特定时刻仿佛在宇宙的宏大乐章中为其奏响了独特的序曲。从传统命理学角度看&#xff0c;1987年是丁卯年&#xff0c;此…

作者头像 李华
网站建设 2026/7/12 1:47:10

Flink 1.18 与 Spark 3.4 实时计算选型:5个维度对比与双十一场景实测

Flink 1.18 与 Spark 3.4 实时计算选型&#xff1a;5个维度对比与双十一场景实测当电商平台的双十一大屏需要实时展示每秒数万笔交易数据时&#xff0c;技术团队往往面临一个关键抉择&#xff1a;选择 Apache Flink 还是 Spark Streaming 作为实时计算引擎&#xff1f;这两个同…

作者头像 李华
网站建设 2026/7/12 1:46:32

SAP KO88 内部订单冲销结算:跨期间与同期间 2 种场景操作详解

SAP KO88 内部订单冲销结算&#xff1a;跨期间与同期间操作全解析1. 内部订单结算与冲销基础概念在企业成本控制与管理会计实践中&#xff0c;内部订单作为SAP系统中重要的成本归集工具&#xff0c;其结算与冲销操作直接影响财务数据的准确性。KO88事务码作为SAP FICO模块中处理…

作者头像 李华