我们在单模态图像和文本嵌入之间应用了一个对比损失,此外还在多模态解码器输出上应用了一个字幕损失,它预测了自回归的文本标记。通过共享相同的计算图,可以以最小的开销高效地计算两个训练目标。通过将所有标签简单地视为文本,CoCa对web规模的替代文本数据和注释图像进行端到端从头预训练,无缝地将自然语言监督统一为表示学习。根据经验,CoCa在广泛的下游任务上通过零镜头传输或最小的特定任务适应实现了最先进的性能,包括视觉识别(ImageNet, Kinetics400/600/700, moment -in- time),跨模态检索(MSCOCO, Flickr30K, MSR-VTT),多模态理解(VQA, SNLI-VE, NLVR2)和图像字幕。
1.预训练任务可以摊平训练成本。应用交叉熵损失的单个图像编码器之类的模型严重依赖于图像注释作为标记向量在图像分类任务上,并且没有融入自由形式的人类自然语言知识,阻碍了它们在涉及视觉和语言模式的下游任务中的应用。
2.最近,一系列研究通过在网络规模的噪声图像-文本对上预训练两个具有对比损失的并行编码器,证明了图像-文本基础模型候选的可行性。除了仅用于视觉任务的视觉嵌入外,所得到的双编码器模型还可以将文本嵌入编码到相同的潜在空间,从而实现新的跨模态对齐功能,如零镜头图像分类和图像-文本检索。然而,由于缺少学习融合图像和文本表示的联合组件,这些模型不能直接适用于视觉-语言理解任务,如视觉问题回答(VQA)。
3.另一个研究方向[探索了用编码器-解码器模型进行生成式预训练,以学习通用视觉和多模态表示。在预训练过程中,模型在编码器端获取图像,并在解码器输出上应用语言建模(LM)损失(或PrefixLM)。对于下游任务,解码器输出可以用作多模态理解任务的联合表示。虽然使用预训练的编码器-解码器模型已经获得了优越的视觉语言结果,但它们不能生成与图像嵌入对齐的纯文本表示,因此对于跨模态对齐任务来说不太可行和有效。
本文贡献:
在这项工作中,我们统一了单编码器、双编码器和编码器-解码器范式,并训练了一个包含所有三种方法功能的图像-文本基础模型。我们提出了一个简单的模型家族,名为对比字幕(CoCa),它具有改进的编码器-解码器架构,同时使用对比损失和字幕(生成)损失进行训练。如图1所示,我们将解码器变压器解耦为两个部分,一个单模态解码器和一个多模态解码器。
我们省略了单模态解码器层中的交叉关注来编码纯文本表示,级联多模态解码器层交叉关注图像编码器输出来学习多模态图像-文本表示。我们在图像编码器和单模态文本解码器的输出之间应用对比物镜,在多模态解码器的输出中应用字幕物镜。
此外,通过将所有标签简单地视为文本,CoCa在图像注释数据和噪声图像-文本数据上进行训练。图像注释文本的生成损失提供了类似于单编码器交叉熵损失方法的细粒度训练信号,有效地将所有三种预训练范式纳入单一统一的方法。
视觉预训练
视觉语言预训练
图像-文本基础模型
最近的工作提出了图像-文本基础模型,可以包括视觉和视觉-语言预训练。CLIP[12]和ALIGN证明了在噪声图像-文本对上用对比目标预训练的双编码器模型可以学习强图像和文本表示,用于跨模态对齐任务和零镜头图像分类。
虽然最近的工作也探索了图像-文本的统一,但它们需要单模态和多模态模块的多个预训练阶段才能获得良好的性能。例如,ALBEF结合了双编码器设计的对比损失和屏蔽语言建模(MLM)。然而,我们的方法更简单、更有效地训练,同时也支持更多的模型功能:
(1)CoCa只对一批图像-文本对执行一次向前和向后传播,而ALBEF需要两个(一个在损坏的输入上,另一个没有损坏)
(2)CoCa只从头开始对两个目标进行训练,而ALBEF则从预先训练的视觉和文本编码器初始化,其中包含额外的训练信号,包括动量模块。
(3)自然语言生成首选具有生成损耗的解码器架构,直接实现图像字幕和零镜头学习。
我们首先回顾了三个不同地利用自然语言监督的基础模型家族:单编码器分类预训练、双编码器对比学习和编码器-解码器图像字幕。然后我们介绍了对比字幕(CoCa),它在一个简单的架构下分享了对比学习和图像到标题生成的优点。我们进一步讨论了CoCa模型如何通过零镜头转移或最小任务适应快速转移到下游任务。
Single-Encoder分类。经典的单编码器方法通过在大型众包图像注释数据集(例如,ImageNet [9], Instagram[20]或JFT[21])上的图像分类预训练视觉编码器,其中注释文本的词汇表通常是固定的。这些图像注释通常被映射到离散的类向量学习,交叉熵损失为:
其中p(y)是来自ground-truth真值标签y的一热、多热或平滑标签分布。然后将学习的图像编码器用作下游任务的通用视觉表示提取器。
双编码器对比学习。与单编码器分类的预训练相比,单编码器分类需要人工注释标签和数据清理,双编码器方法利用有噪声的web规模的文本描述,并引入一个可学习的文本塔来编码自由形式的文本。这两个编码器通过将配对文本与采样批中的其他文本进行对比来共同优化:
其中xi和yj是第i对图像和第j对文本的归一化嵌入。N是批大小,σ是对数缩放的温度。除了图像编码器之外,双编码器方法还学习了一个对齐的文本编码器,该编码器支持跨模态对齐应用程序,例如图像-文本检索和零镜头图像分类。经验证据表明,零镜头分类对损坏或分布不均的图像更稳健。
Encoder-Decoder字幕。双编码器方法将文本作为一个整体进行编码,而生成式方法(也称为captioner)旨在获得详细的粒度,并要求模型自回归地预测y的准确标记文本。遵循标准的编码器-解码器架构,图像编码器提供潜在的编码特征(例如,使用Vision Transformer[39]或ConvNets[40]),文本解码器学习在正向自回归分解下最大化成对文本y的条件似然:
编码器-解码器使用教师强制进行训练,以并行计算并最大化学习效率。与以前的方法不同,字幕器方法产生了可用于视觉语言理解的联合图像-文本表示,并且还能够使用自然语言生成图像字幕应用程序。
图2描述了提出的对比捕捉器(CoCa):一种简单的编码器-解码器方法,无缝地结合了三种训练范式。类似于标准的图像-文本编码器-解码器模型,CoCa通过神经网络编码器将图像编码为潜在的表示形式,例如,视觉转换器(ViT)(默认使用;它也可以是其他图像编码器,如ConvNets),并使用因果掩蔽转换器解码器解码文本。与标准的Transformer不同,CoCa省略了解码器层前半部分的交叉注意来编码单模态文本表示,并级联解码器层的其余部分,交叉注意到图像编码器以实现多模态图像-文本表示。因此,CoCa解码器同时产生单模态和多模态文本表示,允许我们应用对比和生成目标作为
其中λCon和λCap为损失加权超参数。我们注意到,当词汇表是所有标签名称的集合时,单编码器交叉分类目标可以被解释为应用于图像注释数据的生成方法的特殊情况。
**解耦文本解码器和CoCa体系结构。**标题方法优化文本的条件似然,而对比方法使用无条件文本表示。为了解决这一困境,并将这两种方法结合到一个单一模型中,我们提出了一个简单的解耦解码器设计,我们将解码器分为单模态和多模态组件,跳过单模态解码器层中的交叉注意机制。也就是说,底部努尼单模态解码器层将输入文本编码为带有因果掩蔽自注意的潜在向量,顶部努尼多模态层进一步将因果掩蔽自注意和交叉注意应用于视觉编码器的输出。所有解码器层都禁止令牌连接到未来的令牌,对于标题目标LCap使用多模态文本解码器输出是很简单的。对于对比目标LCon,我们在输入句尾附加一个可学习[CLS]标记,并使用其对应的单模态解码器输出作为文本嵌入。
我们将解码器分成两半,使得nuni = nmulti。在ALIGN之后,我们用图像分辨率288×288和补丁大小18×18进行预训练,总共得到256个图像令牌。我们最大的CoCa模型(简称“CoCa”)遵循中的ViT-giant设置,图像编码器中包含1b -参数,文本解码器中包含2.1 - b -参数。我们还研究了表1中详细描述的“Coca-base”和“Coca-Large”的两个较小变体。
注意力池化层值得注意的是,对比损失对每个图像使用单个嵌入,而解码器通常在编码器-解码器字幕器中处理图像输出标记序列。我们的初步实验表明,单个池化图像嵌入有助于视觉识别任务作为全局表示,而更多的视觉标记(因此更细粒度)有利于需要区域级特征的多模态理解任务。因此,CoCa采用任务特定的注意池来定制视觉表示,用于不同类型的训练目标和下游任务。在这里,pooler是一个具有nquery可学习查询的单一多头注意层,编码器输出同时作为键和值。通过这种方法,模型可以学习为两个训练目标使用不同长度的嵌入池,如图2所示。特定于任务的池的使用不仅解决了不同任务的不同需求,而且还引入了池程序作为自然的任务适配器。我们在预训练中使用注意池,生成损失nquery = 256,对比损失nquery = 1。
预训练效能去耦自回归解码器设计的一个关键优点是它可以有效地计算两个训练损失。由于单向语言模型是在完整句子上使用因果掩蔽进行训练的,因此解码器可以通过一次正向传播有效地生成对比损失和生成损失的输出(与双向方法[36]的两次传递相比)。因此,大部分计算是在两种损耗之间共享的,与标准的编码器-解码器模型相比,CoCa只引起最小的开销。另一方面,虽然许多现有的方法在各种数据源和/或模式上训练具有多个阶段的模型组件,但CoCa通过将所有标签视为用于对比和生成目标的文本,直接使用各种数据源(即注释图像和噪声替代文本图像)从头到尾进行预训练。
Zero-shot Transfer预训练的CoCa模型通过利用图像和文本输入以零镜头方式执行许多任务,包括零镜头图像分类、零镜头图像-文本交叉检索、零镜头视频-文本交叉检索。根据以往的实践,这里的“零-shot”与经典的零-shot学习不同,在预训练过程中,模型可能会看到相关的监督信息,但在传输协议中没有使用监督示例。对于预训练数据,我们遵循[13,32]中引入的严格的重复数据删除程序,将所有近域示例过滤到我们的下游任务中。
Frozen-feature Evaluation正如前一节所讨论的,CoCa采用特定于任务的注意力池(简单地说就是池器)来为不同类型的下游任务定制可视化表示,同时共享主干编码器。这使得模型能够获得作为冻结编码器的强大性能,其中我们只学习一个新的池器来聚合特征。它还可以用于共享相同的冻结图像编码器计算但不同的特定于任务的头的多任务问题。正如[23]中所讨论的,线性评估难以准确测量学习表征,我们发现注意力池对现实世界的应用更实用。
**CoCa for Video Action Recognition.**我们使用一种简单的方法来启用一个学习的CoCa模型来执行视频动作识别任务。我们首先获取视频的多个帧,并将每个帧分别送入共享图像编码器,如图3所示。对于冻结特征评估或微调,我们在空间和时间特征标记上学习了一个额外的池器,具有软最大交叉熵损失。注意,池程序只有一个查询令牌,因此对所有空间和时间令牌进行池化的计算成本并不高。对于零镜头视频文本检索,我们使用一种更简单的方法,通过计算视频的16帧的平均嵌入(帧从视频中均匀采样)。在计算检索指标时,我们还将每个视频的字幕编码为目标嵌入。
在本节中,我们首先描述我们的实验设置的细节。主要研究结果分别为视觉识别任务、跨模态对齐任务、图像字幕和多模态理解任务。我们的主要成果是在下游任务的三个类别下进行的:零镜头转移,冻结特征评估和微调。我们还介绍了消融实验,包括训练目标和架构设计。