ViLBERT:用于视觉和语言任务的无任务特定的视觉语言表示的预训练.
- paper:ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks
0. TL; DR
ViLBERT(Vision-and-Language BERT)是一种用于学习图像内容和自然语言联合表示的模型。它扩展了BERT架构,通过双流模型分别处理视觉和文本输入,并通过共注意力Transformer层进行交互。ViLBERT在大规模的Conceptual Captions数据集上进行预训练,并在多个视觉与语言任务(如视觉问答、视觉常识推理、指代表达和基于字幕的图像检索)上取得了最先进的性能。ViLBERT的成功表明,预训练视觉与语言的对齐关系是一种有效的策略,可以广泛应用于多种任务。
1. 背景介绍
视觉与语言任务的目标是让计算机能够通过自然语言生成或响应来展示其视觉理解能力。这些任务包括视觉问答(VQA)、视觉常识推理(VCR)、指代表达和基于字幕的图像检索等。尽管这些任务都需要将自然语言与视觉对齐,但目前的方法大多缺乏统一的基础来实现这种能力。现有的方法通常是先分别预训练语言和视觉模型,然后在任务训练中学习对齐关系,这可能导致在数据有限或有偏差的情况下泛化能力较差。
ViLBERT旨在通过预训练来学习视觉与语言的联合表示,从而为多种视觉与语言任务提供一个通用的视觉对齐模型。这种方法类似于自然语言处理中的BERT模型,通过在大规模数据上进行预训练,然后将预训练的模型迁移到特定任务上。
2. ViLBERT 模型
ViLBERT扩展了BERT模型,使其能够同时处理图像和文本输入。ViLBERT的核心是一个双流模型,包含两个并行的BERT风格的模型,分别处理图像区域和文本段落。这两个流通过共注意力Transformer层(Co-Attentional Transformer Layers)进行交互,允许两个模态之间的信息交换。
ViLBERT的双流架构包括:
- 图像流:图像通过预训练的目标检测网络提取区域特征,每个区域特征包括视觉特征(Faster R-CNN经过ROI Pooling之后的特征)和空间位置特征(对描述区域的坐标值以及占图像面积的比率经过全连接层编码得到)。图像区域序列以一个特殊的$
$标记开始,表示整个图像。
- 文本流:文本输入以BERT的格式进行处理,包括$
$和$ $等特殊标记。 - 共注意力Transformer层:每个共注意力层包含两个多头注意力模块,分别处理图像和文本输入。每个模态的键(Key)和值(Value)会传递给另一个模态的查询(Query),从而实现跨模态的注意力机制。
ViLBERT通过两个预训练任务学习视觉与语言的联合表示:
- 掩码多模态建模:类似于BERT的掩码语言建模任务,ViLBERT随机掩盖部分文本和图像区域输入(对于文本随机mask的token用特殊的$[MASK]$ token 代替;对于图像mask的区域特征设置为全零向量),并训练模型根据未掩盖的输入预测这些被掩盖的部分。图像区域的预测目标是语义类别分布,而不是具体的特征值;即将Faster-RCNN输出的每一个区域的概率分布作为真值,模型输出的特征向量经过全连接层之后得到预测的类别概率分布。
- 多模态对齐预测:模型需要判断给定的图像和文本是否匹配。通过计算图像和文本的联合表示,并使用一个线性层进行二分类预测。输入模型的token序列为$[IMG],v_1,…,v_n,[CLS],w_1,…,w_m,[SEP]$,经过模型之后,$[IMG]$和$[SEP]$对应的特征向量经过逐元素相乘之后经过一个线性映射层得到二值的预测结果,表明图像和文本是否匹配。
3. 实验分析
ViLBERT在以下四个视觉与语言任务上进行了评估:
- 视觉问答(VQA):给定图像和问题,任务是生成准确的答案。
- 视觉常识推理(VCR):给定图像,任务是选择正确的答案和理由。
- 指代表达:给定自然语言描述,任务是定位图像中的对应区域。
- 基于字幕的图像检索:给定描述图像内容的字幕,任务是从图像池中识别出对应的图像。
主要实验结果:
- ViLBERT在VQA 2.0数据集上取得了70.92%的准确率,优于现有的最佳方法(DFAF,70.34%)。
- ViLBERT在VCR任务中取得了73.3%的准确率,显著优于现有的最佳方法(R2C,65.1%)。
- ViLBERT在RefCOCO+数据集上取得了78.52%的准确率,优于现有的最佳方法(MAttNet,71.62%)。
- ViLBERT在Flickr30k数据集上取得了91.52%的准确率,优于现有的最佳方法(SCAN,85.20%)。