VILT
VILT
文章标题:ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision
作者:Wonjae Kim, Bokyung Son, Ildoo Kim
发表时间:(ICML 2021)
第一个摆脱了目标检测的视觉文本模型
Abstract
Vision and Language Pre-training(VLP) 当前的工作主要集中在图像特征抽取上,一般来讲,图像特征抽取的越好,下游任务中的表现就越好。
效率太低,速度太慢,抽取图像特征花费大量时间,比多模态融合都多。
用一个预训练好的模型去抽取特征,表达能力受限。
目标检测数据集不够大,规模不够大。如果模型不是端到端学习,只是从预训练模型抽取特征,大概率来说不是最优解。
Relate work
第一类,代表作VSE,文本端较为简单,图像比较贵,融合端也是简单的神经网络。
第二类,代表作CLIP,图像和文本的计算力度等价,融合的时候将两种特征直接点乘,非常轻量。
第三类,代表作ViLBERT、UNITER占据了大部分工作,文本端非常轻量。图像端使用目标检测的系统,非常贵。融合端也使用了Transformer,相当于两个大模型。
第四类,代表作ViLT,基于ViT对图像使用patch embedding,模态融合部分做得比较大。
Visual comparison of conventional VLP architectures and ViLT |
模态融合方法
signal-stream approach:将两种特征拼接起来,用一个模型处理两个输入。
dual-stream approach:两个模型分别对两种模态信息进行处理,充分挖掘每种模态包含的信息,然后再融合。
两种模型表现差不多,但是dual-stream approach参数多一些,VILT 采用signal-stream approaches。
文本编码端都是用预训练的BERT里的tokenizer
视觉编码端
Region Feature:经过一个Backbone抽取特征,然后经过RPN网络生成proposal,经过非极大值抑制 NMS 筛选边界框,最后经过ROI head得到图像序列。把一张图像变成了离散的bound-box,每个边界框内都含有明确的类别语义信息。(目标检测)
Grid Feature:仅基于Backbone
Patch Projection:基于 ViT 直接将图像打成patch,,得到一个有语义信息的离散的序列。
VILT 把模态的特征抽取做到了极小化,主要计算量在模态融合部分,提高模型推理速度。移除了Region feature
Methods
文本端有$L$个长为$H$ 的序列,$L$为一个句子中单词数量,$H$为序列长度。
图像端图像被打成 $N $个patch,每个patch也对应长为$H$的序列。
Modal-type embedding 模态信息(文本为0,图像为1),Token position embedding 文本位置信息,Patch position embedding 图像位置信息。
Modal-type embedding + position embedding + word embedding 不是拼接,是加在一起
Transformer Encoder的输入为$(N+L+2)\times H$的矩阵。* 代表 [CLS] token,$(N+L+2)\times H$中2代表两种模态的[CLS]。
使用了两个loss,分别是Image Text Matching和Mask Laguage Modeling。加个小loss :Word Patch Alignment
Image Text Matching:文字,图片配对 (文本与图像是否匹配)
Mask Laguage Modeling:NLP的完形填空
Word Patch Alignment :利用最优运输理论计算相似度(分布距离)
Transformer 的输出为$1\times H$的矩阵,经过$H\times H$的pooler(权重矩阵)得到仍是$1\times H$的矩阵,最后经过一个FC层进行二分类任务。
Whole word masking
例如giraffe长颈鹿这个单词,由三个词根组成,分别是gi,raf,fe,如果mask 的时候mask “raf”这个token。由于开头为gi结尾为fe的单词不多,模型就记住了中间一定是raf,就相当于模型学到了shortcut,这样泛化性就不好。
直接mask “giraffe” 整个单词。这样就需要借助图像信息,因此就加强了图像文本的联系。
Image Augmentation
为什么前边的研究没有使用数据增强?
多模态学习要考虑图像文本匹配的问题,数据增强可能会改变图像语义 使用预训练模型,无法进行数据增强
不适用color inversion和cutout避免与文本信息不匹配。
Experiments
预训练所用的数据集叫4million(4个数据集图片加起来这个数)
MSCOCO:113K图片 567K 长标题 VG: 108K图片 5.41M 短标题 GCC:3.01M图片对 SBU:867K图片对
Future work
scalability:transformer都是越大越好,数据集越大越好(做的更大)
Align before Fuse: Vision and Language Representation Learning with Momentum Distillation 用14million
Masked Modeling for Visual Inputs:图像重建 (NLP里进行Mask重建,图像肯定也有用)
Augmentation Strategies:数据增强
推荐阅读
后续改进,时间提升,更少时间训练
Align before Fuse: Vision and Language Representation Learning with Momentum Distillation 单机8卡训练2-3天 BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation Masked Unsupervised Self-training for Zero-shot Image Classification