Generalized Contrastive Learning for Universal Multimodal Retrieval¶
会议: NeurIPS 2025
arXiv: 2509.25638
代码: 未提及
领域: 多模态VLM / 多模态检索
关键词: multimodal retrieval, contrastive learning, GCL, fused modality, CLIP
一句话总结¶
提出 Generalized Contrastive Learning (GCL)——在 mini-batch 内对所有 6 种模态对组合(image↔text, image↔image+text, text↔image+text)执行对比学习,无需构建新的三元组数据集,仅用现有图文对即可在 M-BEIR 上将 VISTA 的平均检索精度从 21.18 提升到 34.06(+60.8%),在 MMEB 的 text→image+text 任务上从 10.1% 提升到 31.1%。
研究背景与动机¶
- 领域现状:CLIP 等跨模态检索模型在标准图-文对检索上表现好,但当查询或键涉及融合模态(fused image+text,如 Wikipedia 页面包含图片和文字)时性能急剧下降。
- 现有痛点:先前方法(如 VISTA、UniIR)通过构建包含 fused modality 的三元组数据集来训练,但(a) 需要额外数据标注/生成,成本高;(b) 构建的数据只覆盖有限的模态组合,无法泛化到未见组合;(c) 用生成数据训练可能导致跨模态任务的遗忘。
- 核心矛盾:标准对比学习(InfoNCE)只在 image↔text 两对之间做对比,忽略了 fused modality(image+text)——导致 3 种模态之间的 \(3 \times 3 = 9\) 种可能的检索组合中只有 2 种被学习。
- 本文要解决什么:设计一种 loss 函数使检索模型能处理任意模态组合,且不需要新的标注数据。
- 切入角度:利用已有图文对数据,在 mini-batch 内自动构造所有模态组合的正负样本,通过统一的 GCL loss 覆盖所有 6 种跨模态对比方向。
- 核心idea一句话:将 InfoNCE 从 2 种跨模态对扩展到 6 种(加入 fused modality),从现有数据中免费获得多模态检索能力。
方法详解¶
整体框架¶
基于现有多模态检索模型(VISTA/CLIP),不改架构,仅替换损失函数。Fused embedding 采用简单加法:\(e_{it} = e_i + e_t\)(沿用 UniIR)。三种模态 \(M = \{i, t, it\}\) 构成 6 种跨模态正样本对。
关键设计¶
- GCL Loss:
- 做什么:在 mini-batch 内对所有 6 种跨模态对执行对比学习
- 标准 CL:\(S = \{(i,t), (t,i)\}\),仅 2 种对
- GCL:\(P = \{(i,t), (i,it), (t,i), (t,it), (it,t), (it,i)\}\),6 种对
- 核心公式:\(\mathcal{L}_{GCL} = -\frac{1}{6N}\sum_{j=1}^{N}\sum_{(a,b)\in P}\log\frac{\exp[(e_a^j \cdot e_b^j)/\tau]}{\sum_{m\in M}\sum_{k=1}^{N}\exp[(e_a^j \cdot e_m^k)/\tau]}\)
- 关键:分母中包含所有 3 种模态的 embeddings,使模型学到真正统一的表示空间
-
设计动机:覆盖所有可能的检索方向,使模型对任意 query→candidate 模态组合都有效
-
同模态样本处理:
- 做什么:同模态的样本对(如 image↔image)被 mask 掉,不作为正样本
-
设计动机:避免同模态坍缩,只学习跨模态对齐
-
即插即用:
- 做什么:GCL loss 直接替换标准 CL loss,不改模型架构
- 适用范围:在 VISTA(双塔+fusion)、CLIP-SF(CLIP+score fusion)、TinyCLIP 三种不同架构上均有效
训练策略¶
使用现有图文对数据训练(无额外数据构建)。Fused embedding 的构造方式为简单向量加法 \(e_{it} = e_i + e_t\)。
实验关键数据¶
主实验¶
M-BEIR 全局检索(Recall@50,10 个数据集平均):
| 方法 | 预训练 | +CL | +CL+Triplet | +GCL |
|---|---|---|---|---|
| VISTA | 21.18 | 25.28 | 24.65 | 34.06 |
| CLIP-SF | 14.92 | 17.52 | - | 21.89 |
MMEB 数据集(text→fused image+text Recall@1):VISTA+GCL 31.1% vs +CL 17.3% (+80% 相对提升)。
CoVR 视频检索(Recall@1):37.32 vs CL 33.76 vs Pretrained 31.22。
消融实验¶
| GCL 组件 | M-BEIR Avg↑ |
|---|---|
| CL 基线 | 25.28 |
| + Intra-modality separation | 27.13 |
| GCL w/o it-candidate terms | 部分下降 |
| GCL (Full) | 34.06 |
关键发现¶
- 60.8% 提升无需新数据:仅改 loss 就从 21.18→34.06,证明标准 CL 的 2 种对比方向是巨大的信息浪费
- 用生成三元组数据训练(+CL+Triplet)反而不如不用(24.65 vs 25.28 on some tasks)——因为会导致跨模态遗忘
- GCL 对涉及 fused modality 的任务效果最显著——text→image+text 提升 80%
- 方法跨架构通用:VISTA、CLIP-SF、TinyCLIP 三种完全不同的架构都受益
- 可以扩展到视频检索(CoVR),说明 fused modality 的概念可迁移
亮点与洞察¶
- Loss 层面的免费午餐:不改模型、不加数据、不改训练流程,只改 loss 函数的正样本对定义就获得 60% 提升——说明先前方法在损失函数设计上有巨大盲区。这种"从 loss 出发"的改进思路值得在更多任务中探索。
- Fused modality 的重要性:很多实际检索场景的文档是 image+text 混合的(Wikipedia、电商、论文),标准 CLIP 在这些场景下严重不足。GCL 填补了这一空白。
- 生成数据的双刃剑:用 LLM 生成三元组数据可能导致跨模态遗忘,不如直接从 loss 设计上解决。
- \(e_{it} = e_i + e_t\) 的简洁有效:如此简单的融合方式配合 GCL 就能大幅提升,说明问题不在融合方式而在训练目标。
补充分析¶
- 用 VISTA 生成的三元组数据训练(CL+Triplet)在某些任务上反而不如纯 CL(24.65 vs 25.28),因为强制学习特定组合会导致其他组合的遗忘
- CoVR 视频检索实验说明 fused modality 概念可以自然扩展到视频帧+文本的组合检索
- TinyCLIP 上的效果验证了 GCL 对小模型同样有效——不依赖大模型容量
局限性 / 可改进方向¶
- Fused embedding 用简单加法 \(e_{it} = e_i + e_t\),更复杂的融合方式(如 cross-attention、gated fusion)可能进一步提升
- Mini-batch 内 6 种对的计算量是标准 CL 的 3 倍,对大规模训练可能增加开销
- 仅在检索任务上验证,生成、分类等下游任务的效果未测试
- 三种模态(image/text/image+text)的情况,更多模态(音频、视频帧、3D 点云等)的扩展需验证
- 负样本的质量对 GCL 也很重要——当 mini-batch 中相似样本较多时可能导致 false negative
- 可以探索 hard negative mining 与 GCL 的结合
相关工作与启发¶
- vs UniIR / VISTA: 它们通过构建特定任务的三元组数据来训练 fused modality 检索。GCL 不需要额外数据,效果反而更好。
- vs AlignCLIP: AlignCLIP 通过 intra-modality separation 改善,但提升有限(25.28→27.13)。GCL 覆盖更全面(25.28→34.06)。
- 与 Barlow Twins 的关系:都是通过重新设计对比目标来改善表示学习,但 GCL 扩展到多模态且覆盖 fused modality。
评分¶
- 新颖性: ⭐⭐⭐⭐ GCL loss 设计简洁有效,将 InfoNCE 从 2 种对比方向扩展到 6 种覆盖 fused modality
- 实验充分度: ⭐⭐⭐⭐ M-BEIR/MMEB/CoVR 三个 benchmark × VISTA/CLIP/TinyCLIP 三种模型的全面交叉验证
- 写作质量: ⭐⭐⭐⭐ 问题定义清晰,loss 推导简洁,Figure 1 的模态覆盖对比图一目了然
- 价值: ⭐⭐⭐⭐ 多模态检索的即插即用通用改进,对 fused modality 检索场景(Wikipedia/电商/论文)有直接应用价值