CoCa模型解析

CoCa模型解析

Tags
Created
Oct 22, 2023 03:11 PM
Multi-select
DALL-E-3
CLIP
SIMVLM
CoCa
Author
前几日OpenAI将DALL-E 3上线到了ChatGPT,还发表了详细的论文。阅读该论文我们会发现,其本质的提升主要还是依赖于图像描述数据的增强,而如何获得比以往数据集更好的图像描述,很大程度上依赖了CoCa(Contrastive Captioners are Image-Text Foundation Models)模型,本文就让我们来深入探讨一下CoCa模型的前世今生。

前世的基础模型

自监督的预训练模型在深度学习领域早已发展的十分成熟,它在各种不同的下游任务中取得了令人瞩目的成果。比如在NLP领域的Bert或是图像领域的ResNet等,这些通常用于下游任务单编码器模型中的编码器,而在自然语言+机器视觉的多模态场景下,又有带对比损失的图像-文本双编码器模型,以及具有生成目标的编码器-解码器模型两个研究方向,它们的研究奠定了CoCa的基础,因此在正式开始探讨CoCa模型之前,我们先来看一下这些基础研究的思路和局限。
 

单编码器模型

 
单编码器模型就是以前最常见的两段式模型结构。通过一个大的预训练模型来对原始内容进行编码,然后在输出层使用带标签的数据进行可监督微调,通过最小化模型输出与标签交叉熵的方式,如下图所示,其他如文本类任务也是同理。
单编码器模型结构示意
单编码器模型结构示意
这些模型早已在许多单一任务中得到了实证上的卓越表现,但在涉及视觉语言的任务中,由于过于依赖人工注释而表现较差,这限制了它们融入人类自然语言的能力。

对比图像-文本双编码器模型

这类模型,最流行的莫过于OpenAI开源的CLIP模型。它们在预训练阶段,我们通过使用对比损失来联合训练图像和语言模型,学习一个对齐任务。
此类模型的想法十分简单,其本质上其实就是一个双塔模型,然后将双塔的输出计算对比损失:将图像-文本的正确配对表示聚集在一起,使不相关的图像和文本表示远离,使它们在相同的潜空间中分离。结果得到的双编码器模型可以用于执行零样本分类任务和图像检索。
CLIP 训练及使用示意
CLIP 训练及使用示意
正如CLIP,已经在各种视觉语言任务上取得了卓越的性能,但几乎无法用于需要图像和文本融合表示的任务,比如视觉问答,因为我们只学习了对齐图像和文本表示而没有生成编码了图像和文本输入信息的统一表示。
 

编码-解码架构的生成式模型

这些模型利用图像和文本隐藏表示之间的跨模态交互来生成一个联合表示。
在预训练过程中,我们通过隐藏文本表示和图像编码器输出之间的跨模态交互生成图像和文本的统一表示,并在解码器输出上应用语言模型损失。
在最近的机器学习架构中,跨模态交互主要通过transformer中的cross attention来实现,其中将图像编码器输出用作query,隐藏文本表示用作key和value。
notion image
对于下游任务,我们可以利用解码器的输出,即图像和文本的联合表示,执行各种多模态图像-文本理解任务,如视觉问答。最近使用这一范式的一个模型是简单视觉语言模型(SIMVLM)。
SIMVLM模型结构
SIMVLM模型结构

CoCa模型

 
CoCa(Contrastive and Causal Attention)模型的动机是将对比目标和生成目标者两种不同的图像语言模型范式融合到一个简单的模型中。CoCa的设计使用对比损失学习将图像表示和文本表示对齐到一个向量空间中,并使用生成目标(生成图像的描述损失)学习联合的图像-文本表示,从而将 CLIP 和 SIMVLM 等模型的能力融入到一个单一的模型中。
CoCa同许多模型一样,采用了标准的编码器-解码器方法,其独特之处在于编码器和解码器的输出设置,COCA作者采用了一个解藕的的解码器设置,第一部分用于学习对比目标生成单模态的文本表示,第二部分用于生成多模态的图像-文本表示:
CoCa模型结构
CoCa模型结构
 

对比目标

正如之前提到的,对比目标的想法十分简单,跟CLIP等模型使用的对比学习的思想一致,即通过学习图像和文本的表示,使得相似的对在表示空间中彼此更接近,不相似的对则远离。
 
关于文本表示,我们可以使用Bert中的经典技术,引入一个可学习的分类标记[CLS]作为输入序列的一部分,通过该标记的输出向量捕获整个输入序列的语义。
类似的,图像编码器的输出部分与分类标记嵌入一起使用来估计对比损失,并一部分被发送到解耦设置的上部来估计联合概率。COCA作者通过经验确定单个池化嵌入输出有助于捕获图像的全局表示,而一系列嵌入输出有助于完成更细粒度的图像表示。为了实现这一目标,采用了一个注意力池化层,通过可学习的查询参数来定制针对不同目标的图像编码器输出。对于对比目标,查询参数设置为1以获得单个嵌入进行计算,对于生成目标,查询参数设置为任意值,一般选择与序列长度相等。在论文中,生成目标选择了256作为查询参数,用于对比损失的注意力池设置的输出是一个单个256维的嵌入。
图像表示过程
图像表示过程
 
我们使用单个查询池化embedding作为整个图像的特征表示,用于和文本表示计算对比损失。
 

生成目标

生成型目标 与对比目标不同,生成型目标在生成更细粒度的图像表示时更有效。 如前所述,我们通过将查询参数设为任意数字(在CoCa论文中为256)来获得细粒度的图像表示,从而生成了256 x 256的丰富图像表示。 这个表示被传递给解耦解码器设置的上部,并通过与单模态文本表示的跨模态交互(忽略CLS表示),我们获得了统一的图像-文本表示,这个表示被用来通过自回归分解预测词汇的概率分布。 图11所示。 正如本文的前两节所示,CoCa模型的架构允许吸收一类在零样本学习任务中表现出色的模型的能力,如图像分类和跨模态检索,以及另一类在VQA和图像字幕领域表现出色的模型的能力。CoCa模型也可以在几个下游视觉和语言任务上进行微调。
生成结构
生成结构
 
 

总结

 
CoCa作为基础模型在机器学习领域迈出了重要的一步。CoCa集合了各种范式的优势,提供了一个统一的模型,能够对齐图像和文本表示,并生成联合的图文表示。
 
该模型证明了将对比和生成目标整合起来的潜力,为视觉问答和图像字幕等任务的性能提供了提升。它兼具在零样本学习任务上表现出色的模型和在多模态图文理解任务上熟练的模型的能力,为众多下游视觉和语言任务提供了一个多功能工具,为DALL-E 3这种更符合人类使用习惯的图生文模型奠定了基础,正让文生图的过程朝着弱化提示工程的方向发展,或将加速产业的发展。
 

Loading Comments...