跳转至

A Visual Leap in CLIP Compositionality Reasoning through Generation of Counterfactual Sets

会议: ICCV 2025
arXiv: 2507.04699
代码: 无(未公开)
领域: 多模态VLM
关键词: CLIP, 组合推理, 反事实数据增强, 扩散模型, 对比学习

一句话总结

提出基于LLM+扩散模型的block-based diffusion方法自动生成高质量反事实图文对数据集,配套设计set-aware损失函数,无需人工标注即可显著提升CLIP的组合推理能力,在ARO/VL-Checklist等benchmark上以更少数据超越SOTA。

研究背景与动机

领域现状:CLIP等视觉-语言模型通过大规模图文对对比学习实现了跨模态理解,但在组合推理(理解属性、位置、关系)方面表现很差,本质上表现为"词袋"模型——能对齐实体但无法理解实体间关系。

现有痛点:先前数据增强方法(如ARO重排文本词序、SVLC替换词汇)生成的负样本过于简单,文本编码器不看图就能区分正负样本。且Urbanek等人指出,在此类数据上微调的模型在真正复杂的关系数据集(Winoground、sDCI)上表现很差——说明改进来自测试/训练构造模式的重合而非真正的组合理解。

核心矛盾:需要在图像和文本两个方面同时提供精确的组合变化(改属性、改位置、改关系),但生成模型很难在无精确引导下捕捉复杂物体关系。简单文本负样本无法提供足够有挑战性的训练信号。

本文目标:如何自动化地生成高质量、高保真的反事实图文对,其中图像准确反映复杂的组合关系描述?

切入角度:将图像生成类比为拼拼图——用LLM解析文本提取实体和空间关系,分别生成各实体的图像"拼图块",再按组合规则排列拼合。

核心 idea:LLM提取实体和空间关系 → block-based diffusion分区域独立生成+全局融合 → 反事实集合结构化损失高效微调CLIP。

方法详解

整体框架

输入少量真实图文对,通过三步pipeline生成反事实数据集:(1) LLM解析文本,提取实体、属性、位置,并生成多样化变体(改颜色、改位置、改关系);(2) Block-based diffusion为每个实体独立生成图像块,按指定坐标排列为参考图,再通过动态加权扩散生成整体连贯的图像;(3) 用CLIP过滤低质量结果。最终用专门设计的set-aware损失微调CLIP(LoRA)。

关键设计

  1. 反事实数据增强Pipeline:

    • 功能:从现有图文对出发,生成属性/位置/关系三个维度的反事实变体
    • 核心思路:LLM执行三种操作——(a) 改属性:修改一个物体的属性保持位置不变(如白狗→棕狗);(b) 改位置:调整相对位置描述保持属性不变(如左边→右边);(c) 改关系:限定物体数量后用CoT分析部件和关系逐步变化。每种变化同时产生新文本描述和对应的新图像,组成"反事实集合"。
    • 设计动机:三维度分解确保了组合推理的完整覆盖;通过同时改变图像和文本(而非仅改文本),避免了文本编码器"走捷径"的问题。
  2. Block-based Diffusion生成策略:

    • 功能:生成精确反映复杂组合关系的图像
    • 核心思路:LLM提供全局场景描述 \(T_{\text{global}}\)、每个实体的局部描述 \(\{T_i\}\) 和位置坐标 \(\{P_i\}\)。为每个实体生成参考图像 \(I_i\)。在扩散过程中:隐状态更新 \(\mathbf{h}_t = \mathbf{h}_t + w_{\text{global}}(t) \cdot \text{Attn}_{\text{global}} + \sum_i w_{\text{local}}(t) \cdot M_i \cdot \text{Attn}_i\)。动态权重调度:早期阶段 \(w_{\text{local}}\) 高(各区域独立生成保证实体准确),后期 \(w_{\text{global}}\) 渐增(全局描述确保整体连贯性)。空间mask \(M_i\) 限制各局部注意力只影响对应区域。
    • 设计动机:传统扩散模型难以同时处理多实体精确属性和空间关系,分块独立生成+渐进融合完美解决了这个问题。局部图像参考 \(I_i\) 提供了比纯文本更精确的外观线索。
  3. Set-aware损失函数:

    • 功能:为反事实集合结构定制的高效训练损失
    • 核心思路:总损失 \(\mathcal{L} = \mathcal{L}_{\text{sets}} + \mathcal{L}_{\text{neg}}\)\(\mathcal{L}_{\text{sets}}\) 分两部分:集合内损失 \(\mathcal{L}_{\text{intra}}\) 计算同一反事实集合中所有正负图文对的相似度(sigmoid loss形式);集合间损失 \(\mathcal{L}_{\text{inter}}\) 仅用各集合的真实图文对作代表计算跨集合负样本。\(\mathcal{L}_{\text{neg}}\) 对抗词序置换的负文本。
    • 设计动机:比全局对比损失计算量小(不需全batch负样本),利用了反事实集合的天然结构——同一集合中的变体是最难的负样本。

损失函数 / 训练策略

  • 使用LoRA微调CLIP,保留原始能力同时增强组合推理
  • 反事实集合大小 \(m\) 可控,通常包含3-5个变体
  • CLIP过滤低相似度的生成结果,确保数据质量

实验关键数据

主实验

方法 训练数据 ARO-Relation ARO-Attribute VL-CL Relation VL-CL Attribute
CLIP - 59.9 62.9 61.9 67.6
NegCLIP 手动 81.1 70.9 63.5 72.2
DAC_LLM-3m 3M 81.3 73.9 86.4 77.2
GCS_gen-10k (Ours) 10K 82.2 67.7 74.5 71.9
GCS_gen-300k (Ours) 300K 85.7 73.4 85.6 81.4

消融实验

配置 ARO-Relation VL-CL Relation 说明
Contrastive Loss 77.5 73.8 传统对比损失
Set-aware Loss (Ours) 85.7 85.6 结构化损失,显著提升
w/o Block-based Diffusion 79.3 78.1 常规生成质量差
w/ Block-based Diffusion 85.7 85.6 精确控制物体关系

关键发现

  • 仅10K生成数据即可超越NegCLIP(ARO-Relation: 82.2 vs 81.1),300K数据全面超越使用3M数据的DAC
  • Block-based diffusion是关键:确保了生成图像准确反映文本中的组合关系,否则低质量图文对反而引入噪声
  • Set-aware损失比传统对比损失提升约8%:利用了反事实集合结构提供的"硬负样本"
  • 在真正困难的Winoground数据集上也有提升,证明是真正的组合理解改进而非模式匹配

亮点与洞察

  • 拼图式图像生成(Block-based Diffusion)是核心创新:将复杂的组合关系图像生成问题分解为"分别生成+规则拼合+整体融合",通过空间mask和动态权重完美平衡了局部精度和全局连贯性。这个思路可迁移到任何需要精确控制多实体空间关系的图像生成任务。
  • 数据效率极高:10K生成数据就能超越大量人工数据,说明数据质量(精确的组合变化)远比数据量重要。
  • LLM作为组合关系的"拆解器+变体生成器"的角色特别好:LLM天然擅长解析和改写结构化描述,与扩散模型的图像生成能力形成完美互补。

局限与展望

  • 生成图像仍可能存在不真实细节(扩散模型的通病),需要CLIP过滤可能丢弃部分有价值的样本
  • 对极复杂场景(>5个实体+复杂遮挡关系)可能block-based方法的空间分区不够灵活
  • 只在CLIP(双编码器架构)上验证,是否适用于单编码器VLM有待探索
  • 改进思路:引入3D场景理解来处理遮挡关系,或用多轮对话生成更复杂的组合变体

相关工作与启发

  • vs NegCLIP/SVLC:只改文本不改图像,模型走捷径学不到真正的组合理解;本文同时改图改文
  • vs DAC:DAC使用大量数据(3M)但构造模式单一,本文用少量高质量反事实集合更高效
  • vs sDCI:在sDCI/Winoground这类真正困难的数据集上也有提升,说明泛化能力更好

评分

  • 新颖性: ⭐⭐⭐⭐ Block-based diffusion和set-aware loss都是有意义的新设计
  • 实验充分度: ⭐⭐⭐⭐ ARO、VL-Checklist、Winoground、sDCI多个benchmark全面验证
  • 写作质量: ⭐⭐⭐⭐ 拼图类比直观,pipeline描述清晰
  • 价值: ⭐⭐⭐⭐ 高数据效率的组合推理增强方案对VLM社区有广泛参考价值 领域: 多模态VLM
    关键词: CLIP, 组合推理, 反事实数据增强, block-based diffusion, 对比学习损失

一句话总结

提出基于block-based diffusion的反事实图文对自动生成方法,将图像实体视为"拼图块"进行独立生成与组装,配合集合内/集合间双层损失函数微调CLIP(LoRA),在ARO、Winoground、sDCI等多个组合推理benchmark上以10K-300K合成数据超越使用3M手标数据的SOTA方法。

背景与动机

视觉-语言模型(VLM)虽然在图文检索、VQA等任务上取得了很大进展,但在组合推理(compositional reasoning)上仍然严重不足——无法准确理解物体的属性、空间位置和相互关系。CLIP等SOTA模型往往退化为"bag-of-words"行为:能将文本中的实体与图像中的视觉元素对齐,但无法理解它们之间的关系或属性。例如CLIP常无法区分"人在门左边"和"人在门右边"这样的细粒度语义差异。

这一缺陷在与LLM结合构建多模态对话系统(如LLaVA、MiniGPT-4)时更为突出,导致场景描述、VQA和视觉推理中的错误。根本原因在于缺乏高质量的、图文精确对齐的组合推理训练数据——尽管LAION-400M、YFCC100M等大规模数据集存在,但标注质量和对齐度不足。

现有改进策略主要有两条路径,但都存在根本缺陷: 1. 文本扰动法(ARO的NegCLIP、VL-Checklist):通过打乱词序或替换单词生成负样本文本。Urbanek等人(sDCI, CVPR 2024)指出,这类方法产生的"负样本"过于简单,文本编码器不需要图像信息就能判断正负——模型学到的是文本模式而非视觉推理。在Winoground等真正需要视觉理解的benchmark上反而退化。 2. 局部图像编辑法(VisMin、SDO):用生成模型局部修改图像,但由于缺乏精确的空间和语义引导,生成模型难以准确捕捉复杂的物体关系。

核心问题

  1. 数据质量问题:如何不依赖人工标注,自动生成图文高度对齐的反事实训练对,精确控制某一组合维度(属性/位置/关系)的变化?
  2. 生成精度问题:现有扩散模型在没有精确引导的情况下,难以生成满足复杂空间关系和属性约束的图像——如何让生成模型"听从"组合关系指令?
  3. 训练效率问题:传统对比损失的效果取决于负样本的质量和数量,如何设计更高效的损失函数来利用反事实集合的结构化信息?

方法详解

整体框架

本文方法(GCS,Generation of Counterfactual Sets)包含三个核心模块构成完整pipeline:

COCO图文对Step 1: LLM解析与变体扩展(GPT-4o提取实体、属性、位置,沿三维度生成变体描述) → Step 2: Block-based Diffusion图像生成(每个实体独立合成"拼图块",动态融合全局+局部引导生成完整图像) → Step 3: 集合损失微调CLIP(利用反事实集合结构的双层loss + LoRA高效微调)

整体思想类似于拼拼图:LLM负责设计拼图方案(哪些块在哪个位置、什么属性),扩散模型负责制作每一块拼图并组装成完整画面。通过增删改实体来产生反事实变体,每个原始图像生成一组反事实集合。

关键设计

  1. 反事实数据增强Pipeline

    • 实体解析:用GPT-4o解析COCO的详细描述(COCO原始短标注先用LLM扩写为密集描述),识别关键实体及其属性和空间关系。例如从"a white dog on the left of a black cat"中识别出white dog和black cat两个实体。
    • 三维度变体生成
    • 属性变化:修改某个物体的颜色/类型/状态(如black cat→yellow cat),保持位置不变
    • 位置变化:交换物体的相对位置描述(左↔右),保持属性不变
    • 关系变化:限定物体数量,用Chain-of-Thought让LLM逐步分析部件和交互关系后生成变体(最难的维度)
    • 四种操作:每个原始样本通过添加实体、删除实体、修改实体属性、保留主体重新生成四种操作各占25%产生反事实样本
    • 真实图像拼接补充:从COCO数据集中按LLM提供的坐标关系拼接真实图像(stitched images),与生成数据共同构成训练集
    • 质量过滤:用CLIP计算图文相似度,过滤掉低质量生成结果
    • 对于关系修改中"实体交换不改变语义"的情况(如"Jack和Mary是夫妻"),维护约800个常见对称关系的白名单进行过滤
  2. Block-based Diffusion生成策略(核心创新)

    • 信息提取:LLM从输入prompt中提取三类信息——全局场景描述\(T_{global}\)、各实体的局部区域描述\(\{T_i\}\)(包含属性和空间关系)、位置坐标\(\{P_i\}\)
    • 参考图像生成:为每个实体用text-to-image模型根据\(T_i\)独立生成参考图像\(I_i\),作为"拼图块"
    • 双层引导的扩散过程:在DDPM去噪的每一步同时注入全局语义和局部细节引导:
\[\mathbf{h}_t = \mathbf{h}_t + w_{global}(t) \cdot \text{Attn}_{global} + \sum_i w_{local}(t) \cdot M_i \cdot \text{Attn}_i\]
  • 局部注意力融合文本+图像\(\text{Attn}_i\)通过cross-attention同时关注局部文本描述和局部参考图像:
\[\text{Attn}_i = \text{Softmax}\left(\frac{\mathbf{q}[\mathbf{k}_{T_i};\mathbf{k}_{I_i}]^\top}{\sqrt{d}}\right)[\mathbf{v}_{T_i};\mathbf{v}_{I_i}]\]

其中\([\cdot;\cdot]\)表示拼接。文本特征提供语义约束,图像特征提供外观一致性参考。 - 空间掩码\(M_i\):将每个实体的局部引导严格限制在其预定义位置区域\(P_i\)内 - 动态权重调度(关键设计):

\[w_{local}(t) = \begin{cases} w_{max}, & t \leq t_{th} \\ w_{max}\left(1 - \frac{t - t_{th}}{T - t_{th}}\right), & t > t_{th} \end{cases}, \quad w_{global}(t) = w_{max} - w_{local}(t)\]

扩散早期局部权重最大,各block独立生成保证每个实体的属性保真度;后期局部权重线性衰减、全局权重增大,让各block融合为全局一致的完整图像。\(w_{max}\)通常设为1。

  1. 集合结构化损失函数
    • 传统对比损失(InfoNCE)将每个正样本与batch内所有其他样本做对比,效果高度依赖负样本质量和批量大小
    • 本文利用反事实集合的天然分组结构,将计算分解为两层:
    • 集合内损失\(\mathcal{L}_{intra}\):在每个反事实集合内部精细区分——同一集合内的匹配对为正、非匹配对为负
    • 集合间损失\(\mathcal{L}_{inter}\):各集合仅用原始真实图文对作为代表进行跨集合对比
    • 优势:避免了全量\(O(N^2)\)负样本对计算,集合内已有足够难的负样本(反事实变体),集合间只需粗粒度区分

损失函数 / 训练策略

集合内损失(sigmoid形式,逐对计算): $\(\mathcal{L}_{intra} = -\sum_{i=1}^{m}\sum_{j=1}^{m} \log \frac{1}{1 + e^{l_{ij}(-\tau \mathcal{I}(x_i, y_j) + b)}}\)$

其中\(m\)为集合大小,\(l_{ij} \in \{1, -1\}\)标记正负对,\(\tau\)为温度参数,\(b\)为可学习偏置,\(\mathcal{I}(x,y) = \mathbf{z}_\mathbf{x}^\top\mathbf{z}_\mathbf{y} / (\|\mathbf{z}_\mathbf{x}\| \|\mathbf{z}_\mathbf{y}\|)\)为余弦相似度。

集合间损失(仅用各集合的真实pair作代表): $\(\mathcal{L}_{inter} = -\sum_{i=1}^{n}\sum_{j=1, j \neq i}^{n} \log \frac{1}{1 + e^{\tau \mathcal{I}(x_i^0, y_j^0) - b}}\)$

\(n\)为batch中的集合数,\((x_i^0, y_i^0)\)为第\(i\)个集合的真实图文对。

负文本损失(沿用SVLC的思路,增强词序敏感性): $\(\mathcal{L}_{neg} = -\sum_i \log \frac{e^{\mathcal{I}(x_i, y_i)/\tau}}{e^{\mathcal{I}(x_i, y_i)/\tau} + e^{\mathcal{I}(x_i^{neg}, y_i)/\tau}}\)$

\(x_i^{neg}\)为打乱词序后的负文本。

总损失: \(\mathcal{L} = \mathcal{L}_{sets} + \mathcal{L}_{neg}\),其中\(\mathcal{L}_{sets} = \mathcal{L}_{inter} + \sum_{i=1}^{n}\mathcal{L}_{intra}^{(i)}\)

训练细节: CLIP ViT-B/32, batch size 100, lr 1e-5, weight decay 0.1, 训练10 epochs, LoRA(\(r=\alpha=32\))。扩散模型采用SD-XL、Stable Diffusion 3、PixArt-α。4×NVIDIA V100 GPU, 结果取3次平均。

实验关键数据

ARO & VL-Checklist Benchmark (Table 1):

数据集 指标 GCS (本文) DAC-3M (之前SOTA) 提升
ARO VG-Relation Acc 85.7 81.3 +4.4
ARO VG-Attribute Acc 73.4 73.9 -0.5
ARO COCO-Order Acc 94.6 94.4 +0.2
ARO Flickr-Order Acc 95.6 95.4 +0.2
VL-Checklist Object Acc 89.1 88.5 +0.6
VL-Checklist Attribute Acc 81.4 77.2 +4.2
VL-Checklist Relation Acc 85.6 89.7 -4.1

复杂视觉推理 (Table 2) — 最能体现真正组合推理能力的benchmark:

数据集 指标 GCS 之前最优 提升
sDCI SCM@1 Acc 47.9 47.6 (sDCI) +0.3
sDCI Neg@1 Acc 90.2 88.2 (sDCI) +2.0
sDCI SCM@5 Acc 15.6 15.1 (sDCI) +0.5
sDCI Neg@5 Acc 79.8 77.4 (sDCI) +2.4
Winoground Text Acc 32.8 31.3 (CLIP原始) +1.5
Winoground Image Acc 19.5 14.5 (DAC) +5.0
Winoground Group Acc 10.0 9.0 (CLIP原始) +1.0

关键发现: NegCLIP在Winoground Group上仅8.0(低于CLIP的9.0),DAC也仅8.5。文本扰动类方法在构造模式简单的ARO上有效,但在需要真正视觉理解的Winoground上反而退化。GCS是唯一在所有benchmark上全面提升的方法。

生成图像质量评估 (Table 4):

维度 Baseline(仅全局引导) +Local Img +Local Text Combined
属性 84.5 90.2 93.8 99.6
位置 81.7 88.5 91.4 98.8
关系 76.9 85.1 89.3 95.2

跨模型泛化 (Table 6):

模型 ARO-A ARO-R Winoground VL
BLIP-2 (原始) 71.2 41.2 28.3 78.3
BLIP-2 + GCS-300k 76.3 74.9 30.9 86.4
MiniGPT-4 (原始) 55.7 46.9 8.3 78.7
MiniGPT-4 + GCS-300k 71.0 60.2 15.3 82.1

双编码器(BLIP-2)和多模态LLM(MiniGPT-4)架构上均有显著提升。

下游通用能力保持 (Table 5, Elevater):

模型 5-shot 10-shot 20-shot All-shot
CLIP 66.19 69.58 71.90 78.96
DAC 64.92 69.20 72.98 77.44
GCS 65.62 69.27 72.45 78.50

GCS微调后在20个分类数据集上的linear probing性能与原始CLIP几乎持平,不损害通用表征。

消融实验要点

  • 损失 vs 数据:集合损失在VG-R和COCO子集上贡献最大;反事实数据在VG-A和Flickr上贡献最大——两种创新互补,缺一不可
  • 数据组成:拼接图像(stitched)和生成图像(generated)都有独立贡献,组合使用效果最佳;仅用stitched已能在ARO上大幅提升,加入generated后Winoground进一步提升
  • 集合大小:5→10→20元素,性能稳步提升但收益递减(Group: 9.2→10.1→10.0),默认取10
  • 训练效率:提出的集合损失比标准对比损失省13.6%训练时间,比sigmoid损失省16.2%
  • block-based引导消融:纯baseline(仅全局描述)最差,加local image或local text都有明显提升,两者组合达到最优(属性99.6%、位置98.8%)

亮点

  1. "拼图"隐喻精妙且有效:将组合推理的图像生成问题分解为拼图问题,每个实体是一块拼图,LLM设计拼法,扩散模型制作每块并组装——这种分解方式完美对应组合推理"分别理解各元素再组合理解"的本质
  2. 动态权重调度化解全局-局部矛盾:早期独立生成各block保证局部保真度,后期增大全局权重保证整体一致性。简洁优雅,可迁移到其他需要局部-全局平衡的生成任务
  3. 数据效率惊人:10K-300K合成数据 vs DAC的3M人工标注数据,3.6%的数据量就能超越SOTA。核心原因在于反事实样本对是"最小对比变化"的hard negative,每个样本的信息量远高于随机负样本
  4. 损失函数设计充分利用集合结构:集合内精细区分反事实变体(hard negative),集合间只需粗粒度代表对比(easy negative),计算复杂度从\(O(N^2)\)降至\(O(nm^2 + n^2)\)
  5. 跨架构通用性:同一组反事实数据可提升CLIP、BLIP-2、MiniGPT-4三种不同架构,说明数据质量是组合推理的关键瓶颈

局限与展望

  1. 关系维度的生成质量仍有差距:关系修改准确率95.2%,较属性(99.6%)和位置(98.8%)低4-5个点,复杂交互关系(如"因为A挡住了B导致C看不见B")的链式推理完全未涉及
  2. 生成成本高:依赖GPT-4o + SD-XL/SD3等商业/大型模型,生成pipeline的成本难以忽视。用开源替代(如Llama 3 + SDXL)的效果未验证
  3. 仅验证CLIP ViT-B/32:未在ViT-L/14、ViT-H/14等更大backbone上验证,可能主要结论仍成立但提升幅度未知
  4. 跨模型验证不够深入:BLIP-2和MiniGPT-4的结果虽正面,但更现代的VLM(LLaVA-NeXT、InternVL2、Qwen-VL2等)的泛化性未知
  5. 反事实变化模式受限:四种操作(增删改重生成)主要覆盖实体级别的变化,未涉及背景变化、视角变化、光照变化等更高阶的组合维度
  6. 仅限静态图像:未扩展到视频理解中的时序组合推理

与相关工作的对比

方法 数据来源 训练数据量 增强类型 Winoground Group sDCI Neg@1
NegCLIP (ICLR'23) 文本词序打乱 ~600K 仅文本 8.0 (↓1.0) 56.0
SVLC (CVPR'23) 文本+结构化规则 ~600K 仅文本 - -
DAC (NeurIPS'23) LLM生成密集标注 3M 文本(+图像) 8.5 84.7
sDCI (CVPR'24) 人工+LLM ~113K 文本+裁剪 8.3 88.2
GCS (本文) LLM+Diffusion ≤300K 图文联合 10.0 90.2

核心差异: (1) 视觉侧反事实——NegCLIP/SVLC/DAC主要在文本侧做增强,生成的负样本容易被文本编码器shortcut;GCS直接生成匹配的反事实图像,迫使模型做真正的视觉推理。(2) 精确可控的图像生成——block-based diffusion通过空间掩码+参考图像实现了前所未有的组合精度。(3) 结构化损失——利用集合内天然的hard negative,无需全局batch对比。

启发与关联

  • Block-based diffusion → 检测/分割数据增强: 将实体视为独立可操纵的拼图块的思想,可迁移到目标检测场景,自动生成不同物体组合/布局/遮挡关系的训练图像
  • 集合结构化损失 → 通用方法论: 当训练数据天然具有分组结构时,将组内精细对比+组间粗粒度对比的损失分解是一种高效且通用的设计模式

评分

  • 新颖性: ⭐⭐⭐⭐ — block-based diffusion和集合损失均为有意义的新贡献,"拼图"思想直觉且有效
  • 实验充分度: ⭐⭐⭐⭐ — 5个benchmark + 详细消融 + 跨模型验证 + 生成质量评估,较全面
  • 写作质量: ⭐⭐⭐⭐ — 拼图隐喻贯穿全文,逻辑清晰,但部分公式符号可更规范
  • 实用价值: ⭐⭐⭐ — 数据效率高但生成pipeline依赖GPT-4o+SD-XL,复现成本不低
  • 综合: ⭐⭐⭐⭐ (8/10)

相关论文