刘天义(1998-), 男, 硕士生, 主要研究领域为计算机视觉
吴祖煊(1991-), 男, 博士, 副研究员, CCF专业会员, 主要研究领域为计算机视觉, 深度学习
陈静静(1990-), 女, 博士, 副研究员, CCF专业会员, 主要研究领域为多媒体内容分析, 计算机视觉, 鲁棒可信人工智能
姜育刚(1981-), 男, 博士, 教授, 博士生导师, CCF专业会员, 主要研究领域为多媒体信息处理, 计算机视觉, 鲁棒可信人工智能
大多数现有的视觉语言预训练方法侧重于理解任务, 并在训练时使用类似于BERT的损失函数(掩码语言建模和图像文本匹配). 尽管它们在许多理解类型的下游任务中表现良好, 例如视觉问答、图像文本检索和视觉蕴涵, 但它们不具备生成信息的能力. 为了解决这个问题, 提出了视觉语言理解和生成的统一多模态预训练(unified multimodal pre-training for vision-language understanding and generation , UniVL). UniVL能够处理理解任务和生成任务, 并扩展了现有的预训练范式, 同时使用随机掩码和因果掩码, 因果掩码即掩盖未来标记的三角形掩码, 这样预训练的模型可以具有自回归生成的能力. 将几种视觉语言理解任务规范为文本生成任务, 并使用基于模版提示的方法对不同的下游任务进行微调. 实验表明, 在使用同一个模型时, 理解任务和生成任务之间存在权衡, 而提升这两个任务的可行方法是使用更多的数据. UniVL框架在理解任务和生成任务方面的性能与最近的视觉语言预训练方法相当. 此外, 实验还证明了基于模版提示的生成方法更有效, 甚至在少数场景中它优于判别方法.
Most existing vision-language pre-training methods focus on understanding tasks and use BERT-like loss functions (masked language modeling and image-text matching) during pre-training. Despite their good performance in the understanding of downstream tasks, such as visual question answering, image-text retrieval, and visual entailment, these methods cannot generate information. To tackle this problem, this study proposes unified multimodal pre-training for vision-language understanding and generation (UniVL). The proposed UniVL is capable of handling both understanding tasks and generation tasks. It expands existing pre-training paradigms and uses random masks and causal masks simultaneously, where causal masks are triangular masks that mask future tokens, and such pre-trained models can have autoregressive generation abilities. Moreover, several vision-language understanding tasks are turned into text generation tasks according to specifications, and the prompt-based method is employed for fine-tuning of different downstream tasks. The experiments show that there is a trade-off between understanding tasks and generation tasks when the same model is used, and a feasible way to improve both tasks is to use more data. The proposed UniVL framework attains comparable performance to recent vision-language pre-training methods in both understanding tasks and generation tasks. Moreover, the prompt-based generation method is more effective and even outperforms discriminative methods in few-shot scenarios.
受自然语言处理中大规模预训练模型成功的启发, 人们提出了各种视觉语言预训练方法, 旨在从大规模图像-文本对中学习多模态表示. 一旦得到了预训练模型, 这些预先训练好的模型就可以进行微调, 以执行各种下游任务. 这种简单的预训练和微调范式最近在许多具有挑战性的视觉和语言任务中显示出巨大的潜力[
视觉语言下游任务分为两类: 理解任务和生成任务. 理解任务包括视觉问答、视觉蕴涵、图像分类和图像文本检索. 大多数现有的视觉语言预训练方法将此类任务规范为判别性任务, 它们要求模型从预定义的答案列表中选择答案, 例如, 对于视觉问答, 现有方法将其描述为多答案分类任务, 并将CLS标记输入额外的线性分类器来得到分类结果[
我们提出了统一的多模态视觉语言理解和生成预训练(unified multimodal pre-training for vision-language understanding and generation , UniVL), 该预训练模型通过共享参数可以同时处理理解任务和生成任务. 我们首先使用图像编码器和文本编码器分别对图像和文本进行编码. 然后, 我们使用一个多模态编码器来融合图像和文本特征, 并使用交叉注意力融合图像特征和文本特征. 与现有的视觉语言预训练方法一样, 该方法使用了两个共同的训练目标, 包括掩码语言建模和图像文本匹配. 然而, 与之前的方法不同, 我们在预训练时不仅使用了双向可见掩码, 还使用了因果掩码. 因果掩码的好处是允许模型进行自回归解码, 这对于完整句子的生成非常重要. 统一的理解和生成预训练得到了具有共享参数的统一模型, 从而减少了训练不同模型的需要.
典型的视觉语言预训练方法总是针对不同的下游任务训练多个任务特定的线性层. 这种策略是为了使预训练的模型适应不同的下游任务, 它需要设计特定于任务的目标函数. 基于模版提示的方法最近引起了人们的注意, 并被证明是简单有效的. 下游任务可以重新规范化为预训练模型在预训练期间学习到的任务模式. 以主题分类为例, 输入的是一个句子, “他在打篮球.”, 输出为多类标签, 包括健康、政治、体育或其他. 我们不需要添加另一个线性分类器来微调预先训练好的模型, 而是可以构造一个查询语句, “他在打篮球. 主题是关于__”, 并要求预训练的模型来填充空白. 填充空白任务对于预训练模型来说很熟悉, 因为它是预训练目标之一(掩码语言建模). 与广泛使用的预训练和微调范式相比, 基于模版提示的方法将不同类型的下游任务的输入输出格式转换为预训练期间模型处理的输入输出格式, 可以更好地释放预训练模型的潜力. 我们将以前的一些分类任务规范为文本生成任务, 并使用语言模版对预训练好的模型进行微调.
本文第1节介绍大规模预训练模型的相关方法和研究现状. 第2节介绍本文构建的统一的多模态视觉语言理解和生成预训练模型. 第3节通过对比实验验证了所提模型的有效性. 第4节总结全文.
随着大规模语言模型上预训练的成功, 视觉语言预训练最近得到了人们关注, 相关研究显示视觉语言预训练模型在多种下游任务上表现优异. 现有的大多数方法都基于Transformer架构, 并使用类似于BERT的训练目标: (1)多模态掩码语言建模[
随着预训练模型的参数数量的增加, 针对某一个下游任务对预训练模型的所有参数进行微调会带来极大的代价. 模版提示方法的思想是将下游任务的数据输入输出格式转换为预训练期间模型已经学习到的格式. 例如, 在自然语言处理中, 情绪分类任务可以表述为带有掩码标记的自然语言句子, 模型需要填写单词positive或negative. 由于数据输入的相似性, 预训练模型可以直接应用于下游任务, 而无需参数调整.
早期基于模版提示的方法通常采用手工制作的模板. 例如, Petroni等人[
本文所提出的预训练模型主要包括视觉编码器、文本编码器和多模态编码器3个部分, 下面就相关部分予以介绍.
我们使用在ImageNet-1k上预训练的ViT[
其中,
我们使用BERT作为文本编码器. 文本编码器和视觉编码器类似, 都包含了几层多头自我注意模块和多层感知机模块, 和视觉编码器的不同点在于层归一化作用于多头自我注意模块和多层感知机模块之后. 输入文本
其中,
多模态编码器与文本编码器类似, 只是需要额外进行一次交叉注意力的计算以融合图像特征和文本特征.
其中,
多头自我注意模块中使用的注意力掩码是双向的, 每个标记都可以关注所有其他标记. 双向可见的掩码在判别性任务中表现良好, 但不适用于生成性任务. 通常, 生成性任务要求模型以自回归方式生成标记, 即从左到右. 为了在预训练时解决这个问题, 我们在文本编码器和多模态编码器的自我注意力模块中以不同的比例混合了两种注意力掩码.
之前的视觉语言预训练方法总是使用[CLS]标记作为图像-文本多模态表示, 并添加其他线性层, 以便对下游任务进行微调. 例如, 在UNITER[
本文提出的模型结构和多模态提示模版
图像-文本对比缺失已被证明对视觉语言预训练有效. 我们利用图像-文本对比损失学习一个共同的低维空间来嵌入图像和文本. 我们将匹配的图像-文本对视为正样本, 将训练批次中的所有其他随机的图像-文本对视为负样本. 我们将两个损失之和最小化: 一个用于图像到文本, 另一个用于文本到图像.
其中,
我们以15%的概率随机屏蔽文本标记, 并用一个特殊的[MASK]标记替换它们, 模型需要使用图像和上下文文本预测被屏蔽词.
其中,
我们使用多模态编码器输出的第一个标记作为视觉语言两种模态的融合表示, 并附加一个完全连接层后使用Softmax来预测两类是否匹配的概率
其中,
我们使用GCC3M和COCO作为预训练的数据集, 我们遵循Karpathy对于COCO的分割方式[
我们使用12层ViT-B/16[
图像文本检索要求模型从候选图像集中选出符合给定描述的图像, 或者从候选描述集中选出符合图像内容的描述语句. 因此, 它包含两个子任务: 图像到文本检索和文本到图像检索. 我们使用图像-文本对比损失和图像-文本匹配损失来评估图像和文本之间的相似性. 在推理过程中, 我们首先使用视觉编码器和文本编码器计算所有图像-文本对的特征相似性. 然后, 我们选择评分最高的前
图像字幕生成旨在生成描述图像内容的句子. 由于我们使用因果掩码对模型进行预训练, 我们的模型可以直接为图像生成一个句子. 在句子生成过程中, 我们首先使用[CLS]标记和[MASK]标记作为输入对图像编码器的输入进行编码. 特殊标记[CLS]是句子的开头, 我们的模型预测[MASK]位置的单词. 然后, 我们将另一个[MASK]标记追加到生成的标记序列中, 并预测下一个单词, 以此类推. 当模型输出[SEP]时, 生成过程终止. 我们在实验中使用了集束搜索, 设置集束大小为5, 并在COCO图像字幕数据集上报告了实验结果.
视觉问答要求模型回答针对给定图像的给定问题. 现有的方法通常将视觉问答描述为一个多答案分类问题. 我们将视觉问答视为文本生成任务. 我们为视觉问答设计了两种提示模版: 自然语言提示模版和可学习上下文的参数化提示模版. 我们在VQAv2[
细粒度图像分类侧重于识别难以区分的图像类, 例如花卉的种类或动物的种类. 我们使用细粒度图像分类任务来评估模型的多模态理解能力. 我们将细粒度图像分类任务规范为文本生成, 并设计自然语言提示模版和可学习上下文的参数化提示模版. 与判别方法相比, 基于模版提示的方法具有更好的小样本学习能力. 我们在Food101[
视觉蕴含[
我们使用图像文本检索任务来评估预训练模型的视觉语言理解能力.
多模态检索实验结果
方法 | 预训练图像数量 | Flickr30k多模态检索结果 (零样本/微调) | ||||||
图像-文本检索 | 文本-图像检索 | |||||||
UNITER | 4M | 83.6/87.3 | 95.7/98.0 | 97.7/99.2 | 68.7/75.6 | 89.2/94.1 | 93.9/96.8 | |
CLIP | 400M | 88/- | 98.7/- | 99.4/- | 68.7/- | 90.6/- | 95.2/- | |
ALIGN | 1.2B | 98.7/ |
99.7/ |
|||||
UniVL | 3M | 86.8/94.3 | 73.4/82.8 | 92.1/96.7 | 96.0/98.4 |
我们使用图像字幕生成任务来评估预训练模型的生成能力. 遵循Karpath的分割方式, 我们在COCO数据集上评估了自动图像字幕生成的性能, 该算法将训练图像和验证图像重新拆分为113287、5000和5000, 分别用于训练、验证和测试. 如
图像字幕生成实验结果
Method | BLEU4 | CIDEr | METEOR | SPICE | |
Unified VLP | 36.5 | 117.7 | 28.4 | 21.3 | |
XGPT | 28.6 | 21.8 | |||
VL-T5 | 34.6 | 116.1 | |||
VL-BART | 34.2 | 114.1 | 28.4 | 21.3 | |
UniVL | 35.6 | 116.8 | 28.6 | 21.4 |
我们将视觉问答规范为文本生成任务, 而不是多答案分类任务. 我们为视觉问答设计了自然语言提示模版和可学习上下文的参数化提示模版. 自然语言提示模版为“[QUESTION] Answer: [ANSWER]”, 其中[QUESTION]表示问题文本, [ANSWER]表示答案文本. 我们屏蔽了[ANSWER]中的单词标记, 并在微调过程中优化掩码语言建模损失. 在推理过程中, 输入文本是“[QUESTION] Answer: [MASK]”. 模型预测单词并将[MASK]反复添加到生成的序列中, 直到生成[SEP]标记. 可学习上下文的参数化提示模版将自然语言提示替换为可学习的标记, 而对于视觉问答, 则是“[QUESTION] [CTX] [ANSWER]”, [CTX]是可学习标记的序列, 我们使用BERT 标记器的[UNUSED]标记作为[CTX]. [CTX]的长度为16. 与自然语言提示符相比, [CTX]是一个参数化的标记提示, 可以与其他参数一起更新.
以前的判别方法将视觉问答规范为一个多答案分类问题, 并要求模型从预定义的答案列表中选择答案. 为了对判别方法和生成方法进行细粒度的比较, 我们将Karpathy的测试数据集拆分为两类: 答案在预定义答案列表中的问题(域内样本)和答案不在列表中的问题(域外样本). 预定义答案列表的大小为3129, 域内样本和域外样本的数量分别为25750和530. 典型的判别方法无法回答域外问题, 因为它们的答案很少, 而且不在预定义的答案列表中. 为了比较判别方法和生成方法的泛化能力, 我们将域外样本的答案附加到预定义的答案列表中, 并使用扩展的答案列表对判别法进行微调. 对于判别方法, 我们将多模态编码器输出的第1个隐状态输入到1个额外的线性分类器中进行答案预测. 如
COCO数据集视觉问答实验结果
方法 | 域内 | 域外 | 平均 |
LC | 70.8 | 3.7 | 69.4 |
NLP | 68.4 | 13.9 | 67.3 |
LCP |
不同训练样本数量下视觉问答实验结果
方法 | 训练样本数量 (域内/域外) | |||
4k | 22k | 44k | 88k | |
LC | 0.5/0 | 5.6/0 | 10.9/0.5 | 15.4/0.9 |
NLP | 0.9/ |
11.9/ |
14.8/1.1 | 18.3/1.6 |
LCP |
为了与最新的视觉语言预训练方法进行公平比较, 我们参考之前的方法UNITER[
视觉问答与视觉蕴含测试集实验结果
方法 | 视觉问答 | 视觉蕴含 | |||
test-dev | test-std | val | test | ||
VisualBERT | 70.8 | 71 | - | - | |
12-in-1 | 73.15 | - | - | 76.95 | |
UNITER | 72.7 | 72.91 | 78.59 | 78.28 | |
VilT | 70.94 | - | - | - | |
VILLA | 79.47 | 79.03 | |||
UniVL | 72.31 | 72.53 |
与视觉问答类似, 我们将图像分类规范为文本生成任务, 并为图像分类设计自然语言提示模版和可学习上下文的参数化提示模版. 自然语言提示模版是“a photo of [CATEGORY]”, 相应的可学习上下文提示是“[CTX] [CATEGORY]”. [CATEGORY]是图像的类名, 我们在微调过程中屏蔽了[CATEGORY]. 如
判别式方法和生成式方法图像分类实验结果
方法 | 微调模块 | Food101 | Flowers102 | DTD |
LC | VE | 92.8 | ||
NLP | VE | 88.4 | 90.1 | 53.3 |
LCP | VE | 92.8 | 93.4 | 62.1 |
TE | 78.6 | 74.6 | 19.2 | |
ME | 79.4 | 76.2 | 20.6 | |
VETE | 92.8 | 93.5 | 63.3 | |
VEME | 93.7 | 63.5 |
不同方法的小样本学习结果
并非所有生成性方法都比判别性方法表现更好. 判别性方法更适合于其他一些类别更少的下游任务, 视觉蕴涵就是其中之一. 我们也设计了自然语言提示模版和可学习上下文的参数化提示模版, 将视觉蕴含规范为文本生成任务. 自然语言提示是“[SENTENCE] Relationship: [LABEL]”, 可学习上下文的参数化提示模版是“[SENTENCE] [CTX] [LABEL]”, [LABEL]是图像和[SENTENCE]之间的关系, 它是蕴涵、中立和矛盾的关系之一. 我们在微调过程中屏蔽了[LABEL]. 与根据每个单词的分数从词汇表中预测一个单词不同, 我们还对每个可能答案的分数进行排序, 并在推理过程中返回分数最高的答案. 它是一种判别性的方法, 与使用额外的线性分类器相比, 它更适用于预训练模型, 因为输入是带有文本的图像, 目标是掩码语言建模. 如
视觉蕴含实验结果 (%)
Method | val | test | |
LC | 78.4 | 78.1 | |
NLP | 65.4 | 65.7 | |
NLP (1in3) | 75.3 | 75.9 | |
LCP | 77.6 | 78.0 | |
LCP (1in3) |
我们首先评估预训练中因果掩码矩阵的有效性.
不同数据量和不同因果掩码矩阵比例实验结果
图像-文本数据对数量 (M) | 因果掩码矩阵比例 | 生成任务 | 理解任务 (%) | |||||||
图像字幕生成 | 视觉蕴含 | 图文检索 | 文图检索 | 图像分类 | ||||||
B1 | B4 | R | C | Acc | Acc | Acc | Acc | |||
0.75 | 0.0 | 15.7 | 3.5 | 10.1 | 11.7 | 50.9 | 56.4 | 43.3 | 64.3 | |
0.33 | 50.7 | 20.2 | 35.8 | 68.5 | 49.6 | 52.1 | 41.0 | 59.7 | ||
0.66 | 58.7 | 23.4 | 37.5 | 78.4 | 47.5 | 51.8 | 39.8 | 66.9 | ||
1.0 | 66.9 | 24.8 | 38.7 | 84.9 | 33.3 | 41.9 | 27.7 | 47.1 | ||
1.5 | 0.0 | 24.9 | 5.3 | 16.8 | 18.2 | 73.5 | 82.6 | 70.4 | 85.4 | |
0.33 | 59.8 | 22.9 | 38.0 | 73.7 | 72.4 | 79.4 | 67.9 | 79.9 | ||
0.66 | 65.1 | 24.8 | 38.9 | 82.4 | 72.2 | 80.8 | 69.4 | 85.1 | ||
1.0 | 69.4 | 26.0 | 39.4 | 89.7 | 61.9 | 70.2 | 61.3 | 61.7 | ||
3.4 | 0.5 |
如
我们使用BERT标记器的[UNUSED]标记作为可学习上下文的参数化模版的组成元素. 对于视觉问答和视觉蕴含, 输入文本包含一个句子、一个提示模版和[MASK]标记, 并且提示模版可以在输入文本的开始处, 或者在输入文本的中间. 值得注意的是, 提示不应该出现在输入的末尾, 因为我们使用了因果掩码, [MASK]标记不能处理右侧的标记. 对于图像分类, 输入文本仅包含[CTX]和[MASK], 提示模版应该在[MASK]的左侧. 如
不同提示模版长度和位置实验结果
Task | Position | 模版长度 | |||||
1 | 4 | 8 | 16 | 32 | |||
VQA | begin | 66.4 | 69.2 | 70.4 | 70.8 | 71.0 | |
VQA | mid | 67.9 | 69.5 | 70.4 | 71.0 | 71.1 | |
VE | begin | 77.3 | 78.2 | 78.8 | 79.4 | 79.9 | |
VE | mid | 77.5 | 78.5 | 78.6 | 80.1 | 80.1 | |
IC (Food101) | begin | 90.6 | 91.4 | 91.9 | 92.1 | 92.5 | |
IC (Flowers102) | begin | 93.0 | 93.6 | 94.2 | 94.4 | 94.0 |
在本文中, 我们提出了统一的多模态视觉语言理解和生成预训练, 它可以处理视觉语言理解和生成任务. 实验表明, 我们提出的方法在理解和生成任务上都达到了与当前视觉语言方法相当的性能. 我们还提出了基于提示的方法, 这是一种简单有效的方法, 可以对不同的下游任务进行微调.
et al. Language models are few-shot learners. In: Proc. of the 34th Advances in Neural Information Processing Systems. Curran Associates Inc., 2020. 1877–1901.]]>