LXMERT:学习Transformer的跨模态编码器表示
一、创新点
构建了一个大规模Transformer模型,该模型由3个编码器组成:
(1)对象关系编码器(object relationship encoder)
(2)语言编码器(language encoder)
(3)跨模态编码器(cross-modality encoder)
然后用大量的 图像-句子对 对模型进行预训练 ,用来学习模态内和跨模态关系。
二、方法
三、 过程
1.Input Embeddings(输入嵌入)
LXMERT中的输入嵌入层将输入(即图像和句子)转换为两个特征序列:单词级句子嵌入和对象级图像嵌入。这些嵌入特征将由后一编码层进一步处理。
(1)Word-Level Sentence Embeddings
一个句子首先被相同的WordPiece tokenizer拆分为长度为n的单词。接下来,如图1所示,通过嵌入子层将单词及其索引(index)i(在句子中的绝对位置)投影到向量上,然后添加到索引感知单词嵌入(index-aware word embeddings)中:
(2)Object-Level Image Embeddings
对象检测器从图像中检测m个对象(由图1中图像上的边界框表示)。每个对象由其位置特征(边界框坐标)和其2048维感兴趣区域(RoI)特征表示。我们不是直接使用RoI特征而不考虑其位置,而是通过添加2个完全连接层的输出来学习位置感知嵌入:
除了在视觉推理中提供空间信息外,我们的masked目标预测预训练任务还需要包含位置信息。由于图像嵌入层和后续的注意力层对其输入的绝对索引是不可知的,因此不指定目标的顺序。
最后,在等式1中,在求和之前将层归一化应用于投影特征,以平衡两种不同类型特征的能量(energy)。
2.Encoders(编码器)
(1)Background: Attention Layers
注意力层旨在从与查询向量x相关的一组上下文向量中检索信息。它首先计算查询(query)向量x和每个上下文(context)向量之间的匹配分数。然后通过softmax标准化分数:
注意力层的输出是上下文向量的加权和,即软最大归一化(softmax-normalized)得分:
(2)Single-Modality Encoders(单模态编码器)
单模态编码器中的每一层(图1中的左虚线框)包含一个自注意力(“self”)子层和一个前馈(“FF”)子层,其中前馈子层进一步由两个完全连接的子层组成。本文分别在语言编码器和对象关系编码器中采用NL和NR层,并且在每个子层之后添加了残差连接和层归一化(图1中“+”号)。
(3)Cross-Modality Encoder(跨模态编码器)
交叉模态编码器中的每个交叉模态层(图1中的右虚线框)由两个自注意力子层、一个双向交叉注意力子层和两个前馈子层组成。
本文在编码器实现中,将这些跨模态层叠加Nx层(即,使用第k层的输出作为第(k + 1)层的输入)。
在第k层中,首先应用了双向交叉注意力子层(“Cross”),它包含两个单向交叉注意力子层次:一个从语言到视觉,一个从视觉到语言。
查询(query)向量和上下文(query)向量是第(k-1)层的输出(即语言特征和视觉特征)。
交叉注意子层用于交换信息并在两种模态之间对齐实体,以便学习联合的交叉模态表示。为了进一步构建内部连接,然后将自注意力子层(“self”)应用于交叉注意子层的输出:
最后,第k层输出和是通过在和之上的前馈子层(“FF”)产生的。然后在每个子层之后添加一个残差连接和层归一化,类似于单模态编码器。
3. Output Representations(输出表示)
LXMERT跨模态模型分别具有语言、视觉和跨模态的三个输出。语言和视觉输出是由跨模态编码器生成的特征序列。
对于跨模态输出,本文在句子单词之前添加了一个特殊标记[CLS](表示为图1底部分支中的顶部黄色块),语言特征序列中该特殊标记的对应特征向量被用作跨模态输出。
四、预训练
1.语言任务——Masked跨模态LM
任务设置与BERT几乎相同:单词被概率为0.15的随机masked,模型被要求预测这些masked。除了在BERT中,从语言模态中的非masked词预测masked词,LXMERT具有跨模态模型体系结构,可以从视觉模态中预测masked词,从而解决模糊性问题。如上图2所示。很难从其语言上下文中确定masked词“胡萝卜”,但如果考虑视觉信息,则单词选择是明确的。因此,它有助于建立从视觉模态到语言模态的联系,将这项任务称为masked跨模态LM。
2.视觉任务——Masked目标预测
通过概率为0.15的随机masked物体(即用零填充ROI特征)来预先训练视觉的一面,并要求模型预测这些masked目标的结构。与语言任务(即masked跨模态LM)相似,模型可以从可见目标或语言模态推断masked目标。从视觉方面推断目标有助于学习目标关系,从语言方面推断有助于学习跨模态对齐。因此,执行两个子任务:
(1)RoI-Feature Regression:用L2损失回归对象ROI特征,
(2)Detected-Label Classification:学习具有交叉熵损失的masked对象的标签。
在“Detected-Label Classification”的子任务中,虽然大多数预训练图像都有目标级注释,但在不同的数据集中,注释目标的ground truth标签是不一致的(例如,标签类别的数目不同)。因为这些原因,采用Faster R-CNN把检测到的标签输出。
3.跨模态任务
如上图2中最右边部分所示。为了学习一个强大的跨模态表示,本文用两个明确需要语言模态和视觉模态的任务对LXMERT模型进行了预训练。
其中语言模态和视觉模态的任务分别为:
(1)Cross-Modality Matching:
对于每个句子,按照0.5的概率,用一个不匹配的句子替换它。然后,训练一个分类器来预测图像和句子是否相互匹配。这个任务是如BERT一样进行“下一句预测”。
(2)Image Question Answering (QA):
为了扩大预训练的数据集,预训练数据中大约1/3的句子是关于图像的问题。当图像和问题匹配时,要求模型预测这些图像相关问题的答案。实验表明,用这种图像QA进行预训练可以得到更好的跨模态表示。
五、实验结果