<<多模态预训练and视觉问答>>2019:LXMERT: Learning Cross-Modality Encoder Representations from Transformers


目录

摘要:

一、介绍

二、模型结构

2.1 Input Embeddings

2.2 Encoders

2.3 Output Representations

三、预训练策略

3.1 Pre-Training Tasks

3.1.1 Language Task: Masked Cross-Modality LM

3.1.2 Vision Task: Masked Object Prediction

3.1.3 Cross-Modality Tasks

3.2 Pre-Training Data

3.3 Pre-Training Procedure

四、实验结果

4.1 Evaluated Datasets

4.2 Implementation Details

4.3 Empirical Comparison Results

五、结论


摘要:

        视觉语言推理需要理解视觉概念、语言语义,以及最重要的,这两种模式之间的对齐和关系。因此,我们提出LXMERT(利用Transformers学习跨模态编码器表示)框架来学习这些视觉和语言的关系,在LXMERT中,我们构建了一个大规模的Transformer模型,该模型由三个编码器组成:对象关系编码器、语言编码器和跨模态编码器,接下来,为了赋予我们的模型连接视觉和语言语义的能力,我们使用大量的图像和句子对对模型进行预训练,通过五个不同的具有代表性的预训练任务:掩码语言模型、掩蔽对象预测(特征回归和标签分类)、跨模态匹配和图像问答。这些任务有助于学习内模态和跨模态关系,经过对预训练参数的调整,我们的模型在两个可视化问答数据集(即VQA和GQA)上获得了最先进的结果。我们还通过将预训练的交叉模态模型用于具有挑战性的视觉推理任务NLVR2来展示其可泛化性,并将先前的最佳结果提高了22%(54%至76%)。最后,我们展示了详细的消融研究,以证明我们的新模型组件和预训练策略都对我们的结果有显著的贡献;并针对不同的编码器提出了几种注意力可视化方法。

一、介绍

        视觉语言推理需要理解视觉内容、语言语义和跨模态对齐和关系,过去已经有大量的工作分别开发具有更好表征视觉或语言的单一模态的骨干模型。尽管这些单模态研究颇有影响力,但对视觉语言的模态对进行大规模的预训练和微调的研究仍处于起步阶段。

        因此,我们展示了构建预训练的视觉语言跨模态框架的首批工作之一,并展示了它在多个数据集上的强大性能。我们将这个框架命名为“LXMERT:利用Transformers学习跨模态编码器表示”(发音为“leksmert”),这个框架仿照了最近的bert风格进行创新。我们的新跨模态模型专注于学习视觉和语言的交互,特别是对于单个图像及其描述句的表示。它由三个Transformer编码器组成:一个对象关系编码器、一个语言编码器和一个跨模态编码器,为了更好地学习视觉和语言之间的跨模态对齐,我们接下来用五个不同的代表性任务对我们的模型进行预训练:(1)掩码跨模态语言建模;(2)通过ROI特征回归预测掩码对象;(3)通过检测标签分类预测掩码对象;(4)跨模态匹配;(5)图像问答。不同于单模态预训练(例如BERT中的MLM),这种多模态预训练允许我们的模型从同一模态中的可见元素或从另一模态中的对齐组件推断masked特征。通过这种方式,它有助于建立内模态和跨模态的关系。

二、模型结构

        根据自然语言处理模型设计的最新进展(例如,transformers),我们构建了带有自注意和交叉注意的跨模态模型。如图1所示,我们的模型有两个输入:一个图像和它相关的句子(例如,一个标题或一个问题)。每个图像都被表示为一个对象序列,每个句子都被表示为一个单词序列。通过仔细设计和组合这些自注意层和交叉注意,我们的模型能够从输入生成语言表示、图像表示和跨模态表示。

2.1 Input Embeddings

        LXMERT中的输入嵌入层将输入(即图像和句子)转换为两个特征序列:词级句子嵌入和对象级图像嵌入,这些嵌入特征将被后一层编码层进一步处理。

        Word-Level Sentence Embeddings 一个句子首先被分成n个单词{w1,....,wn}。接下来,如图1所示,通过嵌入子层将词wi和它的索引i(wi在句子中的绝对位置)投影到向量上,然后加入到支单词嵌入中:

         Object-Level Image Embeddings 我们没有使用卷积神经网络输出的特征图,而是遵循BUTD的方法,将检测到的对象的特征作为图像的嵌入。具体来说,对象检测器检测m个对象{o1,…, om}(在图1的图像上用bounding boxes表示)。每个对象由其位置特征(即边界框坐标)pj和其2048维感兴趣区域(RoI)特征fj表示。我们不是直接使用RoI特征而不考虑其位置,而是通过添加2个全连接层的输出来学习位置感知嵌入vj:

除了在视觉推理中提供空间信息外,包含位置信息对于我们的掩码对象预训练任务是必要的(在第3.1.2节中描述)。由于图像嵌入层和下面的注意层对其输入的绝对指标是不可知的,因此对象的顺序没有指定。最后,在上式最后一步,在求和之前对投影的特征进行层归一化处理,以平衡两种不同类型特征的作用强度。

2.2 Encoders

        我们的编码器,即语言编码器、对象-关系编码器和交叉模态编码器,主要基于两种注意力层:自注意层和交叉注意层。

        Single-Modality Encoders 在嵌入层之后,我们首先应用两个transformer编码器,即语言编码器和对象-关系编码器,每个编码器只关注单一的模态(即语言或视觉)。与BERT不同的是,它只将transformer编码器应用于语言输入,我们也将其应用于视觉输入(以及后面描述的跨模度输入)。单模态编码器中的每一层(图1左虚线块)都包含一个Self-attention ('Self ')子层和一个前馈(' FF ')子层,其中前馈子层由两个全连接层组成。在语言编码器和对象-关系编码器中分别采用NL和NR层。我们像transformer那样,在每个子层之后添加一个残差连接和层标准化(在图1中用“+”符号标注)。

        Cross-Modality Encoder 跨模态编码器中的每个跨模态层(图1右虚线块)由两个自注意子层、一个双向交叉注意子层和两个前馈子层组成。在我们的编码器实现中,我们将这些跨模态层堆叠(即使用第k层的输出作为第k+1层的输入)。在第k层内部,首先应用双向交叉注意子层,该子层包含两个单向交叉注意子层:一个从语言到视觉,一个从视觉到语言。query向量和上下文向量是第(k-1)层(即语言特征和视觉特征)的输出:

交叉注意子层用于交换信息和对齐两种模态之间的实体,以学习联合跨模态表示。为了进一步构建内部连接,将自我注意子层('Self ')应用于交叉注意子层的输出:

我们还在每个子层后增加了一个残差连接和层标准化,类似于单模态编码器。

2.3 Output Representations

        如图1最右侧所示,我们的LXMERT模型有三个输出,分别用于语言、视觉和跨模态任务。语言和视觉输出是由跨模态编码器生成的特征序列,对于跨模态的输出,我们添加一个特殊标记(CLS)(表示为图1的顶部黄色块底部分支)在句子单词之前,和相应的特征向量的特殊标记语言功能序列作为跨模态输出。

三、预训练策略

        为了更好地学习理解视觉和语言之间联系的初始化方法,我们在一个大型聚合的数据集上使用不同的模态预训练任务对模型进行预训练。

3.1 Pre-Training Tasks

3.1.1 Language Task: Masked Cross-Modality LM

        在语言模态,我们采用掩码跨模态LM任务,如图2的底部分支所示,任务设置与BERT 几乎相同:单词以0.15的概率被随机mask,并要求模型预测这些被masked的单词。除了BERT(掩码词是从语言模态中的非掩码词中预测的)外,LXMERT及其跨模态模型体系结构也可以从视觉模态中预测掩码词,从而解决歧义问题,例如,如图2所示,掩码词“胡萝卜”很难从语境中确定,但如果考虑到视觉信息,词的选择是明确的。因此,它有助于建立从视觉模态到语言模态的连接,为了强调这一区别,我们将此任务称为掩码跨模态LM。我们还表明,将BERT参数加载到LXMERT中会对第5.1节中的预训练过程造成损害,因为BERT在语言模态中可以表现得相对较好,而无需学习这些跨模态连接。

3.1.2 Vision Task: Masked Object Prediction

        如图2的顶部分支所示,我们以0.15的概率随机掩码对象(即用0掩蔽RoI特征)对视觉特征进行预训练,并要求模型预测这些被掩码对象的属性。类似于语言任务(即掩码跨模态LM),模型可以从可见对象或语言模态推断掩码对象。从视觉侧推断对象有助于学习对象关系,从语言侧推断对象有助于学习跨模态对齐。因此,我们执行两个子任务:RoI-feature regression用L2 loss对对象RoI特征进行回归,detected label classification用交叉熵loss学习被掩码对象的标签。在“Detected Label Classification”子任务中,尽管我们的大多数预训练图像都有对象级标注,但标注对象的ground truth标签在不同的数据集中是不一致的(例如,不同数量的标签类)。基于这些原因,我们采用Faster RCNN输出的检测标签,尽管检测到的标签是有噪声的,实验结果表明这些标签有助于第5.3节中的预训练。

3.1.3 Cross-Modality Tasks

        如图2中右部分所示,为了学习强跨模态表示,我们使用两个明确需要语言和视觉模态的任务对LXMERT模型进行预训练。

        Cross-Modality Matching 对于每一个句子,我们以0.5的概率用一个不匹配的句子替换它。然后,我们训练一个分类器来预测图像和句子是否匹配。

        Image Question Answering 为了扩大预训练数据集,预训练数据中大约有1/3个句子是关于图像的问题。当图像与问题匹配时(即在跨模态匹配任务中不随机替换),我们要求模型预测这些图像相关问题的答案。在第5.2节中,我们表明,使用该VQA进行预训练会导致更好的跨模态表示。

3.2 Pre-Training Data

        如表1所示,我们收集了来自MS COCO或Visual Genome的五个视觉和语言数据集的预训练数据,三个大型图像问答(image QA)数据集:VQA v2.0、GQA和VG-QA。为了避免在预训练看到任何测试数据,我们只在每个数据集中收集train和dev数据集,我们对这五个数据集进行了最少的预处理,以创建对齐的图像和句子对。对于每个图像问答数据集,我们从图像和句子数据对中将问题作为句子,并将答案作为VQA预训练任务中的标签。这为我们提供了一个大的对齐的视觉和语言数据集,在180k张不同的图像上有9.18 m的图像和句子对。

3.3 Pre-Training Procedure

        对预训练和微调的一些设置,请看原论文。

四、实验结果

4.1 Evaluated Datasets

        VQA v2,GQA,NLVR2。

4.2 Implementation Details

        在VQA和GQA上,我们在不增加数据的情况下,从预训练的微调我们的模型(分析见第5.2节)。在训练GQA时,我们只接受原始问题和原始图像作为输入,不使用其他监督,由于nlvr2中的每个数据都有两个自然图像img0、img1和一个语言语句,我们使用LXMERT对两个图像-语句对(img0, s)和(img1, s)进行编码,然后根据两个跨模态输出的连接训练分类器。更多细节见附录。

4.3 Empirical Comparison Results

        我们将我们的单模型结果与之前在VQA/GQA测试标准集和NLVR2测试集上发布的最佳结果进行了比较。除了以前最先进的方法外,我们还将在可用时显示人类性能和仅图像/仅语言的结果。

        更多的消融实验,请看原论文。

五、结论

        我们提出了一个跨模态框架LXMERT,用于学习视觉和语言之间的联系。我们建立了基于Transfermer编码器和我们的新型跨模态编码器的模型,然后在大规模的图像和句子对数据集上使用不同的预训练任务对该模型进行预训练。在实验中,我们展示了在两个图像问答数据集(即VQA和GQA)上的最先进的结果,并显示了在NLVR2具有挑战性的视觉推理数据集上模型的可泛化性提高了22%。通过详细的分析和消融研究,我们也展示了几种模型组件和训练方法的有效性。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值