ViLT:无卷积或区域监督的视觉语言Transformer.
0. TL; DR
本文提出了一种名为ViLT(Vision-and-Language Transformer)的视觉-语言预训练模型,该模型不依赖于卷积网络或区域监督,而是通过简单的线性投影将图像和文本嵌入到同一个空间中,然后通过Transformer模块进行交互学习。ViLT在多个视觉-语言下游任务中表现出色,同时在推理速度上比现有模型快数十倍。此外,ViLT首次在不使用区域特征或深度卷积视觉嵌入器的情况下实现了视觉-语言任务的竞争力。
1. 背景介绍
视觉-语言预训练(VLP)模型在多种视觉和语言的联合任务中取得了显著的性能提升。现有的VLP方法大多依赖于复杂的图像特征提取过程,这些过程通常涉及区域监督(如目标检测)和卷积架构(如ResNet)。然而,这些方法在效率和速度方面存在问题,因为仅提取输入特征所需的计算量就远大于多模态交互步骤。此外,这些方法在表达能力上也受到限制,因为它们的性能上限取决于视觉嵌入器及其预定义的视觉词汇表。
为了克服这些问题,本文提出了一种简化的VLP模型——ViLT。ViLT的核心思想是将视觉输入的处理方式简化为与文本输入相同的无卷积方式,从而显著减少模型大小和运行时间,同时保持对下游任务的竞争力。
2. ViLT 模型
(1)模型结构
ViLT的架构设计简洁明了,主要由以下几个部分组成:
⚪ 视觉特征
ViLT将输入图像划分为固定大小的图像块(patch),然后通过线性投影将这些图像块嵌入到一个与文本嵌入相同维度的空间中。具体来说,输入图像$I∈R^{C×H×W}$被划分为$N=HW/P^2$个大小为$P×P$的图像块,每个图像块被展平为一个向量,然后通过线性投影$V∈R^{P^2×H}$嵌入到维度为$H$的空间中。此外,ViLT还为每个图像块添加了位置嵌入$V^{pos}∈R^{N×H}$,以保留图像的空间信息。
⚪ 文本嵌入
文本嵌入部分与BERT类似,使用预训练的BERT tokenizer将文本分割为token序列,然后通过词嵌入矩阵$T∈R^{\mid V\mid ×H}$和位置嵌入矩阵$T^{pos}∈R^{\mid V\mid ×H}$将文本嵌入到维度为$H$的空间中。
⚪ 多模态交互
ViLT采用单流(single-stream)的Transformer模块来处理视觉和文本嵌入序列。具体来说,将视觉嵌入序列和文本嵌入序列拼接在一起,形成一个联合的输入序列$z_0$,然后通过$D$层Transformer层进行交互学习。每一层Transformer层包括一个多头自注意力(MSA)模块和一个MLP模块。最终,通过一个池化层将联合表示压缩为一个固定大小的向量$p$,用于下游任务的分类或检索。
(2)预训练目标
ViLT在预训练阶段采用了两个常见的目标:图像-文本匹配(ITM)和掩码语言建模(MLM)。
⚪ 图像-文本匹配(ITM)
ITM任务的目标是判断给定的图像和文本是否匹配。ViLT通过随机替换对齐的图像来生成负样本,然后使用一个二分类头来预测图像和文本是否匹配。此外,ViLT还引入了一个词块对齐(WPA)目标,通过计算文本子集和视觉子集之间的对齐分数来进一步优化模型。
⚪ 掩码语言建模(MLM)
MLM任务的目标是预测被掩码的文本token。ViLT随机掩码文本序列中的token,并使用模型的上下文表示来预测被掩码的token。ViLT采用了BERT中的整词掩码(whole word masking)技术,即同时掩码一个词的所有子词token,以提高模型对下游任务的适应能力。
3. 实验分析
ViLT在以下四个数据集上进行预训练:
- Microsoft COCO (MSCOCO):包含113K张图像和567K个描述。
- Visual Genome (VG):包含108K张图像和5.41M个描述。
- SBU Captions (SBU):包含867K张图像和867K个描述。
- Google Conceptual Captions (GCC):包含3.01M张图像和3.01M个描述。
ViLT在以下两个类型的视觉-语言下游任务上进行评估:
- 分类任务:使用VQAv2和NLVR2数据集,评估指标为准确率。
- 检索任务:使用MSCOCO和Flickr30K数据集,评估指标为召回率(R@1, R@5, R@10)。
ViLT在VQAv2任务上的表现略低于其他使用深度视觉嵌入器的VLP模型,但考虑到其显著的推理速度优势,这一结果仍然具有竞争力。具体来说,ViLT在VQAv2的test-dev集上取得了71.26%的准确率。ViLT在NLVR2任务上取得了75.70%的准确率,与使用深度视觉嵌入器的模型相当。
ViLT在零样本文本检索和图像检索任务上表现出色,特别是在Flickr30K数据集上,ViLT的零样本文本检索R@1达到了73.2%,零样本图像检索R@1达到了55.0%。
在微调后的检索任务中,ViLT在MSCOCO和Flickr30K数据集上均取得了较高的召回率。具体来说,在MSCOCO数据集上,ViLT的文本检索R@1达到了61.5%,图像检索R@1达到了42.7%;在Flickr30K数据集上,ViLT的文本检索R@1达到了83.5%,图像检索R@1达到了64.4%。
若干消融实验:
- 训练步数:增加训练步数可以显著提升ViLT的性能。例如,将训练步数从100K增加到200K,ViLT在VQAv2任务上的准确率从70.85%提升到71.26%,在NLVR2任务上的准确率从75.57%提升到76.13%。
- 整词掩码(Whole Word Masking):在MLM任务中使用整词掩码可以提高下游任务的性能。例如,在VQAv2任务上,使用整词掩码后,ViLT的准确率从70.16%提升到70.33%。
- 图像增强(Image Augmentation):在微调阶段使用图像增强可以进一步提升ViLT的性能。例如,在VQAv2任务上,使用图像增强后,ViLT的准确率从70.33%提升到70.85%。