本文介绍论文『SimVLM: Simple Visual Language Model Pretraining with Weak Supervision』,由 CMU&Google 提出弱监督极简 VLP 模型,SimVLM,拒绝各种花里胡哨!在多个多模态任务上性能 SOTA。
详细信息如下:
- 论文链接:https://arxiv.org/abs/2108.10904
- 项目链接:尚未开源
导言:
随着视觉和文本表示联合建模的进展,视觉语言预训练(VLP)在许多多模态下游任务上取得了非常好的性能。然而,对包括图像描述和区域标签在内的标注信息,限制了这一方向的进一步方法。此外。随着引入多个数据集特定的目标,预训练过程也变得更加复杂。在这项工作中,作者放宽了这些约束,提出了一个极简的预训练框架,名为Simple Visual Language Model (SimVLM)。
与之前的工作不同,SimVLM通过利用大规模的弱监督来降低训练的复杂性,并使用单个前缀语言建模目标来进行端到端训练。在不使用额外数据或特定任务定制的情况下,SimVLM模型结果显著优于以前的预训练方法,并在多个的鉴别和生成视觉语言基准数据集上取得了新的SOTA的结果(VQA ( 3.74% vqa-score), NLVR2 ( 1.17% ), SNLI-VE ( 1.37% ) , image captioning ( 10.1% CIDEr ))。此外,作者还证明了SimVLM获得了较强的泛化和迁移能力,能够进行包括开放式视觉问题回答等zero-shot任务。
01
Motivation
基于文本任务的自监督学习已经推动了自然语言处理(NLP)任务的SOTA性能到一个新的阶段。一些成功的方法(比如BERT)是在大规模无标签文本的数据集上用MLM任务进行预训练,然后在下游任务上微调。虽然这种预训练-微调范式已经被广泛采用,但最近关于自回归语言模型(LM)的工作(比如GPT-3)展现了更强大的性能,并且没有进行微调,表明文本引导的zero-shot泛化是一个很有前途的替代方案。
受文本表示预训练的启发,研究者开始构建多模态预训练模型。目前,也有一系列工作探索了视觉语言预训练(VLP),学习两种模态的联合表示,然后在视觉语言(VL)基准数据集上微调。为了捕获图像和文本之间的对齐,以前的方法利用了多个类型的双模态的标记数据集。处理步骤通常如下:
- 首先,使用目标检测数据集来训练监督训练目标检测器(OD),允许从图像中进一步提取感兴趣区域(ROI)特征。
- 接下来,使用对齐的图像-文本对的数据集进行模型的MLM预训练,该模型通常以提取的ROI特征和成对文本的concat结果作为输入。
- 此外,由于标注数据的规模有限,为了提高性能,还引入了各种特定于任务的辅助损失。
这些设计使VLP的预训练复杂化,为进一步提高performance创造了瓶颈。更重要的是,这种基于预训练-微调的方法通常缺乏zero-shot的泛化学习能力。
为了解决这一问题,还有一些工作利用从网络爬取的弱标记/对齐数据进行预训练,在图像分类和图像文本检索方面获得了良好的性能和一定的zero-shot学习能力。
鉴于现有技术的这些缺点,作者希望建立一个VLP模型,具有下面三个优点:
- 可以无缝地插入到预训练-微调范式中,并在标准VL基准数据集上实现比较好的性能;
- 不像以前的方法那样需要一个复杂的预训练目标;
- 在跨模态设置中具有文本引导的zero-shot泛化的能力。
因此作者提出了SimVLM,Simple Visual Language Model,通过仅利用弱对齐的图像-文本对上的语言建模,大大简化了VLP的训练流程。SimVLM由以下组件组成:
- Objective ,它使用前缀语言建模(PrefixLM)的单一目标,进行端到端训练。它不仅可以像GPT-3那样自然地执行文本生成,而且还可以像BERT那样以双向的方式处理上下文信息。
- Architecture ,它采用了ViT的结构,直接将原始图像作为输入。这样的模型也适合大规模的数据,并很容易与PrefixLM目标兼容。
- Data ,这些设置减轻了目标检测的需求,并允许模型利用大规模的弱标记数据集,这对zero-shot泛化有更好的效果。
SimVLM不仅更简单,既不需要目标检测预训练,也不需要辅助损失,而且还获得了比以往工作更好的性能。在实验结果上看,SimVLM优于现有的VLP模型,并在6个VL基准测试上实现了SOTA性能,而无需额外的数据或任务特定的设置。此外,它在视觉语言理解中获得了更强的泛化性能,支持zero-shot图像字幕和开放式VQA。本文的工作表明,通过一个简单的预训练框架,模型可以获得强大的视觉语言理解能力。
02
方法
2.1背景
双向Mask语言建模(MLM)一直是文本表示学习中最流行的自监督训练目标函数之一。正如BERT所证明的那样,它是基于去噪自动编码器的想法,从而训练模型以恢复文档中损坏的token。具体来说,给定一个文本序列x,将随机采样一个token子集,并通过用一个特殊的[MASK] token替换中的token来构造一个损坏的token序列。训练目标是通过最小化negative log-likelihood,从上下文重建:
其中,θ为模型的可训练参数,D为预训练数据。这种方法学习上下文表示,可以进一步在下游任务进行微调。MLM样式的预训练在以往的VLP模型中已被广泛采用,其中输入是一个图像-文本对,模型需要利用图像ROI特征来预测mask token。
此外,也可以使用单向语言建模(LM)训练模型,最大化自回归分解下序列x的可能性:
与MLM相比,LM预训练也被证明对多个NLP任务是非常有效的。更重要的是,它使模型具有强大的生成和泛化能力。
2.2 前缀语言建模
受到带有LM损失的预训练能够引入较强的 zero-shot能力的启发,作者提出使用前缀语言建模(PrefixLM)来获得视觉语言表示。PrefixLM不同于标准的LM,它允许对前缀序列进行双向注意,并且只对剩余的token进行单向的注意。在预训练过程中,随机选择长度为的token的前缀序列从输入序列中截断,训练目标变成:
直观地说,图像可以被视为其文本描述的前缀。因此,对于给定的图像-文本对,作者将长度为的图像特征序列置于文本序列之前,并强制模型对长度为的前缀进行采样,来计算文本数据的LM损失。与之前的MLM风格的VLP方法相比,在序列到序列框架下的PrefixLM模型不仅具有MLM中的双向上下文表示,而且可以执行类似于LM的文本生成。
2.3结构
作者采用Transformer结构作为模型的主干网络,因为它在语言和视觉任务上的成功。与标准LM不同的是,PrefixLM允许前缀序列内的双向注意,因此它同时适用于decoder-only和encoder-decoder的序列到序列的语言模型。在实验中,作者发现编码器-解码器模型引入的将编码与生成解耦的归纳偏置有利于下游任务的性能提升。
本文的模型结构如上图所示,对于视觉模态,作者将图片分成了多个patch,然后flatten成一维序列(这一步就类似视觉Transformer的预处理)。对于文本模态,作者使用可学习的embed层将单词进行embedding。为了保留位置信息,作者分别为图像和文本输入添加了两个可训练的一维位置编码向量,并另外为Transformer层内的图像patch添加了二维相对注意力。
2.4数据集
本文的方法不依赖于目标检测模块,只使用原始图像patch输入进行操作。作者使用大规模的带噪声的图像-文本数据从头开始对所有模型参数进行预训练,这使得模型具有更好的zero-shot泛化的能力。此外,本文的PrefixLM训练目标是模态无关的,因此作者另外采用了只包含文本的语料库,以补偿文本数据中的噪声影响。
与之前由两个预训练阶段和多个辅助目标组成的VLP方法相比,本文的SimVLM只需要使用端到端用语言损失函数进行预训练。
03
实验
3.1设置
3.1.1预训练
作者在大规模的web数据集上对图像文本和仅文本输入进行预训练。对于联合视觉和语言数据,作者利用了ALIGN的训练集(包含大约1.8B个有噪声的图像-文本对)。除了简单的随机调整大小的裁剪外,本文不使用任何额外的数据预处理。对于仅文本的数据集,作者采用了 Colossal Clean Crawled Corpus (C4)数据集。
3.1.2微调
Visual question answering
这个任务要求模型回答关于输入图像的问题,作者使用 VQA v2数据集进行微调。将原始图像和相应的问题分别作为编码器和解码器的输入,然后训练一个特定于任务的线性分类器来预测答案。作者使用分辨率为480×480的图像,所有的位置参数都采用线性插值。
Visual entailment
这个任务是用来描述给定图像和句子的关系。微调方法类似于VQA,将图像和句子分别输入编码器和解码器,然后训练分类器来预测三种关系。
Visual reasoning
NLVR2数据集通过询问基于一对两个图像的文本描述是否真实,来测试模型对语言和多个图像进行联合推理的能力。作者创建两个输入对,每个输入对由一个图像和文本描述组成,并使用上面相同的设置为两者生成输出embedding。然后将这两个embedding concat起来以进行最终的预测
Image captioning
这个任务需要一个模型来生成输入图像的自然语言描述。对于SimVLM,首先可以直接在编码器中编码图像,然后使用解码器生成字幕。
Multimodal translation
Multimodal translation的目标是将源语言中的图像描述转换为目标语言,因此可以利用图像输入作为grounding信号。作者用PrefixLM,将源句和图像输入给编码器,编码器的结果将被解码器翻译成目标语言。
3.2与现有方法的比较
SimVLM优于所有现有模型,并且在所有任务上都取得了新的SOTA结果,具有显著的优势。
3.3 ZERO-SHOT泛化
3.3.1 ZERO-SHOT图像字幕
SimVLM的zero-shot性能与,CoCo上的监督baseline相比,具有竞争力的结果。
上图为zero-shot的一些定性结果。
3.3.2 ZERO-SHOT Cross-Modality Transfer
可以看出Multimodal translation任务上,SimVLM的zero-shot结果也比其他baseline好。
3.3.3 ZERO-SHOT VQA
上图展示了,SimVLM的定性和定量结果,可以看出,SimVLM的在zero-shot VQA任务上相比其他预训练模型也展现了很大的优势。
04
总结
在这项工作中,作者提出了一个简单而有效的视觉语言预训练框架。与之前基于目标检测和多个辅助损失的工作不同,本文的模型(SimVLM)处理整个图像作为patch,并使用单个前缀语言建模目标,从而进行端到端训练。
在各种视觉语言的基准数据集测试上,SimVLM不仅获得了SOTA的性能,而且在视觉和文本理解中也表现出了不错的zero-shot性能。本文的工作为VLP中的zero-shot学习迈出了新的一步。