FILIP: FINE-GRAINED INTERACTIVE LANGUAGE-IMAGE PRE-TRAINING
原文连接:https://arxiv.org/abs/2111.07783v1
细粒度交互式语言-图像预训练
摘要
无监督的大规模视觉-语言预训练在各种下游任务上表现出了良好的发展前景。现有的方法通常通过每个模态的全局相似度对跨模态交互建模,但这样会缺乏充足的信息,或者使用基于视觉和文本token的交叉/自注意力对跨模态交互建模。然而,交叉/自注意力在训练和推理过程中效率低下。在本文中,我们引入一种大规模细粒度交互语言-图像预训练(Fine-grained Interactive Language-Image Pre-training,FILIP),通过一种跨模态后交互机制实现更加细粒度的对齐,该机制使用视觉和文本token之间token最大相似度指导对比目标。FILIP仅通过修改对比损失就成功地利用了图像patch和文本词之间的细粒度表示。同时获得了在推理时离线预计算图像和文本表示的能力,保证了大规模训练和推理的效率。此外,我们构建了一种新的大规模图像-文本对数据集FILIP300M用于预训练。实验表明,FILIP在包括zero-sho图像分类和图像-文本检索在内的各种下游视觉-语言任务中都取得了最先进的性能。在文本词-图像patch对齐上的可视化进一步表明,FILIP可以学习到有意义的细粒度特征,并具有良好的定位能力。
1 引言
大规模视觉-语言预训练模型(Vision-Language Pre-training,VLP),如CLIP和ALIGN最近在各种下游任务上取得了成果。它们从互联网上收集的数以百万计的图像-文本中学习视觉和文本表示,并且展现出卓越的zero-shot能力和鲁棒性。这些模型的关键技术在于通过双流模型对图像和文本进行全局对比对齐。这样的结构在检索这类的下游任务上是能够高效推理的,因为两种模态的编码器可以解耦,图像或文本的表示可以离线预计算。然而,CLIP和ALIGN仅通过每个模态的全局相特征似度对跨模态交互建模,缺乏捕捉精细信息(如视觉对象和文本词语之间的关系)的能力。在本文中,我们为大规模VLP开发了一种简单而有效的跨模态细粒度交互机制。
为了达到更细粒度的跨模态交互,以前的研究方法主要利用两种方式:(1)一些工作使用预训练对象解码器从图像中提取感兴趣区域(region-of-interest,ROI)特征,然后通过VLP模型将其与对应文本融合。由于需要预计算和存储大量ROI特征,这种设计使得预训练变得复杂。此外,这些方法的zero-shot能力通常受限于预先设计的类别数量,并且它们的性能也受到检测器质量的限制。(2)另一些工作将来自两种模态的token或patch表示强制映射到相同空间,并且通过交叉注意力或自注意力对细粒度交互进行建模。然而,这些模型通常在训练和推理过程中都是低效的。特别是在训练过程中,交叉注意力需要在编码器-解码器结构中进行,而自注意力的复杂度随着两个模态长串序列的长度平方增长。在推理过程中,来自两种模态的数据相互交织以计算交叉注意力或自注意力,而且不能像CLIP和ALIGN这样得双流模型进行离线预计算。对于像图像/文本检索和图像分类这样的下游任务而言,这可能不太有效。
在本文中,我们提出了一种名为FILIP的大规模细粒度交互语言-图像预训练框架来解决这些局限性。受ColBERT的启发,我们通过一种在对比损失中的新颖的跨模态后交互机制对细粒度语义对齐建模,而不是使用交叉或自注意力。具体而言,我们的细粒度对比学习使用视觉和文本token之间的token最大相似度指导对比目标。通过这种方式,FILIP成功地利用图像patch和文本词之间的细粒度表示,同时获得了离线预计算和图像和文本表示的能力。与ColBERT不同,在计算图像-文本对齐时,我们丢弃填充的tokens并且使用平均而不是token-wise最大相似度之和,这能够增强跨模态表征学习并稳定训练。此外,我们从互联网上构建了一个名为FILIP300M的大规模预训练数据集。数据清理和图像-文本数据对齐在本工作中也被证明是有用的。
大量实验证明,通过高效学习细粒度表示,FILIP在包括zero-sho图像分类和图像-文本检索在内的各种下游视觉-语言任务中都取得了最先进的性能。例如,FILIP在zero-shot ImageNet分类中达到了77.1%的Top-1精度,用更少的训练数据超过了CLIP。对词-patch对齐的可视化进一步表明,FILIP学习了有意义的细粒度特征并具备良好的定位能力。
2 相关工作
视觉-语言预训练模型。预训练-微调方案已经在自然语言处理和计算机视觉领域取得了巨大的成功,然后很自然地扩展到视觉-语言预训练的联合跨模态域。最近的VLP模型的预训练数据集包括公开可用的如YFCC100M,CC12M,以及超过100M样本的大规模数据集CLIP和ALIGN都被证明是有效的。VLP模型的预训练任务可以分为两类:图像-文本对比学习任务和基于语言建模(Language Modeling,LM)任务:(1)CLIP,ALIGN和UNIMO利用跨模态对比学习将文本和视觉信息对齐到一个统一的语义空间;(2)VisualBERT,UNITER,M6和DALL-E利用类似LM的目标,包括掩码LM(如掩码语言/区域建模)和自回归LM(如图像描述,基于文本的图像生成)。另一方面,一些方法依赖于一个预训练目标检测模型,如Faste-RCNN,离线提取图像区域特征,这需要额外的回归框标签数据,使得方案的可扩展性较低。最近的研究如SOHO和SimVLM,试图通过视觉字典或PrefixLM消除这一负担。在本文中,我们以端到端且更简单的方式直接学习细粒度视觉-语言表示,同时保持了推理效率的优势。
多模态交互机制。视觉-语言预训练模型的核心是对两种模态之间的交互进行建模。跨模态交互体系结构主要有两种类型:单流模型和双流模型。像VisualBERT和ViLT这样的单流模型直接拼接patch或区域视觉特征和文本词嵌入,并将它们输入基于transformer的模型。双流模型例如ViLBERT和CLIP对于不同的模态有不同的编码器。这能够灵活针对不同模态使用不同的模型。通过解耦编码器和离线预计算图像/文本特征能够对图像-文本检索这样的下游任务进行高效推理。本文在遵循双流方案保证灵活且高效推理的同时,进一步提出了一种新的多模态交互机制用于捕捉细粒度表示。
3 方法
在本文中,我们提出了一种名为FILIP的跨模态预训练模型,该模型在细粒度交互中表现优异,用于挖掘图像编码器和文本编码器之间更详细语义匹配,如图1所示。特别的,FILIP是一个双流模型,带有基于transformer的图像和文本编码器。对于视觉模态,图像编码器是一个视觉transformer,他以一个额外的[CLS]token嵌入和线性投影图像patchs的串联作为输入。对于文本模态,根据CLIP,我们使用一个词汇量大小为49408的小写字节对编码(Byte Pair Encoding,BPE)来对文本进行token化。每个文本序列以[BOS]开始,以[EOS]结束。和GPT2相同,经过词嵌入层后,token嵌入被送进一个调整后的transformer解码器模型。在图像和文本编码器之上,文本token和视觉token的表示被线性投影到多模态公共空间并分别使用L2正则化。不同于现有的双流模型(如CLIP和ALIGN),它仅通过整张图片和文本序列的全局特征来对跨模态交互进行建模。我们引入一种新颖的细粒度对比学习目标,加上跨模态后交互机制,它能够考虑到图像patch和文本token之间的细粒度交互,具体请参见3.1。
3.1 细粒度对比学习
最近发现,对比表征学习在视觉和视觉-语言跨模态预训练中都能够学习到比预测表征学习更好的表示。根据跨模态对比学习的一般公式,我们希望学习图像数据
I
I
I的编码器
f
θ
f_\theta
fθ和文本数据
T
T
T的编码器
g
ϕ
g_\phi
gϕ。给定一张图像
x
I
∈
I
x^I\in I
xI∈I和一段文本
x
T
∈
T
x^T\in T
xT∈T,在度量距离下,编码表示
f
θ
(
x
I
)
f_\theta(x^I)
fθ(xI)和
f
ϕ
(
x
T
)
f_\phi(x^T)
fϕ(xT)越相近则二者越相关,反之则相关性越小。在每个训练批次中,我们提取了
b
b
b个图像-文本对
{
x
k
I
,
x
k
T
}
k
=
1
b
\{x^I_k,x^T_k\}^b_{k=1}
{xkI,xkT}k=1b。对于图像-文本对中的图像
x
k
I
x^I_k
xkI,
x
k
T
x^T_k
xkT是正样本,而其他文本将作为该批次中的负样本。对于
x
k
I
x^I_k
xkI的图像-文本对比损失
L
k
I
L^I_k
LkI如下所示:
L
k
I
(
x
k
I
,
{
x
j
T
}
j
=
1
b
)
=
−
1
b
l
o
g
e
x
p
(
s
k
I
,
k
)
∑
j
e
x
p
(
s
k
I
,
j
)
L^I_k(x^I_k,\{x^T_j\}^b_{j=1})=-\frac{1}{b}log\frac{exp(s^I_k,k)}{\sum_jexp(s^I_k,j)}
LkI(xkI,{xjT}j=1b)=−b1log∑jexp(skI,j)exp(skI,k)
其中
s
k
,
j
I
s^I_{k,j}
sk,jI表示第
k
k
k个图像与第
j
j
j个文本的相似度。同样的,对于文本
x
k
T
x^T_k
xkT到图像的对比损失为:
L
k
T
(
x
k
T
,
{
x
j
I
}
j
=
1
b
)
=
−
1
b
l
o
g
e
x
p
(
s
k
T
,
k
)
∑
j
e
x
p
(
s
j
T
,
k
)
L^T_k(x^T_k,\{x^I_j\}^b_{j=1})=-\frac{1}{b}log\frac{exp(s^T_k,k)}{\sum_jexp(s^T_j,k)}
LkT(xkT,{xjI}j=1b)=−b1log∑jexp(sjT,k)exp(skT,k)
该批次的总损失可以表示为:
L
=
1
2
∑
k
=
1
b
(
L
k
I
+
L
k
T
)
(1)
L=\frac{1}{2}\sum^b_{k=1}(L^I_k+L^T_k)\tag{1}
L=21k=1∑b(LkI+LkT)(1)
3.1.1 跨模态后期交互
从对比损失(1)中可以看出,跨模态交互反映在我们如何计算第
i
i
i张图片和第
j
j
j段文本的相似度
s
i
,
j
I
s^I_{i,j}
si,jI和
s
i
,
j
T
s^T_{i,j}
si,jT。以往的方法,如CLIP和ALIGN都只是简单的对图像或文本分别编码作为全局特征并计算两者的相似度
s
i
,
j
I
=
s
i
,
j
T
=
f
θ
(
x
i
I
)
⊤
g
ϕ
(
x
j
T
)
(2)
s^I_{i,j}=s^T_{i,j}=f_\theta(x^I_i)^{\top}g_\phi(x^T_j)\tag{2}
si,jI=si,jT=fθ(xiI)⊤gϕ(xjT)(2)
忽略了两种模态之间的细粒度交互(如词-patch对齐)。为了缓解这一问题同时保证双流模型的训练和推理效率,受ColBERT启发我们采用了一种跨模态后交互对token式跨模态交互进行建模。
具体而言,将
n
1
n_1
n1和
n
2
n_2
n2分别作为第
i
i
i张图像和第
j
j
j段文本的非填充token数量,对应编码为
f
θ
(
x
i
I
)
∈
R
n
1
×
d
f_\theta(x^I_i)\in\R^{n_1\times d}
fθ(xiI)∈Rn1×d和
g
ϕ
(
x
j
T
)
∈
R
n
2
×
d
g_\phi(x^T_j)\in\R^{n_2\times d}
gϕ(xjT)∈Rn2×d。对于第
k
k
k个视觉token,我们计算它和
x
j
T
x^T_j
xjT中所有文本token的相似度,并使用最大的一个
max
0
≤
r
<
n
2
[
f
θ
(
x
i
I
)
]
k
⊤
[
g
ϕ
(
x
j
T
)
]
r
(3)
\text{max}_{0\leq r<n_2}[f_\theta(x^I_i)]_k^\top[g_\phi(x^T_j)]_r\tag{3}
max0≤r<n2[fθ(xiI)]k⊤[gϕ(xjT)]r(3)
作为它与
x
j
T
x^T_j
xjT的token-wise最大相似度。随后我们使用所有图像(文本)非填充token的平均token-wise最大相似度作为图像到文本(文本到图像)的相似度。因此第
i
i
i张图像到第
j
j
j段文本的相似度可以表示为:
s
i
,
j
I
(
x
i
I
,
x
j
T
)
=
1
n
1
∑
k
=
1
n
1
[
f
θ
(
x
i
I
)
]
k
⊤
[
g
ϕ
(
x
j
T
)
]
m
k
I
(4)
s^I_{i,j}(x^I_i,x^T_j)=\frac{1}{n_1}\sum^{n_1}_{k=1}[f_\theta(x^I_i)]_k^\top[g_\phi(x^T_j)]_{m^I_k}\tag{4}
si,jI(xiI,xjT)=n11k=1∑n1[fθ(xiI)]k⊤[gϕ(xjT)]mkI(4)
其中
m
k
I
=
argmax
0
≤
r
<
n
2
[
f
θ
(
x
i
I
)
]
k
⊤
[
g
ϕ
(
x
j
T
)
]
r
m^I_k=\text{argmax}_{0\leq r<n_2}[f_\theta(x^I_i)]_k^\top[g_\phi(x^T_j)]_r
mkI=argmax0≤r<n2[fθ(xiI)]k⊤[gϕ(xjT)]r。类似地,第
j
j
j段文本到第
i
i
i张图像的相似度为:
s
i
,
j
T
(
x
i
I
,
x
j
T
)
=
1
n
2
∑
k
=
1
n
2
[
f
θ
(
x
i
I
)
]
m
k
T
⊤
[
g
ϕ
(
x
j
T
)
]
k
(5)
s^T_{i,j}(x^I_i,x^T_j)=\frac{1}{n_2}\sum^{n_2}_{k=1}[f_\theta(x^I_i)]_{m^T_k}^\top[g_\phi(x^T_j)]_k\tag{5}
si,jT(xiI,xjT)=n21k=1∑n2[fθ(xiI)]mkT⊤[gϕ(xjT)]k(5)
其中
m
k
T
=
argmax
0
≤
r
<
n
1
[
f
θ
(
x
i
I
)
]
r
⊤
[
g
ϕ
(
x
j
T
)
]
k
m^T_k=\text{argmax}_{0\leq r<n_1}[f_\theta(x^I_i)]_r^\top[g_\phi(x^T_j)]_k
mkT=argmax0≤r<n1[fθ(xiI)]r⊤[gϕ(xjT)]k。要注意,公式(4)中的
s
i
,
j
I
(
x
i
I
,
x
j
T
)
s^I_{i,j}(x^I_i,x^T_j)
si,jI(xiI,xjT)不一定要等于公式(5)中的
s
i
,
j
T
(
x
i
I
,
x
j
T
)
s^T_{i,j}(x^I_i,x^T_j)
si,jT(xiI,xjT)。
注意事项:从直观上看,公式(3)中的token-wise最大相似度意味着对于每个图像patch,我们找到了其最相似的文本token。类似地,对于每个文本token,我们也找到了与其最接近的图像patch。将其应用于公式(4)和公式(5)的相似度计算中来得出对比损失(1)。
在ColBERT中,原始的后交互机制计算文档到填充掩码token查询的相关性得分,作为token-wise最大相似度的和并通过一个pairwise softmax交叉熵损失进行优化。尽管受到ColBERT的启发,我们在不同方面提出了跨模态后交互。首先,在计算相似度时,我们排除了填充文本token,因为它们会损害性能。我们推测,这是因为填充token也学习了文本表示并误导模型将图像patches与这些无意义的填充tokens对齐,而不是和那些有意义的非填充words对齐。其次,当计算相似度(4)和(5)时,我们使用token-wise最大相似度的平均值而不是ColBERT中的总和。这是因为非填充tokens的数量因文本的不同而不同,所有非填充tokens的总和可能会有相当大的差异,导致训练不稳定以及更差的最终性能。第三,我们通过对比损失(1)优化后期交互机制,发现视觉-语言预训练的效果更强大,而不是Colbert中最初的成对损失(pairwise loss)。
训练效率:尽管与原始损失相比,跨模态后期交互能够捕捉更细粒度的特征,但它依赖于两种模态的token-wise表示。这在通信,储存和计算方面效率低下,尤其是当批处理尺寸很大时。为缓解这一问题,我们使用了几种方法。首先,我们将嵌入(embedding)尺寸减小到256。此外,在分布式学习中,我们在节点通信之前将两种模态的最后一层特征的计算精度从fp32降低到fp16,并在降低精度后进行公式(4)和(5)的乘法运算。由于相似度计算的复杂性与文本tokens和图像patches的序列长度有关。根据直觉,每个样本可以由几个最具代表性的tokens表示。对于每个图像(文本),我们在节点通信之前从同一本地工作台的所有文本(图像)中选择token-wise最大相似度得分(公式(3))最高的25%tokens。这些调整的影响将在4.4中探讨。
3.1.2 提示合集与模板
由于预训练过程中的多义性和不一致的问题,借鉴CLIP我们也使用提示模板(prompt template)来增强一些下游任务的原始标签。为了直观和简洁,我们在整篇文章中只使用一个提示模板,即 “a photo of a {label}”。在其他实验中,我们使用CLIP中提示集合报告结果。当允许多个提示时,同一标签的不同提示模板的token-wise表示是不同的,不能像CLIP那样求和形成平均文本表示。因此,我们不通过平均文本表示来集成不同的提示模板,而是使用平均token-wise相似度。具体而言,假设有
C
C
C个提示模板,每个标签被扩充为
C
C
C个不同的文本
x
1
T
,
x
2
T
,
⋯
,
x
C
T
x^T_1,x^T_2,\cdots,x^T_C
x1T,x2T,⋯,xCT。图像
x
I
x^I
xI与该标签的相似度计算为
1
C
∑
c
=
1
C
s
.
,
.
I
(
x
I
,
x
c
T
)
\tfrac{1}{C}\sum^C_{c=1}s^I_{.,.}(x^I,x^T_c)
C1∑c=1Cs.,.I(xI,xcT),其中
s
.
,
.
I
s^I_{.,.}
s.,.I在公式(4)中定义。
受GPT的启发,我们使用统一的基于规则的方法为图像分类任务构建提示模板。具体而言,每个模板由四部分组成:
[prefix]{label},[category description].[suffix]
(6)
\text{[prefix]\{label\},[category description].[suffix]}\tag{6}
[prefix]{label},[category description].[suffix](6)
这里的“[prefix]”是一个上下文描述,类似于CLIP中的“a photo of a”;“label”是数据集的类标签;“[category description]”描述的是对一些细粒度图像分类数据集有帮助的类别,例如Oxford-IIIT Pets数据集的“a type of pet”。一个有趣发现是,添加一个后缀其中包括参考词“it”(例如“I like it”)在提示的最后能够有效提高所提出的模型的zero-shot分类性能。我们推测这是因为参考词“it”加强了细粒度跨模态对齐,因为它也可以与目标对象的图像patches对齐。不同数据集的详细提示模板可以在附录A4中找到。
3.2 图像和文本增强
为了提高模型的泛化性和数据效率,我们在预训练阶段对图像和文本进行数据增强以创建更多的图像-文本对。我们采用AutoAugment,遵循SOTA视觉识别方法进行图像增强。对于文本增强,为确保增强后的文本在语义上与原始文本相似,我们使用回译重写原始文本。具体来说,就是首先将文本翻译成目标语言,然后再翻译回源语。我们选择德语和俄语作为目标语言,并为每一对图像-文本对额外获得两个文本。在预训练过程中构造一个批次的图像-文本对时,从三个候选文本(即原始文本和两个回译文本)中随机抽取每个图像-文本对的文本。
3.3 预训练数据集
一个足够大的图像-文本数据集是视觉-语言预训练的先决条件。最近的CLIP和ALIGN分别使用400M和1800M图像-文本对构造数据集。在该工作中,我们也构造了一个名为FILIP300M的大型数据集,它由300M图像-文本对组成,涵盖了板视觉和语言概念。具体而言,我们从互联网上收集图像-文本对,并应用基于图像和文本的过滤规则来清理数据。对于基于图像的过滤,我们将短维小于200像素并且宽高比大于3的图像移除。对于基于文本的过滤,我们只保留英文文本,并排除无意义的文本,如img_0.jpg。我们还抛弃了文本重复超过10次的图像-文本对。此外,我们使用了3个公共数据集,包括Conceptual Captions 3M (CC3M), Conceptual 12M (CC12M) 和 Yahoo Flickr Creative Commons 100M(YFCC100M)。我们对YFCC100M采用相同的过滤规则。最后我们使用大约340M的图像-文本对进行预训练。尽管我们使用一个比CLIP和ALIGN更小的训练数据集,但我们的模型在大多数下游任务中仍优于它们(见第4节)。
4 实验
4.1 实验设置
模型架构:我们从零开始训练两个模型,
FILIP
base
\text{FILIP}_{\text{base}}
FILIPbase和
FILIP
large
\text{FILIP}_{\text{large}}
FILIPlarge。模型架构遵循CLIP,
FILIP
base
\text{FILIP}_{\text{base}}
FILIPbase和
FILIP
large
\text{FILIP}_{\text{large}}
FILIPlarge的图像编码器分别为ViT-B/32和ViT-L/14。更多详情请见附录A.2。
预训练细节:为了节约内存和扩张批次大小,我们使用自动混合精度(automatic mixed-precision)和梯度检查点(gradient checkpoint)。在预训练中输入图像的大小被调整到
224
×
224
224\times224
224×224分辨率,遵循CLIP的设置文本的最大长度被限制在77tokens。训练主要是在Nvidia V100 GPUs 和 Ascend Cards上进行的。
FILIP
base
\text{FILIP}_{\text{base}}
FILIPbase在128张卡上大约训练了9天,
FILIP
large
\text{FILIP}_{\text{large}}
FILIPlarge在192张卡上大约训练了24天。除非另有说明,我们使用
FILIP
large
\text{FILIP}_{\text{large}}
FILIPlarge与其他方法对比,使用
FILIP
base
\text{FILIP}_{\text{base}}
FILIPbase进行消融实验。我们使用LAMB优化器和带有线性warm up的余弦学习率衰减来训练这两个模型。在对比损失中,除偏置、归一化层、token嵌入、位置嵌入和temperature外,其他所有的参数都使用加权衰减正则化。不同数据集和模型的超参数详细数值见附录A.2。
4.2 ZERO-SHOT图像分类
在本节中,我们评估了FILIP在zero-shot图像分类任务上的性能。我们在12个下游分类数据集上使用与CLIP相同的配置对比了FILIP和CLIP。如3.1.2所述,我们为每个数据集设置一组提示,并集成它们以获得最终结果(详见附录A.4)。这里我们只和CLIP对比zero-shot能力,因为ALIGN没有发布模型并且相关性能也没有在他们的论文中报告。
表1展示了12个数据集上的性能结果。尽管使用较少的训练数据(340M vs. 400M),但在12个数据集上 FILIP base \text{FILIP}_{\text{base}} FILIPbase和 FILIP large \text{FILIP}_{\text{large}} FILIPlarge的平均top-1精度显著优于CLIP,分别提升了5.6%和3.0%。特别地,我们的FILIP在ImageNet上超越了CLIP,ImageNet是12个数据集中最大的数据集。FILIP还在一些特定领域的数据集上获得了显著的性能提升,例如在Aircrafts数据集上两个FILIP模型平均比CLIP提高了30%。我们推测这是因为CLIP会将整张图片的信息聚合到[CLS]token表示中,而我们提出的FILIP模型通过直接将目标对象对应的图像patches和文本tokens对齐从而更加关注目标对象(word-patch对齐可视化详见章节4.5)。
4.3 图像-文本检索
图像-文本检索包括两个子任务:图像到文本检索和文本到图像检索。我们在两个检索基准数据集上评估FILIP模型:Flickr30K和MSCOCO,二者都在zero-shot和微调设置下。更多实验设置的细节详见附录A.2。
表2和表3分别展示了zero-shot和微调图像-文本检索的结果。我们将FILIP模型与带有复杂注意力层的模型进行比较,其中包括:Unicoder-VL、ImageBERT、UNITER 、VILLA、ERNIE-ViL、Oscar、VinVL 和 ALBEF,同时和大规模图像-文本数据集训练的模型比较(CLIP 和 ALIGN)。正如我们所看到的,除了Flickr30K上的zero-shot文本到图像检索实现了与SOTA相竞争的性能外,FILIP在Filckr30K和MSCOCO数据集上的所有指标都达到了最先进的性能。对于MSCOCO数据集上的zero-shot图像到文本检索,我们所提出的FILIP的绝对R@1比在更大数据集上训练的ALIGN高出2.7%。
4.4 消融实验
各组件的有效性:我们研究了FILIP中各个组件的有效性,即图像/文本增强和跨模态后期交互。使用 FILIP base \text{FILIP}_{\text{base}} FILIPbase将YFCC100M的过滤子集(如3.3节所述)作为训练集进行zero-shot检索和图像分类任务实验。我们计算了模型在MSCOCO数据集上的zero-shot图像-文本检索性能和在ImageNet上的zero-shot分类性能,这是两个衡量模型所学的视觉-语言表示的质量的有效指标。
表4展示了这一结果。可以看到,这三个组件对这两个任务都是有益的。尽管设计简单,但跨模态后期交互相比基准(the vanilla CLIP ViT-B/32)带来了显著的性能提升。在MSCOCO的图像到文本(文本到图像)检索中的R@1提升了5.5%(3.8%)。在ImageNet的zero-shot分类中的top-1精度提升了3.9%。当所有组件组合在一起时,可以看到更进一步的提升。
跨模态后期交互的效率研究:由于3.1.1中的后期交互机制要求计算所有视觉和文本tokens之间的相似度,因此当在大规模分布式训练中使用时它的计算效率可能是一个问题。如3.1.1所述,我们做了几种方法来解决这一问题。表5展示了这些方法对于ImageNet上的zero-shot分类的效率提升。
可以看到,这些方法提高了后期交互的效率并且没有减少精度。结合这三种方法只能达到比CLIP原始损失更慢的训练速度和更大的内存消耗。
4.5 细粒度对齐可视化
在本节中,我们将使用word-patch对齐的方法来可视化FILIP捕捉跨模态细粒度交互的能力。为了公平比较,我们在大小相同的YFCC100M和CLIP的ViT-B/32上训练
FILIP
base
\text{FILIP}_{\text{base}}
FILIPbase并进行可视化。每张图像都被切片成
7
×
7
7\times7
7×7的图像patches。更多可视化结果见附录A.3。
可视化方法:word-patch对齐是基于图像patch和文本token之间的token-wise相似度进行的。具体而言,对于第k个图像patch,将与之相似度最大的文本token的位置索引作为其预测标签(如公式(4)中的
m
k
I
m^I_k
mkI),并将其置于中心。以“bolloon”类为例。在标记化文本序列中有8个标记:“[BOS] a photo of a balloon. [EOS]”,类别标签“balloon”的位置索引为“5”。值得注意的是,一个类标签可以被标记为多个token。为类别标签对应的文本tokens的位置索引用红色高亮表示,而其他用白色。一个能够学习细粒度表示的理想模型可以将目标对象的图像patches预测为红色索引。
观察结果:图2展示了在ImageNet数据集的四个类别上FILIP和CLIP的word-patch对齐结果。如图所示,FILIP在以下几个方面展现了对图像的细粒度理解。(1)单一对象:从“small white butterfly”类的可视化中可以得知,涵盖对象的图像patches被全部分类正确。(2)不同大小的相同对象:从“balloon”类和“lifeboat”类的可视化中可以得知,所有不同形状和位置的目标对象对应的图像patches都被正确分类。(3)目标对象的关键部位:对于“electric locomotive”类,有两个对于正确分类图像的关键部位,即“electric”和“locomotive”,其对应的文本token索引分别是“5”和“6”。可以看到,与这两个关键部位匹配的图像patches分别被正确分类。另一方面,CLIP不能正确将图像patches与其相对应的文本tokens对齐。与ViLt使用额外最优传输对齐文本word和图像patch分布相比,我们的方法能够简单自动地学会word-patch对齐。
5 结论和未来工作
本文介绍了一种简单而通用的面向细粒度视觉-语言预训练框架——FILIP。通过使用token-wise最大相似度,我们的方法学习了图像patches和语句words的细粒度表示。尽管它在各种下游任务的多个大规模多模态预训练上取得了优异的结果,但其架构和训练过程仍还有进一步优化的空间。在未来,可以使用更加先进的图像编码器和精心设计的交互层来提高性能。此外,我们可以进一步增加更多的掩码语言/图像损失以支持更多的生成任务。为此,我们希望扩展FILIP成为一个通用统一接口以解决各式各样的视觉-语言任务。