【论文精读】ViLT:Vision-and-Language Transformer Without Convolution or Region Supervision


一、前言

(一)标题

Vision-and-Language Transformer Without Convolution or Region Supervision:没有卷积或区域监督的视觉和语言转换器

  • 其实就是用transformer做多模态任务,但是没有用卷积特征和区域特征作为监督信号
  • 卷积特征指的是一个预训练好的分类模型(backbone)抽出来的特征图
  • 区域特征指的是用了一个图像的backbone之后做了一个目标检测出来的检测框代表的区域特征

(二)研究背景

  • 多模态领域也开始采取了先预训练然后微调的方式,在这种情况下,预训练就变得格外重要,因为要提供一个较好的初始化,甚至能够直接zero-shot去做下游任务。进而催生了视觉和语言预训练(VLP)模型。

  • 多模态学习包括不同模态特征提取和模态融合两个过程。当前的VLP方法严重依赖图像特征提取过程,其中大部分涉及区域监督(例如对象检测)和卷积架构(例如 ResNet)。但是这种方式带来了至少以下两个问题:

    • 效率/速度方面存在问题:特征提取过程甚至比多模态交互步骤需要更多的计算
    • 表达能力的问题:模型的上限取决于视觉嵌入器及其预定义视觉词汇的表达能力

(三)作者方法

  • ViLT提出了一个极其简单的做多模态学习的框架结构,它把模态的特征抽取做到了极小化,把主要的计算量都放到了后面的模态融合上,大大地提高了模型的推理速度,而且让整个方法的建模变得很简单。
  • ViLT主要的贡献是把目标检测也就是区域性检测(region surpervision)从多模态学习的框架中移除掉了。

二、传统 VLP 架构和 ViLT 的比较

(一)视觉和语言模型的分类

文章基于两点提出了视觉和语言模型的分类:(1)在参数或者计算上,两种模态是否保持平衡; (2)这两种模态是否在深层网络中相互作用。

下图是4种不同类型的VLP模型示意图。其中每个矩形的高表示相对计算量大小,VE、TE和MI分别是visual embedding、text embedding和modality interaction的简写。
在这里插入图片描述

  • VSE、VSE++和SCAN属于(a)类型:对图像和文本独立使用encoder,图像的更重,文本的更轻,使用简单的点积或者浅层attention层来表示两种模态特征的相似性。
  • CLIP属于(b)类型:每个模态单独使用重的transformer encoder,使用池化后的图像特征点积计算特征相似性。对应的视觉端和文本端的表达力度类似,融合端十分轻量。因此CLIP比较适合做特征抽取以及retrieve类的任务,对于VQA、Visual reasoning就比较困难。
  • ViLBERT、UNTER和Pixel-BERT属于©类型:这些方法使用深层transformer进行交互作用,但是由于VE仍然使用重的卷积网络进行特征抽取,导致计算量依然很大。
  • 作者提出的ViLT属于(d)类型:ViLT是首个将VE设计的如TE一样轻量的方法,该方法的主要计算量都集中在模态交互上。

(二)视觉架构部分对比

多模态的文本架构方面:现有的VLP模型的text embedding基本上都使用类BERT结构,通过一个embedding矩阵转换为word embedding。但是visual embedding存在着差异。在大多数情况下,visual embedding是现有VLP模型的瓶颈。visual embedding的方法总共有三大类:

  • 第一类(区域特征):
    • 通常采用Faster R-CNN二阶段检测器提取region的特征
    • 先给定一个图像,通过卷积神经网络backbone,然后通过ROI抽到一些区域性特征。其实相当于是做了一个目标检测的任务,因为抽出来的特征是区域性的,与文本单词一样是离散型的,可以看作是序列输入到transformer中。但是运行时间较长,浪费了过多计算资源。
  • 第二类(网络特征):
    • 直接使用CNN提取grid的特征
  • 第三类(patch projection方法):ViLT首个使用

视觉和语言转换器 (ViLT)模型是最小的 VLP 模型,图像这边的处理和文本的处理一致了,都是通过一个linear embedding就结束了。

在这里插入图片描述

(三)模态交互部分对比

交互模式分为两类:

  • single-stream单流方法(例如 VisualBERT、UNITER):简单的将两个序列concat连接到一起,当成一个序列,输入到一个transformer中
  • dual-stream双流方法(例如ViLBERT、LXMERT),文本特征通过文本模型,图像特征通过图像模型,之后再进行融合

作者的交互transformer模块遵循单流方法,因为双流方法引入了额外的参数。

三、方法

(一)模型架构

ViT模型整体由两个linear embedding,加一个transformer组成。

  • 文本特征输入部分:将文本看成一个词序列,通过word embedding matrix转化成word embedding,然后和position embedding进行相加,最后和modal-type embedding进行concate。

  • 图像特征输入部分:将图像切块看成一个图像块序列,通过linear projection转化成visual embedding,然后和postion embedding进行相加,最后和modal-type embedding进行concate。

  • 由于视觉和文本输入被转化为了相同的token特征,所以后续的处理方式就可以统一了。因此VILT仅通过一个Transformer的结构就可以进行建模,它使用了一个预训练的ViT来初始化这个Transformer。

其中word embedding和visual embedding通过可学习的modal-type embedding标志位来区分,其中0标志位表示word embedding部分,1标志位表示visual embedding部分。wrod embedding和visual embedding分别都嵌入了一个额外的可学习[class] embedding,方便和下游任务对接。

在这里插入图片描述

ViLT 模型的表达式是:
在这里插入图片描述

(二)目标函数

VILT在预训练阶段主要使用了两种较典型的优化目标,分别为Image Text Matching(ITM)和Masked Language Modeling(MLM)。

(1)Image Text Matching(ITM)

随机以0.5的概率将文本对应的图片替换成不同的图片,然后对文本标志位对应输出使用一个线性的ITM head将输出feature映射成一个二值logits,用来判断图像文本是否匹配。另外ViLT还设计了一个word patch alignment (WPA)来计算teextual subset和visual subset的对齐分数。
在这里插入图片描述

(2)Masked Language Modeling(MLM)

MLM是训练NLP中Bert模型所使用的预训练任务,通常屏蔽(或随机替换)给定句子中特定百分比(15%)的单词,模型期望基于该句子中的其他单词预测这些被屏蔽的单词。这样的训练方案使这个模型在本质上是双向的,因为掩蔽词的表示是根据出现的词来学习的,不管是左还是右。
在这里插入图片描述
单塔多模态中的MLM与Bert中的稍有不同,主要区别还是在输入信息,VILT中的MLM在预测被MASK的单词时,除了依赖上下文还可以依赖视觉模态的信息。

(三)训练技巧

Whole Word Masking技巧 :将连续的子词tokens进行mask的技巧

  • 做完形填空任务时,每次是把整个词都 mask 掉的,而不是只 mask 掉一个词根。比如说作者举个例子:“giraffe” 这个词,可以拆解成3个词根:[“gi”, “##raf”, “##fe”]。正常 mask 时,可以 mask 掉 “##raf”,但是仔细想想如果说让模型已知 “gi” 和 “##fe” 来预测 “##raf” 时,可以说这个任务是比较不依赖图片信息的。如果不是所有的词根都被屏蔽,模型可能只依赖附近的两个语言标记 “gi” 和 “##fe” 来预测被屏蔽的 “##raf”,而不是使用图像中的信息。

  • 因此,如果是把 “giraffe” 这个词全部 mask 掉,模型就只能根据上下文和图像的信息来做完形填空了,这也是我们所希望看到的。

图像数据增强技巧:

  • 图像增强提高了视觉模型的泛化能力,但是之前的 VLP 工作很多没办法使用。因为大多数 VLP 模型有比较 heavy 的目标检测模型,所以一般是提前把输入喂入目标检测器,得到特征之后事先存起来,训练的时候就不用再通过一遍了。但是有了数据增强之后毫无疑问这就做不了了。所以呢,之前基于目标检测的 VLP 的工作不会这么用。即便是 Pixel-BERT 这种不考虑目标检测的工作,也没使用数据增强。

  • 但是 ViLT 这个方法不涉及目标检测,所以作者这里使用了数据增强 RandAugment。作者使用了所有原始的策略,除了两个:其一是 color inversion,因为文本通常也包含颜色信息。其二是:cutout,因为它可能会裁减掉图片里面很重要的小物体。

四、实验

(一)实验设置

预训练数据集: 作者使用了4个数据集来做预训练,这4个数据集合起来一般叫做 4 Million 的设置,因为它们的图片数加起来差不多是 4 Million。

  • MSCOCO:每个图片对应5个caption
  • VG:每个图片有50个caption
  • GCC:每个图片一个caption
  • SBU:每个图片一个caption

在这里插入图片描述

任务: 作者在两种常见的视觉-语言下游任务上面评价 ViLT 模型:

  • 分类任务 Classification (VQAv2 和 NLVR2 数据集)
  • 检索任务 Retrieval (MSCOCO 和 Flickr30K)

实验设置: ViLT 使用 bert-base-uncased tokenizer 来 tokenize 文本输入。优化器使用 AdamW,初始学习率 0.0001,weight decay 设为0.01。

(二)实验结果

ViLT的主要提升在Time上,大幅提升了推理速度,在分数和效果上,ViLT并没有因为推理速度大幅度提高而降低,反而在某些任务上有小幅度提升。

(1)分类任务实验结果:
在这里插入图片描述

(2)检索任务实验结果——zero-shot:
在这里插入图片描述
(3)检索任务实验结果——finetune:
在这里插入图片描述

(四)消融实验

消融实验探究了模型的哪些设计提升了性能,可以看到整词掩蔽和图像增强都带来了几个点的效果提升。
在这里插入图片描述

参考:
ViLT 论文精读【论文精读】

  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值