论文地址:https://arxiv.org/abs/1908.02265
代码实现:https://github.com/facebookresearch/vilbert-multi-task
图1.ViLBERT 模型由视觉(绿色)和语言(紫色) 组成,它们通过 co-attentional transformer layer 进行互动。这种结构允许每种模式有不同的深度,并通过共同注意力实现稀疏的互动。带有乘数下标的虚线框表示重复的块。
1. Introduction
针对视觉和语言任务的预训练 + 迁移学习( pretrain-then-transfer )方法被广泛用于计算机视觉和自然语言处理,因为在大规模数据源上训练的大型、公开可用的模型的易用性和强大表现能力,它们已成为事实上的标准。在这些领域,预训练的模型可以为目标任务提供有用的信息。为此,作者开发一个通用的视觉基础模型,该模型可以学习这些联系并在广泛的视觉和语言任务中运用(即寻求对视觉基础的预训练模型)。
为了学习这些联合视觉语言表示,作者希望在自监督学习取得成功,这些成功通过训练模型执行“代理”任务,从大型未标记的数据源中捕获了丰富的语义和结构信息。这些代理任务利用结构在数据中自动生成监督任务(例如着色图像或重建文本中的掩码词 )。虽然计算机视觉社区内的工作展现出越来越大的前景,但迄今为止,自监督学习的最大影响是通过 ELMo 、BERT 和 GPT 等语言模型,这些模型已经在许多 NLP 任务上创造了新的上限。要通过类似的方法学习视觉基础,必须确定一个合适的数据源,其中视觉和语言之间可以保持一致。在这项工作中,作者选用了最近发布的 Conceptual Captions 数据集,该数据集由约 330 万幅图像组成,为网络上支持 alt-text 的图片和其弱关联描述性标题。
作者提出了一个联合模型,用于从成对的视觉语言数据中学习与任务无关的视觉基础,作者称为 Vision & Language BERT(简称 ViLBERT )。该方法扩展了最近开发的 BERT 语言模型,以联合推理文本和图像。关键技术创新是为视觉和语言处理引入单独的流,通过共同注意的 Transformer 层(co-attentional transformer layers)进行通信。这种结构可以适应每种模态的不同处理需求,并提供不同表示深度的模态之间的交互。在实验中证明了这种结构优于单流统一模型。
类似于 BERT 中的训练任务,训练的两个代理任务上:在给定未屏蔽输入的情况下预测屏蔽词和图像区域的语义,以及预测图像和文本段是否对应。作者将预训练模型作为四个既定的视觉和语言基础任务( visual question answering , visualcommonsense reasoning, referring expressions, caption-based image retrieval)四项任务均达到 SOTA 。与使用单独的预训练视觉和语言模型的任务特定基线相比这些任务提高了 2 到 10 个百分点。此外,该结构很容易针对这些任务进行修改——作为跨多个视觉和语言任务的视觉基础的共同基础。
2. Approach
在这一节中,首先简要地总结了BERT语言模型,然后描述了作者如何扩展它以联合表示视觉和语言数据
图2.基于 transformer 架构的 co-attention 机制。通过在多头注意力中交换键值对,这种结构使视觉参与的语言特征能够被纳入视觉表示中(反之亦然)
2.1 Preliminaries: Bidirectional Encoder Representations from Transformers (BERT)
BERT 模型是一个基于注意力的双向语言模型。 当在大型语言语料库上进行训练时,BERT 已被证明对多种自然语言处理任务的迁移学习非常有效。
BERT 模型对 Word Token 序列 w 0 , . . , w T w_0, . . , w_T w0,..,wT 进行操作,这些 Token 被映射到学习的编码上并通过 L L L “encoder-style” transformer blocks 以产生最终表示: h 0 , . . . , h T h_0,...,h_T h0,...,hT。设 H ( l ) H^{(l)} H(l) 是一个矩阵,其中第 l l l 行 h 0 ( l ) , . . . , h T ( l ) h^{(l)}_0, . . . , h^{(l)}_T h0(l),...,hT(l) 对应于第 l l l 层之后的中间表示。提取论文( Attention is all you need ) 中发现的一些内部细节,图 2a 中 single encoder-style transformer block 的计算,该块由一个 multi-headed attention block 和一个小的全连接网络组成,两者都包裹在残差中。该中间层的表示 H ( l ) H^{(l)} H(l) 用于计算三个度量—— Q、K 和 V(对应于 multi-headed attention bloc 的 queries, keys, values )。具体来说,queries 和 keys 之间的点积相似度(dot-product similarity )决定了 values 向量上的注意力分布(attentional distributions over value vectors)。得到的权重平均值向量构成了注意力块的输出。作者修改了这个以 query 为条件的键值注意机制,为 ViLBERT 开发了一个多模态协同注意转换器模块( multi-modal co-attentional transformer module )
- Text Representation:BERT 对由词汇词和一小组特殊标记(SEP、CLS 和 MASK)