编辑
2023-07-15
论文阅读
0
请注意,本文编写于 293 天前,最后修改于 293 天前,其中某些信息可能已经过时。

目录

Vision Language Transformers: A Survey
0. 概述
1. 介绍Transformer的基础和在NLP和CV任务的应用
1.1 Transformer架构
1.1.1 Multi-Head Attention
1.1.2 Feed-Forward Network
1.2 NLP中的应用
1.3 CV中应用
2. Embedding Strategies
2.1 Textual Embeddings
2.2 Visual Embeddings
2.2.1 Region Features
2.2.2 Grid Features
2.2.3 Patch Embeddings
3. 介绍各种架构,不同架构对视觉和语言特征的相互作用
3.1 Dual Encoders - 双编码器架构
3.2 Fusion Encoders - 融合编码器架构
3.2.1 Single-Tower Architecture - 单塔架构
3.2.2 Two-Tower Architecture - 双塔架构
3.3 Combination Encoders - 组合编码器架构
3.4 Encoder Decoder Models - 编码器解码器模型
4. 介绍预训练任务和策略对下游任务执行的影响
4.1 预训练目标任务
4.1.1 Masked Language Modeling
4.1.2 Masked Image Modeling
4.1.3 Image-Text Matching
4.1.4 Contrastive Learning
4.2 通过下游任务训练模型
4.2.1 Visual Question Answering
4.2.2 Visual Grounding
4.2.3 Image Captioning
4.2.4 Prefix Language Modeling
5. 描述这些模型的下游任务能力
5.1 VL-Alignment
5.2 VL-Understanding
5.3 VL-Text Generation
5.4 Visual Grounding, Grounded Captioning and Object Detection
5.5 Image Generation
5.6 Unimodal Tasks
6. 用来预训练的数据集
6.1 Public Data Sources
6.1.1 Human Annotated Datasets
6.1.2 Web Sourced Datasets
6.2 Proprietary Datasets
6.3 Data Sizes
7. 最后分析模型的优点和限制,以及未来的方向和遗留开放问题
7.1 Strengths
7.2 Limitations and Open Questions
7.3 Future Directions

Vision Language Transformers: A Survey

0. 概述

这片论文讲述了对于问答任务和生成描述任务,传统的模型完成是非常困难的,而自2017年Transformer出现之后,Transformer模型已经表现出了比先前的模型更好的性能和多功能性。Vision Language Transformer也有希望在自然语言和视觉之间产生好的发展前景,类似于Transformer在自然语言中一样:在大数据集中预训练好,然后对具体任务进行微调的范式。

该论文主要讲述了:

  1. 各种Vision Language Transformer模型的优点和缺点
  2. 仍然存在的开放问题

论文对Transfomer模型按照任务分类有:

  • 基于视觉文本对其的任务(比如:图像检索/Image Retrieval):CLIPALIGN
  • 基于视觉文本理解的任务(比如:视觉问答/Visual Question Answering): UNITERMETER
  • 基于视觉文本基础的任务(比如:图像描述/Image Caption目标检测/Objecet Detection):LEMONGITReferring TransformermDETR

该论文主要针对的是English为主的模型,不考虑其他语言的模型;同时也排除了专门为视觉语言任务设计的模型;但是多语言模型PALI模型被包含了,因为性能卓越。

针对视觉语言模型,主要考虑的是

  • embedding strategies
  • model architectures
  • pretraining tasks
  • training datasets

整体论文架构概述:

  1. 介绍Transformer的基础和在NLP和CV任务的应用
  2. 讨论视觉和文本信息怎么使用特别的Attention机制把数据Embedding到特征空间,以及生成视觉特征
  3. 介绍各种架构,不同架构对视觉和语言特征的相互作用;
  4. 介绍预训练任务和策略对下游任务执行的影响
  5. 描述这些模型的下游任务能力
  6. 用来预训练的数据集
  7. 最后分析模型的优点和限制,以及未来的方向和遗留开放问题

1. 介绍Transformer的基础和在NLP和CV任务的应用

1.1 Transformer架构

Transformer模型是基于encoder-decoder设计的,encoder模块把输入序列x=(x1,...,xn)x = (x_1, ..., x_n)映射到内部表示形式z=(z1,...,zn)z = (z_1, ..., z_n)decoder模块将zz作为输入,生成输出序列y=(y1,...,yn)y = (y_1, ..., y_n)

transformer_arch

  • Encoder模块由NN个相同维度的transfomer layer组成,每个transfomer layer由一个MHA和一个FFN组成,他们之后都是一个Add & Norm层,可以表示成:

    LayerNorm(x+Sublayer(x))where: Sublayer{MHA,FFN}\begin{align} LayerNorm(x + Sublayer(x)) \qquad \text{where: }\quad Sublayer \in \{MHA, FFN\} \end{align}
  • Decoder模块也是由NN个维度相同的transfomer layer组成,每个transfomer layer由一个防止看到之前位置MaskedMasked Multi-Head Attention块(掩码与应用于输出嵌入的偏移量相结合,可确保解码器预测仅基于以前的输出),一个用来接收Encoder模块堆叠生成的中间特征表示的MSA和一个FFN组成,他们之后都是一个Add & Norm层。

1.1.1 Multi-Head Attention

一个注意力机制是一个映射query vector和一系列key-value vector到一个输出的函数。这个输出是作为一个所有values的权重和:

Attention(Q,K,V)=softmax(QKTdk)V\begin{align} Attention(Q, K, V) = softmax(\frac{QK^T}{d_k})V \end{align}

多头注意力机制就是使用HHAttentionAttention产生heads=(head1,...,headh)heads = (head_1, ..., head_h),然后使用Concat操作进行拼接,再通过一个映射层映射得到MHAMHA:

MHA(Q,K,V)=Concat(head1,...,headh)WOwhereheadi=Attention(QWiQ, KWiK, VWiV)\begin{align} MHA(Q, K, V) & = Concat(head_1, ..., head_h)W^O \\ \nonumber \\ \text{where} \qquad head_i & = Attention(QW^Q_i, \ KW^K_i, \ VW^V_i) \nonumber \end{align}

其中各种被学习的参数:

WiQRdmodelxdkWiKRdmodelxdkWiVRdmodelxdvWiORhdvxdmodel\begin{align} W^Q_i & \in R^{d_{model} x d_k} \nonumber \\ W^K_i & \in R^{d_{model} x d_k} \nonumber \\ W^V_i & \in R^{d_{model} x d_v} \nonumber \\ W^O_i & \in R^{hdv x d_{model}} \nonumber \\ \end{align}

1.1.2 Feed-Forward Network

这是每个transformer layer最后都包含的一层全连接层。其由两个线性层组成,之间使用ReLU激活函数:

FFN(x)=max(0, xW1+bi)W2+b2\begin{align} FFN(x) = max(0,\ xW_1 + b_i)W_2 + b_2 \end{align}

W1W_1是映射维度dmodeld_{model}的输入数据到中间表示dffd_{ff};而W2W_2是映射回去:dffdmodeld_{ff} \to d_{model} 原始的Transformer模型:dmodel=512d_{model} = 512dff=4dmodel=2048d_{ff} = 4 * d_{model} = 2048

由于注意力机制没有固有的顺序,因此原始Transformer模型和大多数后续模型都为输入嵌入添加了位置编码,因此模型可以利用序列信息。

1.2 NLP中的应用

  • GPT模型:由transformer decoder块堆叠起来的一个模型,预训练在BooksCorpus数据集上。使用无标签文本自监督预训练和标准的语言模型目标函数 GPT

  • BERT(Bidirectional Encoder Representations from Transformers):由transformer encoder块堆叠成。使用masked language modeling objective (MLM)

    BERT

1.3 CV中应用

  • ViT (Vision Transformer)模型是类似于BERT模型的Transformer架构。不过取代了textual tokens,而是使用分割图像成PxPPxP的块,转换2D图像到线性,可以匹配Transformerembedding size。预训练使用监督图像类别的标签数据集。

    ViT

    缺点:要求更多的预训练数据才能达到比基于CNN网络模型的结果。ViT的提出者猜测:因为Transformer缺乏CNN的图像友好型归纳偏差。比如:局部,二维邻域结构和相同转换等。

  • BEIT模型:为了解决ViT的缺点而提出的,基本架构的embeddingViT相似。但是引入了masked image modeling机制。image patch representations首先使用自动编码器tokenized为离散表示。然后由模型预测masked image patch的指定抽象类别。通过这,可以使用更少的训练数据做到和ViT不相上下的结果。

  • 使用基于卷机的Transformer架构CoAtNet:将CNN的数据感应偏差与Transformer的模型容量相结合得到的深度的卷机层

  • SwinCSwin是水平架构的Transformer,这两个模型在输入图像的二维移动片段上执行SA。即同时学习两个维度上的关系,从而达到需要更少的训练数据

2. Embedding Strategies

使用Embedding把文本数据和图像数据变成模型的特征空间中。VL中对于文本的Embedding通常都是使用同一种策略:BERT策略;而对于图像则由各种变体:

  • Region Features
  • Grid Features
  • Patch Embeddings

2.1 Textual Embeddings

文本Embedding通常都是使用BERT策略: a. 使用WordPiece算法先把文本tokenized,每个句子都是以特殊类别token[CLS]开始,和[SEP]分割不同的句子。 b. 然后学习token的位置embedding片段embedding。前者是用来学习token之间的位置关系,后者学习区分不同句子; embeddings

CLIPOFAUNIMOMETER使用BPE encoding而不是WordPiece encodingBEiT-3VL-T5Flamingo使用SentencePiece encoding

2.2 Visual Embeddings

2.2.1 Region Features

使用开箱即用的object detection network,比如Fast R-CNNYOLO来抽取区域特征。UNITER, ViLBERT, VL-BERT, VisualBERT, Oscar, VinVL, LXMERT, VL-T5, UnicoderVLand UNIMO这些模型都是利用了基于区域的特征。又因为注意力机制是无序的,所以通常添加位置embedding在图像特征向量里。

下面就是VL-BERT模型使用Fast R-CNN对图像特征进行编码。 VL-BERT

缺点: a. 目标检测模型只能识别用于创建它们的对象检测模型所训练的对象。 b. 目标检测模型射给你换成区域特征计算量太昂贵,而且创建区域特征向量存在性能瓶颈

2.2.2 Grid Features

当编码器模型Pixel-BERTSOHO和编码器-解码器架构模型E2E-VLP模型学习对齐文本特征和从CNN输出的特征网格中提取视觉特征。双编码器架构的CLIPALIGNLiT等模型也使用Grid features

Grid features的实现(以E2E-VLP为例): 一个原始图像送给CNN编码器,图像IR3×H0×W0I \in R^{3 \times H_0 \times W_0},经过CNN编码器将产生特征向量fRC×H×Wf \in R^{C \times H \times W},其中H=H032,W=W032,C=2048H = \frac{H_0}{32}, W = \frac{W_0}{32}, C = 2048(这类似DETR模型)。然后为了减少特征维度,使用1×11 \times 1卷积减少CdC \to d,即获取最终的特征表示zRd×H×Wz \in R^{d \times H \times W};最后为了获取一个序列tokens,把这个特征zz转换成长度为HWH \cdot W,维度为dd的序列,即zfinalRHW×dz_{final} \in R^{HW \times d}

这种视觉嵌入方法消除了区域特征的对象类别所强加的理论上限。 缺点:这种方法依旧以来预训练好的CNN网络作为视觉特征编码器。需要两步训练和推断过程。 优点:减少了计算量

2.2.3 Patch Embeddings

Vision Transformer (ViT)第一个引入该方法的模型;ViLT是在VL任务中第一个引入该方法的模型。VLMo, ALBEF, BEiT-3, BLIP-2, CoCa, SimVLM, OFA, METER, mPLUG, BridgeTower, DaVinci, FlorenceFLAVA 模型都是使用该方法。

具体形式: 原始图像IR3×H×WI \in R^{3 \times H \times W}被分割成N=HW/P2N = HW/P^2个块,并且每个块被拉成线性(flattened),即IpRN×(P2C)I \to p \in R^{N \times (P^2 \cdot C)},其中(P,P)(P,P)还是块(patch)的分辨率。再通过一个线性映射每个特征到embedding维度,即N×(P2C)N×dmodelN \times (P^2 \cdot C) \to N \times d_{model}。每个块的位置信息,也是通过位置Embedding和图像块Embedding相加得到。最后,再把文本特征和视觉特征通过concat操作连接起来,输入到Transformer中。 ViLT

ViLT中设置的P=32P=32,相较于之前的模型,仅将计算的一小部分用于图像处理。

OmniVL, OFASimVLM使用CNN架构抽取图像块,其他的模型都是使用ViT模型的方式处理图像块。

3. 介绍各种架构,不同架构对视觉和语言特征的相互作用

因为embedding策略独立被使用,所以不同架构主要就是指使用不同的方式组合或者融合特征,即使特征之间可以交互。

3.1 Dual Encoders - 双编码器架构

双编码器架构的文本特征和视觉特征分别表示,并且各模态在深度学习模型中不交互。相反,视觉和文本模块的输出通过一种简单的机制进行交互,通常是余弦相似性CLIPALIGNFlorenceLiT模型就是使用这种方式。

  • CLIP模型,文本通过12层使用BPE encoding的transformer进行编码操作,图像信息使用ResNet50或者ViT架构编码。然后每个模型输出的特征通过使用cosine相似比较(对于标准化后的特征,可以简化为点乘)。

    优点:使用这种浅交互方式,使用大数据集进行预训练特别友好。 训练方式:对抗学习 训练目标:最大化错误图像文本对余弦相似性,最小化正确图像文本对余弦相似。 CLIP模型对于VL分类任务,比如NLVR2表现不好。

  • ALIGN模型:使用EfficientNet作为图像编码器,BERT作为文本编码器。也是使用和CLIP一样的目标函数。

    ALIGN大规模扩展了用于训练的数据集。

  • LiT模型:在对抗训练期间使用固定权重的预训练图像编码器对图像进行编码。

    在几个文本检索任务评测,效果比上面两个较好。

  • Florence模型:使用CSwin作为图像编码器,RoBERTa作为文本编码器。也是使用对抗学习方式训练。优点是:可以执行的下游任务种类更多,甚至包括对视频任务的推理。

    VQA任务中执行相对较好,但是低于SOTA。

3.2 Fusion Encoders - 融合编码器架构

融合编码器架构可以分为两类:

  1. 单塔架构:使用一个transformer编码器在对视觉和文本特征concat后得到的特征上进行操作。
  2. 双塔架构:分别在不同的transformer架构下编码一种模态

3.2.1 Single-Tower Architecture - 单塔架构

使用一个transformer架构直接对视觉特征和文本特征concat后的数据进行操作。这种方式不限制模态,任何模态都可以直接拼接,然后输入模型中。并且参数量相对于双塔架构也比较少。

ViLT, VL-BERT, UNITER, OSCAR, SOHO, UNIMO, PixelBERT, Unicoder-VLVisualBERT模型都是使用的这种方式。Unicoder-VL模型架构图如下: Single-Tower

3.2.2 Two-Tower Architecture - 双塔架构

对不同模态使用不同的transformer处理,模态之间通过Cross Attetion机制进行交互。ViLBERT, LXMERT, METERBridgeTower模型就是使用该方式。

ViLBERT模型中,图像和文本embedding分别被并行的传递到transformer块和co-attention transformer层序列中,也就是说,图像embedding被传送到上面transformer块和co-attention transformer块序列中,文本embedding被传送到下面transformer块和co-attention transformer块序列中。上下并行执行,但是两者通过co-attention进行深度交互。

Co-Attention一个标准的Transformer块中同时使用视觉和文本的内部表示计算querykeyvalue,之后keyvalue被传送给输入的另一个模态的MSA中计算多模态特征。 LXMERT与之类似,只是初始化权重不同,LXMERT是从0开始学习,ViLBERT是从BERT-base初始化。 METER也差不多,就是RoBERTa作为文本编码器,CLIP-ViI-224-32作为图像编码器 BridgeTower是使用一种bridge connections的方式让模态之间进行交互,说是可以加强模型的多模态表示。

ViLBERT

3.3 Combination Encoders - 组合编码器架构

VLMo, ALBEF, BEiT-3 , FLAVAX2-VLM模型使用该方式,这些模型试图在单个模型中利用双编码器和融合编码器的优势。

具体方式: 底层使用不同的编码器获取不同模态的特征表示,之后使用余弦相似性对齐模态数据,随后再输入到融合编码器中。

VLMo模型为例,合并两个模态之后的特征表示经过一个称为the mixture of modality expertstransformer块。这个transformer块编码层的FFN层被pool of modality specific expert models取代。也就是说MSA输出的结果直接被送到三个modality expert: * a vision expert (V-FFN) * a language expert (L-FFN) * a vision language expert (VL-FFN)

面对不同任务,不同输入,可以是使用不同的组合 BEiT-3VLMo的放大版本,可以支持更多的任务 FLAVA使用了一个稍微复杂架构但是思想没有改变的方式。 ALBEF在合并双向和融合编码器的方法有所不同,在获取各个模态的embedding并且执行余弦相似性对齐和对抗损失(contrastive loss) 之后,然后将特征表示输入到使用交叉注意力的6层融合编码器(fusion encoder)中。尽管这种方法产生的模型不如VLMo这样的模型灵活,其新颖的方法提供了更深入、更全面的视觉语言互动的可能性 X2-VLM还由三个独立的模块组成,一个视觉编码器、一个文本编码器和一个融合编码器,其特征视觉和文本特征使用余弦相似性对齐。值得注意的是,该模型规模更大,基于更多数据进行训练,还可以使用视频作为输入执行视觉语言任务。

VLMo

3.4 Encoder Decoder Models - 编码器解码器模型

使用原始Transformer架构的VL模型,一些VL模型选择由至少一个编码器堆栈和解码器堆栈组成的设计。 VL-T5, OFA, OmniVL, PaLI, E2E-VLP, SimVLM, mPLUG, Flamingo, OmniVLCoCa模型都是使用该方式。专门从事视觉基础任务的mDETRDQ-DETRUniTABKD-VLPReferring Transformer模型使用了编码器-解码器设计的一些变体。

这种架构的模型可以支持更广的任务,包括生成类任务,比如图像描述。

  • VL-T5为例,由单个多模态编码器栈组成,可以接受一系列的word-piece tokens和图像region features。这个编码器产生中间表示:h={h1t,...,htt,h1v,...,hvv}h = \lbrace h^t_1, ..., h^t_{|t|}, h^v_1, ..., h^v_{|v|} \rbrace。其中hith^t_ihivh^v_i分别表示文本和视觉特征状态。解码器栈然后通过SA迭代地关注其自己先前生成的输出,并通过CA迭代地编码器的中间输出,最后通过解码器计算下一个tokenj的联合概率,即:Pθ(yj  y<j,h)P_{\theta}(y_j \ | \ y_{< j}, h)

    以上的模型基本和VL-T5类似,但是也有一些不同,比如mPLUG模型,它的编码器省略了对其视觉组件的一些层的交叉关注,从而产生了更高效的模型。Flamingo使用一种名为感知器重采样器(Perceiver Resampler) 的新型模块将预训练的视觉编码器的输出转换为固定数量的视觉特征。

  • OmniVL利用两个编码器堆栈——一个视觉编码器,可以处理图像和视频,以及基于BERT的文本转换。还是用了两个解码器栈,一个解码器用于视觉语言对齐和理解任务,一个解码器是用于生成任务的独立解码器。

  • mDETRDQ-DETR都是基于目标检测模型DETR模型,他们处理图像使用基于CNN,处理文本使用transformer encoder,然后再通过concat操作把特征拼接在一起送给transformer encoder;解码模块使用一系列的可学习embedding,称为queries。解码器处理编码器输出查询嵌入(the query embeddings)。最后解码器的输出送给一个FFN用来分类。

    The Referring Transformer也适用类似的思路,适用query抽取对象信息,然而,它还包含一个单独的查询编码器模块,用于进一步处理视觉对象信息。 UniTAB使用了相当通用的编码器-解码器架构。

    mDETR

  • DaVinciOFA可以完成广泛的任务,并且在不需要对架构进行重大更改的情况下执行这些任务。这两个模型中的解码器模块都可以生成图像和文本输出,也就是说可以完成理解任务如VQA任务和生成任务如图像描述。

4. 介绍预训练任务和策略对下游任务执行的影响

4.1 预训练目标任务

4.1.1 Masked Language Modeling

MLM刚开始就是在BERT模型中使用,通过随机masked一些token,然后使用unmasked token预测那些masked token。在VL中,则是通过使用视觉特征和unmasked token一起预测出masked token,从而可以更好的对齐。

LMLM(θ)=E(t,v)D log Pθ(tm  tm,v)\begin{align} L_{MLM}(\theta) = - \mathbb E_{(t, v) \sim D} \ log\ P_{\theta}(t_m \ | \ t_{\setminus m}, v) \end{align}

其中tmt_{m}表示需要预测的masked tokenθ\theta表示模型参数,tmt_{\setminus m}表示unmasked tokenvv表示相关的数据特征

基本上大部分fusion encoder模型都是使用的这种方式,但是细节上还是有一些不同。

  • ALBEF模型使用最小化cross-entropy,而不是log-likelihood
  • ViLT模型只屏蔽整个单词单元,而不是这些模型中大多数在标记化中使用的子单词单元。
  • UNIMO模型只屏蔽完整单词的连续跨度,如SpanBERT中所做的那样
  • 其他的模型都是使用BERT类似的形式,替换掉15%或者40%的文本token。

4.1.2 Masked Image Modeling

该方法类似MLM,只不过mask的是图像信息。目标函数有些模型也会用KL散度或者均方误差

4.1.3 Image-Text Matching

大部分只有解码器的模型和一些编码器-解码器的模型使用该方式。

这个方式是一个二分类的任务,判断一个文本图像对是否匹配。

具体流程: 给出一个(t,v)(t, v)文本图像对,通过模型得到一个输出结果,然后把这个输出值输入一个全连接层和一个sigmoid激活函数,从而产生输出值Sθ(t,v)S_{\theta}(t, v),损失函数如下:

LITM(θ)=E(t,v)D[ y log Sθ(t,v)+(1y)log (1Sθ(t,v)) ]\begin{align} L_{ITM}(\theta) = - \mathbb E_{(t, v) \sim D} [\ y \ log\ S_{\theta}(t, v) + (1 - y)log \ (1 - S_{\theta}(t, v)) \ ] \end{align}

y{0,1}y \in \{ 0, 1 \}是指示文本和图像是否正确配对的标签。

创建负对(negative pairs)是通过将成对样本中的图像或文本替换为从训练集D中随机抽取的一个。

4.1.4 Contrastive Learning

对抗学习(Contrastive Learning)是双编码器模型的主要预训练目标,比如CLIPALIGNLITFlorence。当然,也能被用在组合编码器模型中,比如ALBEFVLMoX2-VLMFLAVA。一些编码器-解码器的模型使用该方式,比如COCAmPLUGFlamingo

CLIP为例:给出NN个图像文本对,训练CLIP模型以预测N2N^2个可能的图像文本对中的哪一个实际发生。训练目标函数就是最小化NN正确对余弦相似性和最大化N2NN^2 - N错误对余弦相似性。具体执行:通过计算相似性,得到相似分数,然后送入二分类交叉熵损失函数从而被优化。

归一化之后的分数可以使用点乘的方式计算。

CLIP

ContrastiveLearning

其他模型中使用:

  • Florence使用一种unified image-text contrastive learning的方式,通过一种text hash-table允许一个文本对应多个图像。
  • UNIMO使用的对比损失通过文本重写和图像/文本检索来大量增加,以创建大量的正面和负面例子。
  • 还有是针对标准化进行操作的模型,比如CLIP使用L2L2来标准化,而VLMoALBEF使用softmaxsoftmax来标准化

对比学习的一个显著特征是一个相对简单的目标函数,它可以很好地扩展到大型数据集。

4.2 通过下游任务训练模型

4.2.1 Visual Question Answering

该任务是通过使用一个图像问题对(image-question pairs)选择或者产生一个答案。数据格式样本: image-question pairs

LXMERT, OFAVLT5模型通过使用的该方式训练模型:

  • LXMERTVQA当作一个分类任务,从答案集中选择正确的答案。
  • OFAVLT5则是使用解码器产生一个答案文本。

4.2.2 Visual Grounding

视觉基础任务是指将特定的视觉对象与描述它们的单词或短语联系起来的任务。benchmark数据集:RefCOCOGrounded captioning任务是一个反向的任务:给出一个图像中的区域,生成一个精确的描述。

视觉基础任务在单词和特定视觉对象之间提供了直接的、细粒度的连接

OFA, X2-VLMVL-T5模型也通过使用的该方式训练模型。

4.2.3 Image Captioning

图像描述需要一个模型来生成对所提供的图像输入的描述。不同于Grounded captioningImage Captioning是要对图像全局进行描述。

OFA, E2E-VLPCoCa都是使用该方式作为预训练目标。

4.2.4 Prefix Language Modeling

前缀语言建模(Prefix Language Modeling)可以看作是传统因果语言建模和掩蔽语言建模的混合。 DaVinci, mPLUGSimVLM模型使用该方式作为预训练目标。

  • SimVLM模型是通过一个随机的token长度TpT_p去截断序列,x<Tpx_{< T_p}叫前缀(prefix),x>Tpx_{> T_p}叫后缀(suffix);然后将双向注意力应用于前缀序列,并将自回归语言建模应用于后缀序列。SimVLMmPLUG模型,这是把全部图像作为前缀,全部文本作为后缀的形式。
  • DaVinci模型通过使用文本和图像分成前后缀的形式,比如:前缀是全部的文本+部分图像,后缀是部分文本+全部图像的形式。然后通过重构原始数据为训练目标。 DaVinci

5. 描述这些模型的下游任务能力

5.1 VL-Alignment

视觉语言对齐任务即给定一个模态的一个标记,它们必须正确地关联另一个模态中的一组标记。检索任务是对齐任务的典型例子。

MSCOCOFlickr30K是两个经常用作基准的公开可用数据集。

双编码器是图像检索等对齐任务的理想选择。

5.2 VL-Understanding

在视觉语言理解任务中,模型必须正确地对给定的图像-文本对之间的关系进行分类。

VL理解任务包括流行的基准,如VQA,其中模型必须选择关于图像的问题的正确答案,NLVR2,其中,模型必须确定关于图像的陈述是真是假。

编码器-解码器模型在理解任务方面也经过了很好的测试,尽管它们通常将它们重新定义为文本生成任务。

5.3 VL-Text Generation

视觉语言文本生成任务是指图像字幕生成等任务,模型需要接收一个图像或图像-文本对,并生成一个适当的文本序列来描述图像。

MSCOCO Captionsnocaps是两个常见的图像字幕生成基准测试。

最适合这类任务的模型是包含解码器模块的编码器-解码器模型

5.4 Visual Grounding, Grounded Captioning and Object Detection

Visual Grounding任务是指需要模型将单词或短语与它们描述的独特视觉对象相匹配的任务。RefCOCO是评估Visual Grounding任务的首选数据集。

5.5 Image Generation

文本到图像生成任务是指,模型需要根据给定的文本描述生成相应的图像。

有两个模型OFA和DaVinci能够生成图像。除了这些模型,其他模型都没有这种生成图像的能力。

5.6 Unimodal Tasks

单模态任务是被训练和评估用于纯视觉或纯文本任务。双编码器模型,例如CLIP和ALIGN,可以轻松地适应纯计算机视觉任务,如图像分类,并且在这些任务中进行了评估。

6. 用来预训练的数据集

6.1 Public Data Sources

以下公共数据集中两个数据集MSCOCOVisual Genome由人类标注。其余数据集是从网络中收集和过滤的,通常规模更大,但噪声更多。

6.1.1 Human Annotated Datasets

  • MSCOCO(Microsoft’s Common Objects in Context)数据集:共包含328k张唯一的图像和250万个带标签的对象实例。其中超过164,000个图像包含最多5个独立的、由用户生成的描述场景的句子。MSCOCO的训练集包含118k张图像及其注释,但大多数模型创建者会删除一些图像以避免数据泄漏到下游任务。例如,ViLT总共使用了113k张图像,每个图像有5个字幕,总共有567k个图像-文本对。
  • Visual Genome数据集:仅包含108k张唯一的图像。这些图像是来自MSCOCOYFCC100M的交集。然而,使用Amazon Mechanical Turk生成的一组人工注释比MSCOCO数据集要丰富得多。每个图像都包括大量关于各种图像区域的详细描述,一组广泛的分割对象及其标签,以及将各种对象联系起来的场景图。因为每个图像有50个图像区域的描述,所以可以为VL预训练提供超过500万个图像-文本对。

6.1.2 Web Sourced Datasets

  • SBU Captions (The Stony Brook University Captions)数据集:是首批产生的网络规模视觉语言数据集之一。这些图片及其相关文本首先是从Flickr中提取的。然后,作者使用匹配过程来查找没有关联文本的其他图像,这些图像与之前收集的图像相匹配。然后将匹配的照片与来自数据集的适当文本描述配对。这一过程产生了一个约有100万个图像-文本对的数据集。SBU字幕数据集被许多模型用于预训练。

    它通常与下面描述的一个或两个概念标题集结合使用。

  • Conceptual Captions数据集:这些数据是通过抓取大量英语网站并过滤带有alt文本的图像来收集的。然后对alt文本进行过滤和清理,生成一个简洁的标题来描述每幅图像。

    最初的Conceptual Captions数据集包含300万个图像-文本对,通常被称为CC3M。 Conceptual Captions 12M数据集,使用类似的收集过程,能够显著增加结果数据集的大小。然而,这种规模的增加是以更嘈杂的数据集为代价的。

  • LAION-400M数据集:是来源于网络的大量图像和相关alt文本的集合。对图像进行明确内容和字幕长度的过滤。然后使用CLIP计算每个图像与其相关联的文本之间的相似性得分;如果分数低于某个阈值,则丢弃该对。通过这种方式,创建者生成了一个超过4亿对图像-文本的数据集。

6.2 Proprietary Datasets

  • ALIGN:18亿对图像文本;数据集的巨大规模源于其创建者选择放宽用于创建概念标题集的大部分清洁标准。尽管生成的数据非常嘈杂,但数据集的创建者认为,纯粹的数据量往往会克服固有的噪音。ALIGN集合中的示例图像文本对如图18所示。
  • CLIP:4亿对图像文本;从互联网上的各种公开来源收集的图像-文本对
  • Flamingo:3.12亿对图像文本;
  • LiT:40亿个图像-文本对;使用与ALIGN基本相同的过程创建了一个数据集,进一步放宽了文本过滤标准

6.3 Data Sizes

将预训练数据集大小分为小型、中型和大型。因为我们目前还没有正式分析预训练数据量影响的广泛元分析研究,所以这些类别有些武断。然而,所述类别有助于描述预训练数据量中的差异,我们从使用小数据集的模型开始,我们将其定义为1000万或更少的图像-文本对。

  • Small: Fewer than 10M I-T Pairs:流行数据集MSCOCO、Visual Genome、SBU Captions和CC3M中I-T对的总数略低于1000万对,
  • Medium: 10-25M I-T Pairs:通过将CC12M数据集添加到MSCOCO、Visual Genome、SBU Captions和CC3M的语料库中,我们得到了一个具有超过2100万个图像-文本对的数据集。ALBEF、BEiT-3、mPLUG、OFA和OmniVL使用该套件进行预训练。
  • Large: More than 25M I-T Pairs:双编码器类型的模型都使用相对较大的预训练数据集。CLIP、ALIGN、LiT和Florence都使用4亿至40亿对图像文本的大型网络数据集。一些大型模型,如GIT、PaLI、FLAVA、Flamingo、CoCa和DaVinci使用大型专有数据集。最后这些模型都相当大,可能需要大量的数据来利用其规模的力量。

7. 最后分析模型的优点和限制,以及未来的方向和遗留开放问题

7.1 Strengths

  1. 广义表示(Generalized Representations):从预先训练的模型中进行迁移学习的主要优势之一是它们提供了令人难以置信的适应性。尽管这些模型的预训练成本非常高(通常过高),但它只发生一次,并且可以用显著更少的计算和有限的数据输入对模型进行微调。
  2. 易于理解和使用:VLTransformers还简化了视觉语言建模的实际使用。在昂贵的预训练阶段完成后,大多数VLtransformer可以通过直接的微调过程适应新的任务。微调通常包括去除模型的最后一层,并用随机初始化的线性层代替它,该线性层具有适合于手头任务的激活,例如用于分类问题的softmaxsigmoid层。然后将权重更新为传统的监督学习任务。

    LAVIS视觉语言框架进一步简化了这一过程。LAVIS是用于VL建模的Python库,它抽象了与部署VL模型相关的许多困难编程,并包括CLIPBLIPALBEF等模型。通过这样的努力,VL转换器提供了使VL任务像NLPCV任务目前使用每个领域的预训练模型一样可访问的可能性。

  3. 效果好:预训练的VLTransformers在大多数任务上比特定任务模型表现得更好。

7.2 Limitations and Open Questions

  1. 预训练数据和计算能力:预训练Transformer的巨大优势是以巨大的预训练数据需求和巨大的计算成本为代价的。另一个面临的一个相关问题是,为了获得强大的结果,需要大量的预训练数据。
  2. 预训练任务:独立于预训练VL模型所需的数据量和计算量,很难找到明确地将视觉和语言对齐并确定它们对性能的贡献程度的训练任务。此外,到目前为止,还没有详细的模型开发过程或荟萃分析显示这些预训练制度在多大程度上影响下游性能。
  3. 视觉Embedding:什么样的视觉嵌入策略是最好的,在什么情况下最好,这仍然是一个悬而未决的问题。

7.3 Future Directions

  1. 数据生成和元分析(Data Generation and Meta Analysis):在当前的研究环境中,生成更高质量的视觉语言数据集是一个明显的需求。目前缺乏公开可用的预训练数据以及用于基准VL模型的高质量数据集。
  2. 替代性培训前任务(Alternative Pretraining Tasks):测试新的预训练任务的类似方法也将是有益的,并可能产生最先进的结果。
  3. Additional Modalities:包含音频和视频模式的语言模型离强调人类语言的语言基础类型又近了一步。

本文作者:小屁孩

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!