ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision(ViLT 无卷积或区域监督的语言视觉转换器)
1.摘要
大概内容就是视觉与语言预训练(VLP)在各种视觉与语言联合下游任务重表现很牛逼,但是目前他们大部分都以来图像特征提取过程(比如区域监督和卷积结构)。这就导致计算量大,计算效率低。并且这种算法在计算时上限取决于视觉嵌入器与预定义的视觉词表。作者提出了一种新的简单的VLP模型(ViLT)。它在处理视觉信息时,他可以使用无卷积方法。最后结果曾敏它的运行速度非常快。
2.引言
一大堆废话,就是前面什么人做了什么,什么人做了什么。
指出 迄今为止,大多数 VLP 研究都集中在通过增强视觉嵌入器的能力来提高性能。他们都是在训练时缓冲区域特征,来减轻特征提取的负担,所以忽略了强大视觉嵌入器的缺点(就是特征提取的速度非常慢)。(目前有俩人发发现,如果我们在嵌入图片时,我们不嵌入完整的图片,而是嵌入一个简单的投影就可以极大提高图片嵌入速度)。作者设计的的ViLT的思路是用一种统一的方式来处理文本和图片,我们怎么处理文本,我们现在就怎么处理图片。我们使用一种浅层的,无卷积的图片嵌入方式,这样就去除了一个专门用于嵌入图像的深度嵌入器,就可以显著提高模型的速度。作者列举了性能对比,说明他很牛逼。
下面就是一个视觉嵌入模式,一种是使用了区域特征的方法,他在处理图像时就是先卷积再区域操作,最后再让他们进行相互作用。
然后还有就是网格特征,它是直接CNN,然后直接进行相互作用。
最后是我们的方法,我们在处理文本和图片时都是使用一个Linear Embedding,(使用相同的方法)最后在进行相互作用。
最后我们的优点:1.结构简单,速度快,2.我们没有使用深度卷积,3.我们证明了在VLP领域,通过整体掩码和图像增强可以提升下游任务的性能。
3.背景
3.1Taxonomy of Vision-and-Language Models
我们提出了一个基于两点的视觉 - 语言模型分类体系:
(1)两种模态在专门的计算方面是否具有同等程度的表达能力;
(2)两种模态是否在一个深度网络中相互交互。这两点的组合导致了图 2 中的四种原型。(款的就是CNN,窄的就是线性,前面a b c都是别人的,我们设计的是d,在处理文本和图片时都用线性,之后在处理融合时用CNN效果牛逼)
3.2 Modality Interaction Schema
作者说Transformer包含两种单流方法和双流方法。
单流方法是把不同模特的数据分别进行嵌入处理,然后再把得到的结果进行一个拼接。(整体内容就是:通过两个模型来生成两个序列,然后把两个序列在序列维度上进行拼接,再去处理拼接之后的结果)
双流方法就是:是把不同模特的数据分别进行嵌入处理,然后再把得到的结果分别输出。(整体内容就是:通过两个模型来生成两个序列,然后把两个序列进行拼接,再去处理拼接之后的结果)
作者使用的是单流方法。
3.3 Visual Embedding Schema
我们现在在VLP领域,文本处理都是用BERT的分词器,视觉嵌入都是NLP领域的瓶颈。
3.3.1Region Feature
首先是通过一个 Backbone(如ResNet-101,ResNext-152)抽取一些特征,然后通过 FPN 抽取一些 RoI,再通过 NMS 将 RoI 降到一定的数量,那么这个数量其实就是序列的长度。得到的就是一堆 bounding box,然后通过 RoI head 就能得到一些一维的向量,这些就是 Region Feature 了。
这里虽然听起来很合理,把一些连续的图片,变成一些离散的 bounding box,每个box都有一定的特征,这就跟文本那里匹配起来了。但这整个过程都非常费资源。即是现在目标检测有一些快速、轻量的模型,但也依旧不如一个简单的 backbone 或 patch embedding 快。
3.3.2 Grid Feature
作者列举了几个 Grid Feature 的方法,但依旧不够轻量,且性能下降了很多。
3.3.3 Patch Projection
参考 ViT 的 patch projection embedding,不仅视觉部分轻量的很多,且模型性能相较于原先的 Region Feature 方法基本不变。
4 ViLT(Vision-and-Language Transformer)
4.1 模型
输入部分:
输入分别是文本和图像:文本序列通过 BERT tokenizer 得到 word embedding,假如文本序列的长度为 L,token embedding 的维度为 H,所以文本输入到 Transformer 的是 L×H 的矩阵。
图像先是分成若干个 patch,每个 patch 通过 patch embedding 就又变成一系列的 token。假设图像 token 的序列长度是 N,token embedding 的维度依旧为 H,所以图像输入到 Transformer 的是 N×H 的矩阵。
以下部分就是文本和图像通过 embedding 层后生成的 token。
星号部分就是[CLS] token,左边的就是文本的[CLS] token,右边的就是图像的[CLS] token。 灰色部分表示模态的类别,如图文本部分都是 0,图像部分就是 1。对于 single-stream 方法,是将文本和图像 concat 起来成一系列 token 作为 Transformer 的输入,如果不告诉模型哪块是文本,哪块是图像,可能不利于模型的学习;如果告诉模型哪块是文本,哪块是图像,模型可能会去训练文本与图像之间的关系,更有利于学习。 深绿色和深紫色(对应图中的0 1 2 3 4 5 6)分别是文本和图像中的position embedding。 浅绿色和浅紫色分别是文本和图像通过 embedding 层后生成的 token。 输出部分
Image Text Matching 和 Word Patch Alignment 都是用来计算文本和图片之间的相似性,是否匹配。Masked Language Modeling 用于文本部分。
Image Text Matching 就相当于一个二分类任务,看文本和图片是否匹配,它用到的输出就是整个序列输出的第一个位置上的,就像[CLS] token 一样,并不是用了所有的输出,图中的 pooler 是 H×H 的 matrix,然后变成 1×H,再经过一个FC,就可以做 Image Text Matching了。大部分 VLP 模型都用到了 Image Text Matching 这个 目标函数。
Word Patch Alignment 也是用来计算文本特征和图像特征之间的相似度,利用 optimal transport(最优运输理论),可以理解成将文本的输出和图像的输出当成一个概率分布,然后计算这两个分布之间的距离,这里当然也是越小越好。
Masked Language Modeling 相当于完形填空,把其中某个单词 mask 掉,再通过模型重建,这是基本所有 NLP 任务中都会用到的。
这里其中一个可改进的地方就是在图像部分也加入“完形填空”的目标函数,但由于当时 BEiT 和 MAE 等工作还没做出,图像领域还无法很有效的去做重建任务,所以作者这里就没有加。现在就有 VL-BEiT 在视觉部分加入了重建 loss
4.2 Whole Word Masking
将整个词都 mask 掉。作者在论文中举例,如果有单词 “giraffe”,如果用 tokenizer 如 BPE 等,那么 “giraffe” 就会被分成 [“gi”, “##raf”, “##fe”],此时这些小部分才是一个个的 token,假设此时把其中的一个 token “##raf” mask 掉,即变成 [“gi”, “[MASK]”, “##fe”],英文中以 “gi” 开头,“##fe” 结尾的单词很少,那么模型很容易就知道中间填 “##raf”,这就导致再做多模态时,根本不需要借助图像这边的信息,仅根据文本就能判断中间填 “##raf”,这样这个 loss 就失去了意义。既然如此,作者就将整个单词都 mask 掉,也就是在整个句子中去掉了 “giraffe”,这时模型再想把 “giraffe” 重建出来,就必须要借助图像的信息,进一步加强图像与文本间的联系。
4.3 Image Augmentation
在以往的研究中,VLP 模型中基本没有用到数据增强。作者使用颜色反转(因为文本通常也包含颜色信息)和 cutout(因为它可以清除分散在整个图像中的小但重要的对象),并进行了一些调参,最终取得了不错的效果。
5.实验
5.1 数据集
5.2 对比实验
分类任务
传统的 Region Feature 方法在性能上还是比较好的。ViLT的运行时间相比于传统方法都大大缩短。相比于VisualBERT,ViLT的性能更好,然相比于最好的 OSCAR 和 VinVL,ViLT在VQAv2数据集上还有竞争力,但在NLVR2就明显不行了。ViLT 最主要的成就还是在运行速度和精度上的结合比以往的模型都要好——运行速度极短且精度也具有很强的竞争力。.
Retrieval 任务
zero-shot:
fine-tuning:
5.3 消融实验
5.4VLP模型对比
6.结论
本文提出了一个极小化的 VLP 模型 ViLT,它没有使用以往需要大量配置的 embedding 方式(如Faster R-CNN 和 ResNet来提取特征),仅仅使用一个简单的 Patch Embedding 就解决了图像特征提取。整个模型更简单,速度又快,结果又还可以。ViLT 虽然性能比不上 SOTA,但它提供了一种不需要 convolution 和 region 的supervision 方法。
作者提供了未来的几个可能的研究方向:
Scalability:如果模型更大,用的数据集更多,那么结果也会更好。 Masked Modeling for Visual Inputs:在图像上也使用重建方法。这部分当前已经有 BEiT 和 MAE 了,也已经有论文对 ViLT 在这部分进行了图像重建方面的改进。 Augmentation Strategies:根据消融实验来看,数据增强确实是很有效果的。
标签:Transformer,嵌入,Convolution,模型,ViLT,token,图像,文本 From: https://blog.csdn.net/qq_54991537/article/details/145147414