ViLT 论文
VLP(Vision Language Pretraining) 有四种模式,作者强调应该是第四种,更应该强调模态之间的融合。CLIP 属于(b)模式,ViLBERT、UNTER和Pixel-BERT 属于(c)模式。而模态交互又分为 single-stream 和 dual-stream 两种模式,single-stream 是对图像和文本直接进行 concate,dual-stream 是图像和文本分别进行操作在后续某个阶段进行融合。ViLT 采用(d)+ single-stream,旨在提升速度。
传统的特征提取是余弦做好保存在硬盘里,所以训练是相对轻量的。但是在推理时,如果是一个没见过的,那么视觉特征提取这部分时间大量消耗,实际上就尤为严重了。
现有的 VLP 模型的 text embedding 都是属于类 BERT 结构,但是 visual embedding 存在差异。因为多模态下游任务,大部分是 VQA、Visual Reasoning 和物体是强关联,所以之前的方法会使用目标检测头。Region Feature 通常采用 Faster-RCNN 提取 region 特征然后,Grid Feature 直接利用 CNN 提取 grid 特征,Patch Projection 直接采用了 patchify+Linear Embedding。(跟 VIT 一样)
在训练时,采用 mask 整个单词的做法。以往 mask 某个 token,以 “giraffe” 为例,分为 “gi”,“##raf“,”##fe“,采取以往方法得到”gi“,”[MASK]“,”##fe“,模型通过”gi“,”##fe“ 容易直接记忆 ”giraffe“ 而不是利用了视觉信息。直接 mask 整个单词,强迫模型去利用视觉的信息。
实验结果
性能相比并没有下降很多,但是速度能提升到 15ms。