目录
一、引言
二、Introduction
先对齐后融合(ALign BEfore Fuse,ALBEF)
三、工作细节
(1)V+L表征学习的分类
(2)知识蒸馏,Knowledge Distillation
四、ALBEF预训练
(1)模型架构
(2)预训练目标
(3)动量蒸馏
五、互信息最大化视角
InfoNCE损失与互信息下界的关系
ALBEF中ITC损失与MI下界的关系
为什么选择InfoNCE/MI下界?
六、说明
一、引言
今天我们要精读的文章是2021年Google提出的大规模图文对比学习模型,这个模型相较于之前的模型其数据规模更大。这篇论文也是多模态大模型领域中很经典的一篇论文了,虽然时间过去很久了,但也值得大家细细品读。论文原文:Align before Fuse: Vision and Language Representation Learning with Momentum Distillation(ALign)闲言少叙,咱们进入今天的论文精读吧!
本文引入一种对比损失,以便在通过跨模态注意力融合图像和文本表示之前对其进行对齐,从而实现更具基础的视觉和语言表征学习。与大多数现有方法不同,本文的方法不需要边界框注释或高分辨率图像。为了改进从嘈杂的Web数据中学习,提出了动量蒸馏,这是一种自训练方法,可从动量模型生成的伪目标中学习。
二、Introduction
在本文之前的视觉-语言预训练VLP框架(LXMERT、UNITER、OSCAR)依赖于预训练的目标检测器来提取基于区域的图像特征,并采用多模态编码器将图像特征与单词标记融合。这些VLP框架存在几个关键限制:
1.图像特征和词语标记嵌入空间未对齐,导致多模态编码器难以学习交互。
现有的 VLP 方法通常先独立地从图像中提取视觉特征(例如,通过对象检测器得到的区域特征),再从文本中提取词语标记(word tokens)的嵌入。这些视觉特征和文本嵌入,最初存在于不同的、不兼容的向量空间中。当它们被直接送入多模态编码器进行融合时,编码器需要同时完成“对齐”和“融合”两项任务。
主要的问题可以在:
a.语义鸿沟
b.学习效率低下:多模态编码器在学习图像-文本交互之前,必须先花费计算资源和模型容量来弥合这两种模态之间的语义和表示差距。这使得模型难以专注于更高级的跨模态推理,从而影响学习效率和效果。
c.交互建模受限:如果模态特征未对齐,多模态编码器在识别图像中特定对象与文本中对应词语之间的细粒度关联时会遇到困难。这会限制模型在需要深度理解图像和文本之间复杂关系的下游任务(如视觉问答、图像-文本匹配)上的性能。
2.目标检测器既昂贵(标注)又耗费计算(推理)。
许多现有 VLP 方法(如 LXMERT、UNITER、OSCAR)在处理图像时,依赖于预训练的对象检测器来提取“区域特征”。这意味着在 VLP 预训练之前,需要一个单独的阶段来训练一个高质量的对象检测器。
3.现有预训练目标容易过度拟合到嘈杂的网页数据,降低模型泛化性能。
广泛使用的图像-文本数据集(如 Conceptual Captions、SBU Captions)主要从网络上收集。这些数据天然存在噪声,即图像和文本描述之间可能只有弱关联,甚至存在不匹配。例如,图像可能包含文本未描述的实体,或者文本包含与图像无关的词语。而传统的预训练目标,如 Masked Language Modeling (MLM),通常假设标签是“硬”的(即只有一个正确答案)。
这会导致的问题可能在于:
a.过度拟合噪声:当模型使用硬标签(one-hot labels)在有噪声的数据上进行训练时,它可能会试图记住这些不准确的关联,而不是学习图像和文本之间真正的、普遍的语义关系。例如,如果一个图像-文本对中,文本描述了一个不存在于图像中的物体,MLM 仍然会尝试预测这个“错误”的词语,导致模型学习到错误的模式。
b.泛化能力下降:模型一旦过度拟合了训练数据中的噪声,其在面对新的、更干净或不同分布的数据时,表现会变差,即泛化性能下降。它可能无法捕捉到更鲁棒的视觉-语言概念。
c.无法捕捉多样性:对于许多图像,可能存在多种同样合理或更合适的文本描述,或者文本中某个被遮蔽的词语有多个合理替代。但传统的硬标签只接受一个正确答案,这限制了模型学习到更丰富的语义对应关系。
ALBEF 框架正是为了解决这些限制而提出的:
-
通过引入 图像-文本对比学习 (ITC) 来预先对齐模态特征,解决第一个限制。
-
采用 无检测器的图像编码器,避免了对对象检测器的依赖,从而解决了第二个限制。
-
提出 动量蒸馏 (Momentum Distillation),通过生成软伪目标来处理噪声数据,解决第三个限制。
先对齐后融合(ALign BEfore Fuse,ALBEF)
首先使用无检测器的图像编码器和文本编码器独立地编码图像和文本。然后,使用多模态编码器,通过跨模态注意力将图像特征与文本特征融合。引入了一个中间图像-文本对比(image-text contrastive, ITC)损失,作用于来自单模态编码器的表示
这样做的目的是什么?为什么要这么做?
我认为有以下三点目的(或原因):
对齐了图像和文本特征,使得多模态编码器更容易进行跨模态学习
改进了单模态编码器,使其更好地理解图像和文本的语义
学习了一个通用的低维空间来嵌入图像和文本,使得图像-文本匹配目标能够通过对比硬负例挖掘找到更多信息丰富的样本
三、工作细节
(1)V+L表征学习的分类
第一类:侧重于使用基于Transformer的多模态编码器对图像和文本特征之间的交互进行建模
这一类的方法在需要对图像和文本进行复杂推理的下游V+L任务上取得了优异的性能(例如,
, VQA),但它们中的大多数需要高分辨率的输入图像和预训练的目标检测器。
第二类:侧重于学习图像和文本的独立单模态编码器
CLIP和 ALIGN使用对比损失在海量噪声网络数据上进行预训练,这是表征学习中最有效的损失之一。它们在图像-文本检索任务上取得了显著的性能,但缺乏为其他V+L任务建模图像和文本之间更复杂交互的能力。
创新点:ALBEF统一了这两个类别,从而产生了强大的单模态和多模态表示,并在检索和推理任务上均表现出卓越的性能。此外,ALBEF不需要目标检测器,而目标检测器是许多现有方法的主要计算瓶颈。
(2)知识蒸馏,Knowledge Distillation
知识蒸馏旨在通过从教师模型中提取知识来提高学生模型的性能,通常通过将学生的预测与教师的预测相匹配来实现。虽然大多数方法侧重于从预训练的教师模型中提取知识,但在线蒸馏同时训练多个模型,并使用它们的集成作为教师。
本文的动量蒸馏可以解释为一种在线自蒸馏的形式,其中,学生模型的时序集成(temporal ensemble)被当作教师模型,以指导当前模型的学习。
其核心思想在于,不是从一个固定的、预训练好的教师模型中蒸馏知识,而是使用一个动态变化的教师模型。这个“教师模型”实际上是“学生模型”在训练过程中参数的指数移动平均(exponential moving average, EMA)版本,因此被称为“时序集成”。在每次训练迭代中,学生模型会根据其自身的预测结果和这个“动量教师模型”生成的伪目标(pseudo-targets)进行学习。这种方法使得模型能够从更稳定、更泛化的表示中获取监督信息,因为动量教师模型的参数更新更为平滑,聚合了学生模型在不同训练阶段的知识,从而减少了噪声数据带来的过拟合风险,并提升了模型在下游任务上的泛化能力。本质上,动量蒸馏使得模型在训练过程中能够自我提升,学习到对语义信息变化更具鲁棒性的表示。
四、ALBEF预训练
(1)模型架构

Illustration of ALBEF. It consists of an image encoder, a text encoder, and a multimodal encoder. We propose an image-text contrastive loss to align the unimodal representations of an image-text pair before fusion. An image-text matching loss (using in-batch hard negatives mined through contrastive similarity) and a masked-language-modeling loss are applied to learn multimodal interactions between image and text. In order to improve learning with noisy data, we generate pseudo-targets using the momentum model (a moving-average version of the base model) as additional supervision during training.
Image Encoder采用一个12层的ViT-B/16,并使用在ImageNet-1k上预训练的权重对其进行初始化。
Text Encoder和Multimodal Encoder都使用一个6层的Transformer,其中Text Encoder使用
模型的前6层进行初始化,Multimodal Encoder使用
模型的后6层进行初始化。
(2)预训练目标
图像-文本对比学习旨在融合前学习更好的单模态表示。
它学习一个相似度函数
,使得平行的图像-文本对具有更高的相似度分数。其中,
和
是将[CLS]嵌入映射到归一化的低维(256维)表示的线性变换。
维护两个队列来存储来自动量单模态编码器的最新M个图像-文本表示。来自动量编码器的归一化特征表示为
和
定义
和
对于每个图像和文本,计算softmax归一化的图像到文本和文本到图像的相似度如下:

这些Softmax归一化相似度分数用于衡量给定图像与文本集合中各个文本之间的匹配程度,以及给定文本与图像集合中各个图像之间的匹配程度,是Image-Text Contrastive Learning(ITC)目标函数的基础。
【符号解释】
M:表示用于计算 Softmax 归一化时考虑的图像或文本的总数量,通常是当前 mini-batch 中所有图像-文本对的数量,加上存储在队列中的历史表示。
:表示集合中的第 m 个图像。
:表示集合中的第 m 个文本。
:表示给定图像I和文本
之间的相似度分数
:表示给定文本T和图像
之间的相似度分数
τ: 一个可学习的温度参数(learnable temperature parameter),用于调整 Softmax 函数的平滑程度。较大的 τ 会使分布更平滑,较小的 τ 会使分布更“尖锐”,更能区分相似度最高的项。
: 表示给定图像 I 与集合中第 m 个文本
匹配的 Softmax 归一化概率(从图像到文本的角度)。
: 表示给定文本 T 与集合中第 m 个图像
匹配的 Softmax 归一化概率(从文本到图像的角度)。
【公式解读】
这两个 Softmax 归一化相似度分数的计算是 Image-Text Contrastive (ITC) Loss 的核心。ITC 旨在通过将正样本对(匹配的图像-文本对)的相似度推高,同时将负样本对(不匹配的图像-文本对)的相似度推低,从而学习更好的单模态表示。具体来说,对于每个图像 I,模型会计算它与当前 batch 中所有文本(包括一个正文本和多个负文本)的匹配概率
。理想情况下,如果
是 I 的正样本,那么
应该很高。同样,对于每个文本 T,模型会计算它与当前 batch 中所有图像的匹配概率
。ITC 损失函数(公式 2)正是基于这些 Softmax 归一化概率与真实标签(ground-truth one-hot similarity)之间的交叉熵来定义的。
可学习的温度参数 τ 允许模型动态调整概率分布的平滑度,从而在 Image-Text Contrastive (ITC) 损失的指导下,有效地对齐图像和文本的单模态表示,使它们在共享的低维空间中具有语义上的一致性。
MLM最小化交叉熵损失:
![]()
ITM损失为:
![]()
同时,提出了一种以零计算开销为ITM任务采样难负样本的策略。
如果一个负样本图像-文本对具有相似的语义,但在细粒度细节上存在差异,则该样本对是难负样本。使用公式1中的对比相似性来寻找批次内的难负样本。对于一个小批量中的每个图像,根据对比相似性分布从同一批次中采样一个负样本文本,其中与图像更相似的文本有更高的概率被采样。同样地,也为每个文本采样一个难负样本图像。
ALBEF的完整的Loss Function为:
![]()
(3)动量蒸馏
用于预训练的图像-文本对主要从网络上收集,因此往往存在噪声。正样本对通常是弱相关的:文本可能包含与图像无关的词语,或者图像可能包含文本中未描述的实体。对于ITC学习,图像的负样本文本也可能与图像的内容相匹配。对于MLM,可能存在与标注不同的其他词语,它们同样(或更好)地描述了图像。然而,ITC和MLM的one-hot标签会惩罚所有负样本预测,而不管它们的正确性。
Image-Text Constrastive Loss(ITC)的动量蒸馏版本,即ITCMoD损失:
![]()
其核心目的是在处理含有噪声的网络数据时,通过引入动量模型生成的“伪目标”(pseudo-targets)作为额外的监督信息,来改善模型的训练,使其学习到对语义保持变换不变的视觉-语言表示,并提高模型在下游任务上的泛化性能。
【符号解释】
: 一个权重参数,用于平衡原始 ITC 损失和动量蒸馏损失的重要性。根据论文,在预训练和下游任务中,α 通常设置为 0.4。
: 原始的图像-文本对比损失,如论文中公式 (2) 所定义。它使用“one-hot”标签作为监督信号,即对于正样本对概率为1,负样本对概率为0。
: 由动量模型计算得到的图像I到文本的 Softmax 归一化伪目标概率分布。它替代了原始 ITC 损失中的 one-hot 标签,提供了更“软”的监督信号。
: 由**基线模型(base model)**计算得到的图像 I 到文本的 Softmax 归一化概率分布,如论文中公式 (1) 所定义。
: 由动量模型计算得到的文本 T 到图像的 Softmax 归一化伪目标概率分布。
: 由基线模型计算得到的文本 T 到图像的 Softmax 归一化概率分布,如论文中公式 (1) 所定义。
【公式解释】
背景知识 – 动量蒸馏 (Momentum Distillation): 在处理来自网络的、通常包含噪声的图像-文本数据时,传统的 one-hot 标签(即简单地判断图像和文本是否匹配)可能过于严格。例如,一个文本可能没有完全描述图像中的所有内容,或者图像中包含文本未提及的实体。在这种情况下,如果模型因为预测与 one-hot 标签不符而受到严厉惩罚,可能会导致模型过拟合噪声数据。
为了解决这个问题,ALBEF 引入了动量蒸馏。其核心思想是使用一个“动量模型”(momentum model)作为教师(teacher),为“基线模型”(base model,即正在训练的模型)生成“伪目标”(pseudo-targets)。动量模型是基线模型参数的指数移动平均版本,其参数更新比基线模型更平滑、更稳定。因此,动量模型被认为能产生更可靠、更“软”的预测,这些预测可以作为更丰富的监督信号。
【公式推导】
公式 (6) 将原始的
损失与基于动量模型伪目标的 KL 散度损失项结合起来:
(1)第一项:
这一项保留了原始的图像-文本对比损失
的一部分。
是根据公式(2)定义的交叉熵损失。
这一项的作用是确保基线模型仍然从原始的、硬性的 ground-truth 标签中学习到基本的匹配信息。权重
控制了原始损失的贡献程度。
(2)第二项:
这一项是动量蒸馏的核心。它鼓励基线模型(通过其预测
和
去匹配动量模型(通过其伪目标
和
的预测分布。
和
的生成:
-
动量模型是一个“持续进化的教师”,它由基线模型的单模态和多模态编码器的指数移动平均版本构成。
-
对于 ITC,首先使用动量模型的单模态编码器提取特征,并计算图像-文本相似度
和
-
然后,将这些 s′ 相似度分数代入公式 (1) 的形式,计算出软伪目标
和
。这些 q 值是软概率分布,而不是 one-hot 向量,它们反映了动量模型对图像-文本对匹配程度的“信心”分布。
KL散度项:
-
最小化这些 KL 散度项,意味着基线模型要尽量使其预测分布接近动量模型的伪目标分布。由于动量模型更稳定,其伪目标被认为是比原始 one-hot 标签更可靠、更抗噪声的监督信号。
权重:
控制了动量蒸馏损失的贡献程度,通常设置为小于 1 的值,以平衡硬标签和软标签的监督。除以 2 是因为有两个对称的 KL 散度项(图像到文本和文本到图像)。
同理,对于MLM,令
表示动量模型对于掩码token的预测概率,
损失为:
![]()
五、互信息最大化视角
我们的目标是学习对视角变化保持不变的表征。这可以通过最大化a和b之间的互信息(MI)来实现。在实践中,我们通过最小化InfoNCE损失来最大化MI(a, b)的下界
首先回顾一些概念:
互信息
-
互信息 I(A;B) 衡量了两个随机变量 A 和 B 之间相互依赖的程度。如果 I(A;B) 很高,说明知道其中一个变量能显著减少对另一个变量的不确定性。
-
在视觉-语言领域,我们希望学习到的图像表示和文本表示能够捕捉它们之间的语义关联。如果一个图像和一段文本是匹配的(例如,文本描述了图像内容),那么它们的表示应该具有很高的互信息。最大化 I(I;T) 意味着我们希望模型学习到能捕捉图像和文本之间共同语义信息的表示。
-
互信息很难直接计算,因为它涉及到高维空间中的边缘概率和联合概率。
对比学习
-
对比学习的核心思想是:让“正样本对”(例如,匹配的图像-文本对)的表示相互靠近,而让“负样本对”(不匹配的图像-文本对)的表示相互远离。
-
通过这种方式,模型能够学习到具有区分性的表示,即正样本对的相似度高于负样本对的相似度。
InfoNCE损失
InfoNCE 损失是对比学习中一种常用的损失函数,它的形式如下(论文中公式 (8)):

其中:
-
s(a,b) 是衡量 a 和 b 之间相似度的分数(例如,点积)。
-
p(a,b) 是正样本对 (a,b) 的联合概率分布。
-
B 是一个包含一个正样本 b 和 K−1 个负样本
的集合。
这个公式可以理解为:对于一个正样本对 (a,b),我们希望它的相似度 s(a,b) 相对于所有负样本(包括 B 中的所有
)的相似度更大。log 项和 exp项结合起来形成了一个 Softmax 归一化的概率,表示 b 是 a 的正样本的概率。最小化这个损失,就是最大化这个 Softmax 概率。
InfoNCE损失与互信息下界的关系
InfoNCE 损失之所以被广泛使用,是因为它有一个重要的理论性质:最小化 InfoNCE 损失等价于最大化互信息的一个下界。
ALBEF中ITC损失与MI下界的关系
在 ALBEF 论文中,作者将 Image-Text Contrastive (ITC) 损失与 InfoNCE 损失联系起来,并解释了它如何最大化互信息。
论文中公式 (9) 给出了 ITC 损失的重写形式,这里,我们有两项,分别对应图像到文本的对比学习和文本到图像的对比学习:
(1)图像到文本的对比学习:
-
对于给定的图像 I,我们希望它与匹配的文本 T 的相似度 s(I,T) 很高。
-
而对于不匹配的文本 Tm(负样本),我们希望 s(I,Tm) 较低。
-
最小化这一项,就是在最大化图像 I 和其正样本文本 T 之间的互信息 I(I;T) 的下界。
(2)文本到图像的对比学习:
-
同理,对于给定的文本 T,我们希望它与匹配的图像 I 的相似度 s(T,I) 很高。
-
而对于不匹配的图像 Im(负样本),我们希望 s(T,Im) 较低。
-
最小化这一项,就是在最大化文本 T 和其正样本图像 I 之间的互信息 I(T;I) 的下界。
因此,最小化
可以看作是最大化InfoNCE的对称版本。
通过最小化 InfoNCE 损失,模型被训练来学习区分正负样本的表示,而这种区分能力恰好反映了正样本之间潜在的互信息。
为什么选择InfoNCE/MI下界?
-
互信息难以直接优化:如前所述,MI 的直接计算和优化非常困难。InfoNCE 提供了一个可计算的代理目标。
-
对比学习的有效性:对比学习已经被证明在学习高质量、具有区分性的表示方面非常有效,尤其是在自监督学习领域。
-
理论支撑:InfoNCE 损失与 MI 之间明确的理论联系,为对比学习提供了一个坚实的理论基础,解释了为什么它能够有效地学习到语义相关的表示。
-
“View”的生成:在 ALBEF 的互信息最大化视角中,图像 I 和文本 T 被视为图像-文本对的两个“视图”。ITC 损失通过最大化这两个视图之间的 MI 来训练单模态编码器,使其学习到能够捕捉图像和文本共同语义的表示。
动量蒸馏可以被认为是对原始视图执行数据增强。动量模型生成了原始图像-文本对中不存在的多样化视图,并鼓励基础模型学习捕获视图不变的语义信息的表示。
六、说明
本文仅仅是本人在读这篇Paper时的一点理解以及对我的一些疑惑解答后的整理总结,希望能够帮助大家真正深刻的理解CLIP,帮助大家找到好的idea。如果大家觉得有所帮助的话,欢迎大家一键三连;如果觉得哪里有什么问题,欢迎评论区交流一下!




