ViLBERT(Vision-and-Language BERT)是发表于2019年的论文,在功能上实现了文本+图像的多模态特征提取与分类。改论文的特点是使用了双流模型,即先各个模态特征单独自注意力,再经过transformer交叉注意力。单流是将不同模态特征序列先拼接起来,再通过transformer自注意力。

ViLBERT,一种用于学习图像和自然语言的任务不可知的联合表征的模型,将BERT架构扩展到多模态双流架构,两个独立的分支分别处理视觉和文本输入,co-attention层用以交互图像和文本。在自动收集的大型captions数据集上通过两个预训练任务对模型进行预训练,然后将其迁移到多个视觉和语言下游任务中,视觉问答、视觉常识推理、引用表达式和基于caption的图像检索。

Motivation

如果在一个较大的数据集上预训练一个模型,那么完成特定的下游任务时可以使用该模型(简单修改模型结构或用作特征提取器),训练时并对参数进行微调即可,这样可以大大缩短训练时间。

(BERT模型(双向Transformer结构,利用了self-attention来增加上下文的相关性)逐渐成为了语言任务中首选的预训练模型。但在视觉与语言交叉的领域还没有出现一个通用的预训练模型。)

 图片和文本分别经过两条不同的stream进入co-attentional transformer层中。其中图片经过Faster R-CNN生成候选区域提取特征生成embedding,而文本则在生成embedding后经过了额外的几个Transformer层。作者认为图片经过Faster R-CNN提取的特征已经是有较高层次了,而文本的embedding需要经过transformer来生成上下文之间的联系。

此后两条stream经过多层相互交叉的co-transformer和Transformer层。普通的Transformer中,query、key、value来自上一层Transformer。而这里提出的全新的co-transformer则同时利用了上一层中视觉和语言的信息,如下图所示。

 右侧的co-attention transformer中,视觉和语言两条stream分别使用了自己的query和来自另一边的key和value向量,这就使得在通过attention产生文本特征时可以嵌入相应的视觉信息,反之亦然。

Pretraining Tasks

ViLBERT仿照BERT的思想,选定了两项预训练任务。Mased multi-modal learning是遮挡住部分图片和文本信息,让模型预测相应的图片区域和文本。Multi-modal alignment prediction即是给定标题和图片,判断两者是否契合。

Downstream Tasks

下游任务包括视觉问答(VQA)、视觉常识问答(VCR)、引用表达式理解(Referring Expressions)以及基于标题的图片检索(Caption-Based Imahe Retrieval).

Experiments

1. 经过预训练的ViLBERT对于上述几个下游任务都有不错的效果。

2. 作者对各个任务下ViLBERT达到最好效果所需的TRM和Co-TRM层数进行了实验,实验表明VQA、VCR需要的层数较少,而其余任务则是准确率大致上随层数增大而增加。

3. 作者还分析了预训练数据集大小与模型效果的关系,分别使用了不同比例的Conceptual Captions(包含大量的图片及对应的标题)数据。结果表明预训练数据集越大模型效果越好,证明预训练中没有发生过拟合。

查看原文