文章目录
标题:VL-BEIT: Generative Vision-Language Pretraining
paper:地址
代码:地址
机构:Microsoft Research
简要介绍: 引入一个称之为VL-BEiT
的vision-language
基础模型,其是通过生成预训练学习到的双向多模态Transformer
。这里使用一个共享Transformer
对单模态和多模态数据进行masked prediction
(掩盖预测)。具体地,对image-text pairs
执行masked vision-language modeling
,对texts
执行masked language modeling
,对image
执行masked image modeling
。VL-BEiT
通过统一的预训练任务、共享的backbone
和one-stage
训练从头开始学习。VL-BEiT
被证明是简单有效的。实验结果表明,VL-BEiT
在许多vision-language
基准上(比如visual QA、visual reasoning、image-text retrieval(图像-文本检索)
)取得了很好的结果。更进一步,VL-BEiT
可学习transferable visual features
,在图像分类和语义分割上达到具有竞争力的结果。
1. Introduction
生成预训练在NLP
和CV
领域取得了极大的成功。具体来说,BERT
引入masked language modeling(掩盖语言建模,MLM)
,其基于Transformer
编码的双向上下文表示学习恢复被掩盖的tokens
。BEiT
引入masked image modeling(掩盖图像建模,MIM)
预训练Vision Transformer
(即随机掩盖image patches
,然后预测对应掩盖位置的visual tokens
)。
这篇论文中,探索了多模态预训练的mask-then-predict(掩盖-then-预测)
范式。提出的VL-BEiT
采用统一的masked prediction
任务,共享的Transformer
和one-stage
训练得到。同时在单模态数据(image
和text
)和多模态数据(image-text pairs
)执行masked prediction
任务。具体而言,统一的目标包含MLM
和MIM
从大规模单模态数据中学习单模态表示,masked vision-language modeling
从多模态数据中聚合和对齐visual和语言信息
。预训练之后,模型可以在各种vision-language 和vision
任务上进行微调。此外,这里也使用了mixture-of-modality-experts(MoME) Transformer
作为共享backbone
网络。MOME Transformer
的每个block
包含一个跨不同模态的共享self-attention
模块用于对齐内容以及pool of modality experts
用于捕获特定模态信息。得益于多模态预训练和共享Transformer
骨干,VL-BEiT
可用于下游视觉任务的image encoder
,或微调为vision-language
任务的dual encoder(双编码器)
或fusion encoder(融合编码器)
。
论文对vision-language
基准(包括visual QA、visual reasoning、image-text retrieval
)进行了广泛实验。结果表明,模型在vision-language
基准上有很强的竞争力,同时也在视觉任务(包括图像分类和语义分割)对模型进行评估,取得了很好结果。
消融研究表明,预训练任务和MoME Transformer
对于模型最终性能有积极影响。
这篇论文主要贡献可总结如下:
- 引入称之为
VL-BEiT
的vision-language
模型,通过在单/多模态数据上的mask-then-prediction
任务预训练模型 - 提出一个简单高效的框架:使用统一生成预训练任务、共享双向
Transformer
和one-stage
从头开始训练。 - 跨下游任务结果表明,模型可学习到
transferable vision-language
和visual features
2. Methods
如上图1所示,VL-BEiT
使用共享多模态Transformer
,通过mask-then-predict
任务进行预训练。在单模态图像数据上执行MIM
,在单模态文本数据上执行MLM
,在多模态image-text pairs
上执行masked vision-language modeling
。经过预训练,模型微调之后作为image encoder,dual encoder
或fusion encoder
用于各种视觉和vision-language
下游任务中。
2.1 Input Representation
Image
表示。将图片
v
∈
R
H
×
W
×
C
v \in R^{H \times W \times C}
v∈RH×W×C分割为patches
序列,以将image
可以通过标准Transformer
进行编码。patches
的数量为
N
=
H
W
/
P
2
N=HW/P^2
N=HW/P2,其中,
C
C
C是通道数,
(
H
,
W
)
(H,W)
(H,W)是图像分辨率,
(
P
,
P
)
(P,P)
(P,P)是patch
分辨率。这里将分割的patches
进行flatten
,通过linear projection
(线性映射)层得到patch embeddings
(
{
v
i
p
}
i
=
1
N
)
(\{v_i^p\}_{i=1}^N)
({vip}i=1N),并且添加一个可学习的特殊token
[
I
C
L
S
]
[I_CLS]
[ICLS]到patch embeddings
序列中。最后,patch embeddings
和可学习的position embeddings
求和得到最终输入表示
H
v
=
[
v
[
I
_
C
L
S
]
,
v
1
,
v
2
,
.
.
.
,
v
N
]
+
V
p
o
s
H^v=[v_{[I\_CLS]},v_1,v_2,...,v_N]+V_{pos}
Hv=[v[I_CLS],v1,v2,...,vN]+Vpos。
Text
表示。tokenize
输入文本,并映射tokens
到word embeddings
{
w
i
}
i
=
1
M
\{w_i\}_{i=1}^M
{wi}i=1M,其中M
是所tokenize
的文本序列长度。两个特殊的tokens
,包括开始序列token
[
T
_
C
L
S
]
[T\_CLS]
[T_CLS]和特殊边界token
[
T
_
S
E
P
]
[T\_SEP]
[T_SEP]添加到序列中。最后,文本表示通过word embeddings
和文本position embeddings
求和得到:
H
w
=
[
w
[
T
_
C
L
S
]
,
w
1
,
w
2
,
.
.
.
,
w
M
,
w
[
T
_
S
E
P
]
+
T
p
o
s
H^w=[ w_{[T\_CLS]},w_1,w_2,...,w_M,w_{[T\_SEP]}+T_{pos}
Hw=[w[T_CLS],w1,w2,...,wM,w[T_SEP]+Tpos。
Image-Text Pair
表示。给定image-text pair
,首先得到上述的image
和text
输入表示。然后对得到的向量进行连接得到image-text pair
表示
H
v
l
=
[
H
w
,
H
v
]
H^{vl}=[H^w,H^v]
Hvl=[Hw,Hv]。
2.2 Backbone Network
这里使用一个共享多模态Transformer
作为backbone network
。给定单模态数据的image
和text
表示,image-text pair
的表示,然后采用MoME Transformer
对不同模态数据表示进行编码。具体说,MoME Transformer
堆叠了多层blocks
。在每个block
中,MoME Transformer
包含一个multi-head self-attetion
层和一个feed-forward expert layer
。self-attention
模块跨不同模态共享。相比之下,每个feed-forward expert
层都有一个pool of modality-specific experts(特定模态专家池)
,其是标准Transformer
中feed-forward network
的替代。换句话说,使用输入token
的模态指导feed-forward network
池的hard routing
(根据不同模态数据进行专家池的选择)。
MoME Transformer
通过激活不同modality-specific experts
,灵活应用于支持多种下游任务。例如,可以使用backbone
作为单模态Transformer
(vision
或language encoder
),多模态encoder
和跨模态Transformer
(dual encoder
)。
2.3 预训练任务
VL-BEiT
通过在图像上MIM
,在文本上MLM
,在image-text pairs
上masked vision-language modeling
进行联合优化。
MLM,VL-BEiT
使用MLM
从大规模文本数据中学习语言表示,比如BERT
,随机掩盖单模态文本数据的15%。每个被掩盖的token
80%的概率用[MASK] token
替代,10%的概率用随机token
替代,10%的概率保持不变。BERT
预训练的目标就是从受损(被掩盖)的输入文本中恢复被掩盖的tokens
。
MIM ,除MLM
之外,也可以使用MIM
从大规模图像数据中学习vision
表示。在BEiT
中,应用block-wise
策略掩盖image patches
的40%。MIM
的预训练目标是重构被掩盖的patch
的离散visual tokens
。此外,BEiT v2
中,使用image tokenizer
获得离散tokens
作为重构目标。
Masked Vision-language Modeling,这里引入masked vision-language modeling(MVLM)
,其将MLM
和MIM
扩展到多模态数据。该任务的目标旨在基于visual
和linguistic(语言)
线索恢复被掩盖的patches
和文本tokens
。具体说,在MLM
中随机掩盖文本tokens
(50%的mask ratio
),然后基于joint image-text
表示恢复被掩盖的文本tokens
。此外,在MIM
中掩盖image patches
并基于image-text pair
恢复其对应的visual tokens
。掩盖策略同MIM
策略。MVLM
任务鼓励模型学习图像和文本对的对齐。
3. 实验
在vision-language
和visual
任务上对预训练模型进行评估,并就预训练任务和backbone
架构进行消融实验。
3.1 预训练设置
预训练数据包含单/多模态数据。对于单模态数据,使用ImageNet-22K
作为图像数据,English Wikipedia
和BookCorpus
作为文本数据。多模态数据含有image-text pairs
的四个数据集:Conceptual Captions
、 SBU Captions
、COCO
和Visual Genome
。多模态数据大约有4Mimage
和10Mimage-text pair
。
base-size
的网络架构包含768个hidden size
和12attention heads
的12层Transformer
组成,且参数初始化方法同BEiT
中一致。预训练图像分辨率为
224
×
224
224 \times 224
224×224,image patch
大小为
16
×
16
16 \times 16
16×16。混合数据从头开始预训练模型(使用的batch size
为6144,steps
为480k,image-text
的epochs
为100)。每个batch
包含2048张images
,2048个text
和2048个image-text pairs
。对于消融实验,训练模型40个epochs
。在BEiT
中,使用random resized cropping(随机裁剪)、horizontal flipping(水平翻转)、color jittering(颜色失真)
进行数据增强。这里使用词汇表大小为64k的SentencePiece tokenizer
来tokenzize
文本数据。Adam
优化器
β
1
=
0.9
,
β
2
=
0.999
\beta_1=0.9,\beta_2=0.999
β1=0.9,β2=0.999。最高学习率为2e-3
,在前10000steps
中存在linear warmup(预热)
,然后余弦学习率衰减,权重衰减为0.05。这里禁用dropout
,并使用rate=0.1
的随机深度。
3.2 Vision-Language 下游任务
在广泛使用的visual QA(VQA)
、自然语言visual reasong
和image-text retrieval
任务上进行vision-language
微调。对于VQA
微调,图像分辨率为
480
×
480
480 \times 480
480×480,其余任务分辨率为
380
×
380
380 \times 380
380×380。
Visual Question Answering(VQA) ,旨在给定图像,回答问题。这里使用VQA 2.0
数据集,并将问题作为一个分类问题,从3129个最常见答案中选择正确答案。将模型微调为fusion encoder
,联合编码image和question
。[T_CLS]
的最终编码向量作为image-question pair
的表示,然后输入到分类器层预测其label
。
Natural Language for Visual Reasoning(NLVR2),对于视觉推理任务,给定文本描述和图像对,该任务就是视觉输入和文本描述是否是正确的。这里使用VLVR2
数据集评估模型。遵循OSCAR
和VinVL
,基于三元组输入创建两个image-text pairs
,模型使用fusion encoder
联合编码image 和text
。两个pairs
的[T_CLS] token
的最终向量连接起来预测label
。
Image-Text Retrieval,根据目标方式的不同,该任务可以分为两个子任务:image-to-text
提取和text-to-image
提取。这里使用COCO
和Flickr30K
数据集来评估模型。采用image-text
对比和image-text
匹配与VLMO
中的hard negative mining
目标来联合微调模型。推理过程中,首先使用模型作为dual encoder
获得top-k condidates(前k个候选)
,然后,利用利用该模型作为fusion encoder
,根据image-text
匹配得分对condidates
进行排序。
表1,记录了vision-language
分类任务的结果,包括VQA和NLVR2
,比较在相同的image-text pair
数据上的VL-BEiT
和其他base-size
的预训练模型,VL-BEiT
在VQA
上比之前base-size
的模型表现更好,也在NLVR2
上达到了竞争性的性能。统一mask-then-predict
预训练任务可以高效学习多模态表示。
模型也在image-text retrieval
任务上取得了很好性能。如表2中,比较了fusion-encoder
模型、dual-encoder
模型和reranking
模型。Fusion-encoder
对所有image-text
组合联合编码,通过image-text
匹配目标获得相似度得分。Dual-encoder
模型单独编码image
和text
,通过一个简单交互层计算相似度得分。reranking
模型首先从dual encoder
中得到top-k condidates
,然后通过由fusion encoder
计算的image-text
匹配得分对condidates
进行排序。VL-BEiT
优于reranking
模型ALBEF
,即使是预训练期间不使用image-text
对比/匹配。
3.3 Vision下游任务
图像分类,使用ILSVRC-2012 ImageNet
数据集,包含1.3M张图片和1k个类别。同BEiT
,在最终向量上执行平均池化,然后将结果向量输入到线性分类器层预测label
。
语义分割,该任务是预测输入图像中每个像素的label
。在ADE20K
数据集上进行评估,该数据集包括25K图像150个语义类别,这里使用UperNet
中相同的任务层。
如表3所示,比较了在图像分类和语义分割上的两个base-size
的vision Transformer
。对于BEiT
和VL-BEiT
,在ImageNet-22k
上进行中间微调然后同在ImageNet-22k
上预训练的ViT
进行比较。VL-BEiT
优于之前监督性的SOTA
和ImageNet-1k
上的自监督模型。文中模型在ADE20k
上同样表现不凡。
3.4 Ablation(消融)研究
消融研究分析了预训练任务和MoME Transformer
在VL-BEiT
中的贡献。这里在visual reasoning(VNLR2)
和image-text retrieval(Flickr30k)
上对模型评估。
预训练任务,表4是使用不同预训练任务的结果。单模态数据上,MIM
和MLM
对于文中方法是有积极作用的。此外,仅在单模态数据上执行MLM
和MIM
训练,模型在NLVR2
上准确率相对较低。Masked vision-language modeling
在本文方法中至关重要。
Backbone 架构,这里对模型使用的MoME Transformer
和标准Transformer
进行了比较。结果如表5,在visual reasoning
和image-text retrieval
任务上,MoME Transformer
比标准Transformer
表现更好。MoME
使用Modality experts
有效捕获了特定模态消息,进而提升了模型性能。
4. 相关工作
vision-language
预训练旨在从大规模image-text pairs
中学习多模态表示。模型架构和预训练目标在vision-language
模型中至关重要。
模型架构,以往模型中,广泛使用的两种主流架构有:dual-encoder
和fusion-encoder
模型。Dual-encoder
模型包含一个image encoder
和一个text encoder
,分别编码image和text
,然后利用余弦相似度对图像和文本向量的交互建模。Dual-encoder
模型对于具有线性时间复杂度的image-text retrieval
任务具有良好效果,但简单的fusion
模块不足以处理复杂的vision-language
理解任务,比如视觉推理。Fusion-encoder
模型采用带有跨模态注意力的复杂fusion
模块联合编码image和text
。最近,Pixel-BERT
和ALBEF
使用CNN/vision Transformer
编码image
,并移除掉object detector
。ViLT
使用共享Transformer
网络联合编码image patches
和word embeddings
。Fusion-encoder
模型在视觉语言理解任务(视觉推理)上达到了极好的表现。但其在retrieval(检索)
任务时间复杂度较高,导致推理速度比dual-encoder
模型慢。VLMO
统一了dual-encoder
和fusion-encoder
模型,引入了MoME Transformer
在一个共享的Transformer block
内来编码不同模态数据。本文中,采用MoME Transformer
作为backbone
网络,简单并且灵活。VL-BEiT
也可以微调作为dual-encoder
和fusion-encoder
。
预训练目标,近几年,多个跨模态预训练目标被提出,包括image-text
对比学习、image-text
匹配、MLM
、prefix language modeling
、masked region
分类、word-patch/region
对齐。SimVLM
提出使用prefix language modeling
在image-text pairs
和仅文本数据上训练vision-language
模型。MIM
和MLM
被应用于单模态encoder
。Masked multimodal modeling、image-text contrast和matching loss
用于多模态encoder
。对比SimVLM
,VL-BEiT
通过MIM
和masked vision-language modeling
引入vision supervision(视觉监督)
。不同于FLAVA
,本文在不同模态以及从零开始训练是,使用共享MoME Transformer
网络。
5. Conclusion
文中,引入VL-BEiT
,一个简单有效的对于vision-language
和vision
任务预训练双向多模态Transformer encoder
模型,其仅采用生成预训练任务(文本上做MLM
,图片上做MIM
,图片-文本对上做masked vision-language modeling
)。实验证明了VL-BEiT
可以有效利用单模态数据(image
和text
)和多模态数据(image-text pairs
),并在vision-language
和vision
任务上取得了很好效果。未来可以改进提升的方向:
- 对于
VL-BEiT
,扩大模型和数据的规模 - 依据对跨语言模型预训练的研究,把像
CLIP
这样的对比目标集成到VL-BEiT
中,即在预训练阶段通过生成和对比目标的联合学习,或者作为中间微调任务。 - 此外还对跨不同模态(比如
vision
和language
)的zero-shot
跨模态迁移感兴趣