【论文阅读】 VL-BERT: Pre-training of generic visual-linguistic representations

利用BERT联合学习视觉和语言之间的信息。
Visual-Linguistic BERT的主干是多模态Transformer attention 模块,以视觉和语言嵌入特征作为输入。在输入中,每个元素要么来自输入句子的单词,要么来自输入图像的某个区域(RoI),以及某些特殊元素[CLS]、[SEP]、[END]等用来消除不同的输入格式的歧义。
在这里插入图片描述
不同于BERT只将语言元素作为输入,VL-BERT将视觉元素和语言元素共同输入。对于每个输入元素,其嵌入特征是四种类型的embedding的总和,即token embedding、visual feature embedding、segment embedding和position embedding。

  • token embedding:遵循BERT的设置,不同之处在于,对于视觉元素,为每一个视觉元素分配一个特殊的[IMG]token。
  • visual features embedding:每一个输入元素都有一个对应的视觉特征嵌入,视觉特征嵌入是视觉外观特征和视觉几何特征的concatenation。通过应用Fast R-CNN检测器来提取视觉外观特征。每个RoI输出层之前的特征向量被用作视觉特征嵌入。对于非视觉元素,相应的视觉外观特征是在整个输入图像上提取的特征,它们是通过在覆盖整个输入图像的RoI上应用Faster R-CNN获得的。视觉几何特征旨在定义每个视觉元素的几何位置。每个RoI的几何特征是一个四维向量,分别用左上角和右下角的坐标分别除以图像的宽度和高度。
  • segment embedding:定义了三种类型的句段A,B,C,以将来自不同来源的输入元素分开。A表示来自于第一个输入句子中的单词,B表示来自于第二个输入句子中的单词,C表示来自于输入图像的RoI。
  • position embedding:与BERT一样,将序列位置嵌入添加到每个输入元素中,以指示其在输入序列中的顺序。由于输入的视觉元素之间没有自然顺序,因此它们在输入序列中的任何排列都应获得相同的结果。因此,所有视觉元素的序列位置嵌入都相同。

【预训练任务】

在视觉语言和纯文本数据集上对VL-BERT进行预训练,利用Conceptual Captions 数据集作为视觉语言的语料库,它包括约330万张带caption注释的图像,Conceptual Captions 数据集的问题在于,caption主要都是简单的句子,对于许多下游任务而言,它们太短太简单。为了避免在这种简短的文本场景中过度拟合,还对带有长而复杂的句子的纯文本语料库进行了VL-BERT的预训练,利用BoolsCorpus&English Wikipedia数据集。

在随机梯度下降的过程中,在每一个mini batch中,都是从Conceptual Captions 和 BooksCorpus&English Wikipedia中随机抽取样本(比例为1:1)。

  • Task1 :利用视觉线索对masked语言建模:此任务与BERT中使用的masked 语言建模(MLM)任务非常相似。关键区别在于VL-BERT中包含了视觉线索,以捕获视觉和语言内容之间的依存关系。在预训练期间,输入句子中的每个单词都会被随机mask(概率为15%)。对于被屏蔽的单词,其token被替换为[MASK]。预训练模型基于未被mask的单词和视觉特征来预测被mask掉的单词。该任务驱动网络不仅对句子中的依存关系进行建模,而且使视觉和语言内容保持一致。损失函数为交叉熵损失函数。
  • Task2:利用语言线索对masked RoI进行分类:图像中的每个RoI都会以15%的概率被随机mask,预训练任务是根据其他线索预测被mask的RoI的类别标签。为了避免由于其他元素的视觉特征嵌入而导致任何视觉线索泄漏,在应用Fast R-CNN之前,将mask RoI中放置的像素置为0。在预训练期间,对应于被mask的RoI的最终输出特征将被feed到具有softmax交叉熵损失的分类器中,以进行对象类别分类。

参考资料:[Su et al., 2019] Weijie Su, Xizhou Zhu, Yue Cao, Bin Li, Lewei Lu, Furu Wei, and Jifeng Dai. 2019. Vl-bert: Pre-training of generic visual-linguistic representations. arXiv preprint arXiv:1908.08530.