欢迎光临
我们一直在努力

跨模态对比学习原理与挑战

跨模态对比学习原理与挑战

跨模态对比学习的目标是:把不同模态中语义一致的样本拉近,把语义不一致的样本推远。最典型的是图文对比学习,例如 CLIP、ALIGN、SigLIP。

简单说:

图像:一只狗在草地上奔跑
文本:"a dog running on the grass"

训练目标:
图像 embedding 与 正确文本 embedding 更接近
图像 embedding 与 其他文本 embedding 更远

CLIP 就是典型代表,它使用大规模图文对训练视觉编码器和文本编码器,让模型学习“哪张图片和哪段文本匹配”,并展示出较强的 zero-shot 能力。([arXiv][1])


1. 基本架构

经典跨模态对比学习一般采用双塔结构:

Image Encoder Text Encoder
↓ ↓
image embedding text embedding
↓ ↓
similarity(image, text)

以图文为例:

图像 I_i → Vision Encoder → v_i
文本 T_i → Text Encoder → t_i

然后计算相似度:

sim(v_i, t_j) = cosine(v_i, t_j)

其中:

  • i = j:正样本,图像和文本匹配;
  • i ≠ j:负样本,图像和文本不匹配。

2. InfoNCE / CLIP 损失

一个 batch 中有 N 对图文样本:

(I_1, T_1), (I_2, T_2), …, (I_N, T_N)

对于第 i 张图像,正确文本是 T_i,其他 T_j 都被当作负样本。

图像到文本方向的损失为:

Li2t=−1N∑i=1Nlog⁡exp⁡(sim(vi,ti)/τ)∑j=1Nexp⁡(sim(vi,tj)/τ)
\\mathcal{L}_{i2t}=
-\\frac{1}{N}
\\sum_{i=1}^{N}
\\log
\\frac{
\\exp(\\mathrm{sim}(v_i,t_i)/\\tau)
}{
\\sum_{j=1}^{N}
\\exp(\\mathrm{sim}(v_i,t_j)/\\tau)
}
Li2t=N1i=1Nlogj=1Nexp(sim(vi,tj)/τ)exp(sim(vi,ti)/τ)

文本到图像方向的损失为:

Lt2i=−1N∑i=1Nlog⁡exp⁡(sim(ti,vi)/τ)∑j=1Nexp⁡(sim(ti,vj)/τ)
\\mathcal{L}_{t2i}=
-\\frac{1}{N}
\\sum_{i=1}^{N}
\\log
\\frac{
\\exp(\\mathrm{sim}(t_i,v_i)/\\tau)
}{
\\sum_{j=1}^{N}
\\exp(\\mathrm{sim}(t_i,v_j)/\\tau)
}
Lt2i=N1i=1Nlogj=1Nexp(sim(ti,vj)/τ)exp(sim(ti,vi)/τ)

最终损失:

L=12(Li2t+Lt2i)
\\mathcal{L}=
\\frac{1}{2}
(
\\mathcal{L}_{i2t}
+
\\mathcal{L}_{t2i}
)
L=21(Li2t+Lt2i)

其中 τττ 是温度系数,用来控制相似度分布的尖锐程度。InfoNCE 最早在 Contrastive Predictive Coding 中被广泛使用,用于让模型从高维数据中学习有用表示。([arXiv][2])


3. 训练过程

典型训练流程如下:

Step 1: 准备图文 / 音文 / 视频文本配对数据
Step 2: 分别输入不同模态编码器
Step 3: 得到统一维度的 embedding
Step 4: 计算跨模态相似度矩阵
Step 5: 正样本拉近,负样本推远
Step 6: 训练完成后用于检索、分类、VQA、MLLM 对齐等任务

例如一个 batch 中有 4 对图文:

T1 T2 T3 T4
I1 正 负 负 负
I2 负 正 负 负
I3 负 负 正 负
I4 负 负 负 正

模型要让对角线上的匹配分数最高。


4. 为什么跨模态对比学习有效?

它有效的原因主要有三点。

第一,它把不同模态映射到同一个语义空间。图像、文本、音频、视频虽然输入形式不同,但经过编码后可以在 embedding 空间中直接比较。

第二,它利用了大规模弱监督数据。CLIP 使用大规模图文对进行自然语言监督,ALIGN 则进一步强调可以利用大规模 noisy image-alt-text 数据进行视觉语言表示学习。([arXiv][1])

第三,它天然支持 zero-shot。训练完成后,可以把类别标签写成文本 prompt,例如:

"a photo of a dog"
"a photo of a cat"
"a photo of a car"

然后比较图像 embedding 与这些文本 embedding 的相似度,选择最相似的类别。


5. 与 MLLM 的关系

在 MLLM 中,跨模态对比学习通常用于预对齐阶段:

Vision Encoder

视觉 embedding

与文本 embedding 对齐

接入 LLM / Q-Former / Projector / Cross-Attention

它的作用是让视觉编码器先具备基本的语言语义对齐能力,再把视觉特征送入大语言模型。

对减少幻觉也有帮助,因为更好的视觉-文本对齐可以让模型更准确地区分:

图中有什么
图中没有什么
哪个文本描述与图像一致
哪个文本描述只是语言先验

但它不能单独解决 MLLM 幻觉,因为对比学习通常只学习全局图文匹配,不一定能保证细粒度 grounding、数量、空间关系和 OCR 细节都正确。


6. 典型代表模型

模型核心思想特点
CLIP 图像-文本双塔对比学习 zero-shot 能力强,结构简单
ALIGN 使用大规模 noisy 图文数据 强调数据规模和弱清洗
SigLIP 用 sigmoid loss 替代 softmax 对比损失 不需要全局 batch 相似度归一化,更利于扩展
ALBEF / BLIP 类模型 对比学习 + 跨模态融合 更适合 VQA、caption 等生成/理解任务
VideoCLIP 类模型 视频-文本对比 学习动作、事件、时序语义

SigLIP 提出 pairwise sigmoid loss,不同于标准 softmax 对比学习,它不依赖全局相似度归一化,因此在 batch size 和训练扩展性上更灵活。([arXiv][3])


7. 主要挑战

7.1 语义粒度不匹配

图像包含大量细节,但文本描述通常很粗略。

例如:

图像:两个人、一个桌子、三杯水、一个手机、一个背包
文本:"two people sitting at a table"

文本只描述了部分内容。如果模型把未描述的对象都当作负信息,就会学到错误对齐。

这会导致:

图像中有手机,但 caption 没写手机
模型可能无法稳定学习手机相关特征


7.2 假负样本问题

在 batch 内,其他样本通常被当作负样本。但有些“负样本”其实语义上也匹配。

例如:

Image: 一只金毛犬在草地上
Text A: "a dog on the grass" 正样本
Text B: "a golden retriever outside" 被当作负样本,但其实也对

这就是 false negative。它会让模型把本该接近的语义强行推远。


7.3 图文数据噪声大

互联网图文对常常存在弱匹配、错配、广告文本、标题党、无关描述等问题。ALIGN 明确利用了大规模 noisy alt-text 数据,但这种设置也带来噪声鲁棒性挑战。([arXiv][4])

例如:

图片:一辆汽车
alt-text:"click here for more information"

这种样本会破坏图文对齐质量。


7.4 只学全局匹配,缺少局部 grounding

CLIP 类双塔模型通常判断整张图和整段文本是否匹配,但它不一定知道:

"red cup" 对应图中哪个区域
"man holding phone" 中 phone 在哪里
"left of the table" 的空间关系是否成立

因此它擅长粗粒度语义检索,但在以下任务上容易不足:

小目标识别
精确计数
空间关系判断
OCR 文本识别
细粒度属性理解
复杂场景推理


7.5 语言先验与共现偏置

跨模态对比学习可能学到数据中的共现关系,而不是视觉因果证据。

例如:

snow → ski
table → chair
keyboard → mouse
beach → surfboard

当模型看到 snow,即使图中没有 ski,也可能提高 ski 相关文本的相似度。这种共现偏置会进一步影响 MLLM,形成对象幻觉。


7.6 难负样本不足

普通 batch 内负样本很多,但大多太简单。

例如:

图像:猫
负样本:飞机、汽车、厨房

这些负样本容易区分,模型很快学会。但真正困难的是:

猫 vs 狐狸
金毛 vs 拉布拉多
红色杯子 vs 橙色杯子
三个人 vs 四个人
拿手机 vs 拿遥控器

如果缺少 hard negative,模型的细粒度区分能力会不足。


7.7 大 batch 与计算开销

标准 CLIP 损失通常依赖 batch 内所有图文两两相似度,复杂度接近:

N × N similarity matrix

batch 越大,负样本越多,效果通常越好,但显存、通信和计算成本也越高。SigLIP 试图通过 pairwise sigmoid loss 减少对全局归一化的依赖,从而提升扩展性。([arXiv][3])


7.8 跨模态信息不对称

不同模态的信息密度不同。

例如:

图像:高维、连续、包含空间细节
文本:离散、抽象、压缩后的语义
音频:连续、时间依赖强
视频:空间 + 时间 + 动作 + 事件

简单地把它们压缩到一个 embedding 空间,容易丢失模态特有信息。


7.9 对组合关系理解不足

对比学习容易学到“对象出现”,但不一定学会组合关系。

例如模型可能知道:

man
horse
riding

但未必能稳定区分:

man riding horse
horse standing beside man
man feeding horse
horse pulling man

这对 MLLM 的复杂视觉推理影响很大。


7.10 长尾类别和细粒度领域不足

互联网数据中常见类别很多,专业领域和长尾类别较少。例如:

医学影像
工业缺陷
遥感目标
芯片型号
材料显微图
罕见动物
专业仪器

如果训练数据中这些概念稀缺,跨模态 embedding 就难以稳定对齐。


8. 常见改进方向

8.1 引入 hard negative mining

构造更难的负样本:

相似类别负样本:猫 vs 狐狸
属性负样本:红车 vs 蓝车
数量负样本:三个人 vs 四个人
关系负样本:A 在 B 左边 vs A 在 B 右边
OCR 负样本:12345 vs 12346

这样可以提升细粒度判别能力。


8.2 加入 region-level 对比学习

不要只做全局图文匹配,而是增加局部区域和短语的对齐:

image region ↔ noun phrase
bbox / mask ↔ object text
OCR box ↔ text string
person region ↔ attribute phrase

结构上可以变成:

Global image-text contrast
+ Region-phrase contrast
+ Object-attribute contrast
+ OCR-text contrast

这样更有利于减少 MLLM 的对象幻觉和属性幻觉。


8.3 多粒度对比学习

同时进行:

image ↔ caption
region ↔ phrase
object ↔ label
video clip ↔ sentence
frame ↔ action word
audio segment ↔ transcript

这样能缓解单一全局 embedding 表达能力不足的问题。


8.4 结合生成式目标

对比学习擅长判别,但不擅长生成细节。因此很多 MLLM 会结合:

contrastive loss
+ caption generation loss
+ VQA loss
+ OCR loss
+ grounding loss

这样既能保持跨模态对齐,又能提升生成式理解能力。


8.5 数据清洗与重加权

对 noisy 图文对可以做:

低质量文本过滤
图文相似度预筛选
OCR 噪声过滤
重复样本去重
长尾类别重采样
高质量人工数据加权

对于专业领域,应加入领域图文对,否则模型容易只学到通用语义。


8.6 引入反事实样本

构造视觉差别很小但语义不同的样本:

红车 → 蓝车
三个人 → 四个人
拿杯子 → 拿手机
有狗 → 无狗
文字 123 → 128

这可以减少模型依赖语言共现,而是关注真实视觉证据。


9. 对 MLLM 低幻觉训练的启示

如果目的是减少 MLLM 幻觉,不能只使用普通 CLIP 式全局对比学习。更推荐:

全局图文对比
+ 区域-短语对比
+ 对象存在/不存在对比
+ 属性 hard negative
+ OCR 对比
+ 空间关系对比
+ claim-level verification

也就是说,要从:

Image ↔ Caption

升级为:

Image ↔ Caption
Region ↔ Phrase
Object ↔ Attribute
OCR Region ↔ Text
Object Pair ↔ Relation
Claim ↔ Visual Evidence

这样才能真正服务于低幻觉 MLLM。


总结

跨模态对比学习的本质是:

把不同模态中语义一致的样本拉近,
把语义不一致的样本推远。

它的核心价值是:

统一多模态语义空间
提升 zero-shot 能力
增强图文/音文/视频文本检索
为 MLLM 提供视觉-语言预对齐能力

但主要挑战是:

图文噪声
假负样本
语义粒度不匹配
缺少局部 grounding
语言共现偏置
hard negative 不足
计算成本高
细粒度关系理解弱
专业长尾类别不足

概括:跨模态对比学习能让模型知道“图像和文本是否语义相关”,但要让 MLLM 少幻觉,还必须进一步加入区域级对齐、困难负样本、反事实监督、grounding 和验证机制。

参考链接:
[1]: https://arxiv.org/abs/2103.00020?utm_source=chatgpt.com “Learning Transferable Visual Models From Natural Language Supervision”
[2]: https://arxiv.org/abs/1807.03748?utm_source=chatgpt.com “Representation Learning with Contrastive Predictive Coding”
[3]: https://arxiv.org/abs/2303.15343?utm_source=chatgpt.com “[2303.15343] Sigmoid Loss for Language Image Pre-Training”
[4]: https://arxiv.org/abs/2102.05918?utm_source=chatgpt.com “Scaling Up Visual and Vision-Language Representation …”

赞(0)
未经允许不得转载:171主机测评 » 跨模态对比学习原理与挑战
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址