LXMERT: Learning Cross-Modality Encoder Representations from Transformers 论文笔记


文章下载地址:.

1. 文章概要

视觉 - 语言推理需要对视觉概念、语言语义有一定的理解,尤其还需要能在这两个模态之间进行对齐、找到关系。作者们提出了 LXMERT 框架来学习这些语言和视觉的联系,它含有三个编码器:一个对象关系编码器、一个语言编码器和一个跨模态编码器。为了让模型具备联系视觉和语言语义的能力,使用了 5 个不同的有代表性的预训练任务:(1)掩码交叉模态语言建模;(2)通过ROI特征回归进行掩码目标预测;(3)通过检测到的标签分类进行掩蔽目标预测;(4)交叉模态匹配;(5)图像问题解答。这些多模态预训练既可以帮助学习同一个模态内的联系,也可以帮助学习跨模态的联系。

2. 模型体系结构

在这里插入图片描述
上图是作者建立的具有自我注意和交叉注意层的跨模态模型。该模型接受两个输入:一个图像及其相关的句子。通过精心设计和组合这些自我注意和交叉注意层,我们的模型能够生成语言表示、图像表示和跨模式表示。接下来,将详细描述该模型的组件。

2.1 Input Embeddings

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

词级句子嵌入 一个句子首先被分成{W1,…,Wn},长度为n,用的是WordPiece tokenizer。接下来,通过嵌入子层将单词wi及其索引 i (wi在句子中的绝对位置)投影到向量上,然后添加到索引感知词嵌入:

在这里插入图片描述
对象级图像嵌入 从图像(上图边框表示)对象检测器检测m个对象{O1,…,Om}。每个对象Oj由其位置特征pj(即,边界框坐标)及其2048维感兴趣区域(RoI)特征 fj 表示。我们是通过增加2个全连接层的输出来学习位置感知嵌入vj:
在这里插入图片描述

2.2 编码器

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

单模态编码器 在嵌入层之后,我们首先应用两个transformer编码器,即语言编码器和对象关系编码器,它们中的每一个都只专注于一个单一的模态(即语言或视觉)。在单模态编码器中(上图中的左侧虚线框),每层都包含一个自注意(“Self”)子层和一个前馈(“FF”)子层,其中前馈子层进一步由两个完全连接的子层组成.。我们分别在语言编码器和对象关系编码器中采用NL层和NR层,在每个子层之后添加一个残差连接和层归一化(在图1中用“ +”符号表示)。

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

在这里插入图片描述
交叉注意子层用于交换信息和对齐两种模式之间的实体,以学习联合的交叉模式表示。为了进一步建立内部连接,然后将自关注子层(“self”)应用于交叉关注子层的输出:

在这里插入图片描述
最后,第k层输出在这里插入图片描述在这里插入图片描述顶部的前馈子层(FF)产生。 我们还在每个子层后添加了残差连接和层归一化,类似于单模态编码器。

2.3 输出表示

如上图的最右边部分所示。我们的LXMERT跨模态模型有三个输出,分别用于语言、视觉和交叉模态。语言和视觉输出特征序列由交叉模态编码器产生的;对于跨模态输出,我们附加了一个特殊的标记[CLS](在上图的底部分支中表示为顶部黄色块)在句子词之前,并且该特殊标记在语言特征序列中的对应特征向量为用作交叉模式输出。

3. 预训练任务

下图是在LXMERT进行预训练。
在这里插入图片描述

3.1 Language Task: Masked Cross-Modality LM

如图2的底部分支所示。任务设置与BERT几乎相同:单词被随机掩蔽,概率为0.15,模型被要求预测这些蒙面词。除了在BERT中,从语言情态中的非蒙面词预测蒙面词,LXMERT具有跨模态模型体系结构,可以从视觉模态中预测掩蔽词,从而解决模糊性问题。

例如,如图2所示。很难从其语言上下文中确定蒙面词“胡萝卜”,但如果考虑视觉信息,则单词选择是明确的。因此,它有助于建立从视觉模态到语言模态的联系,我们将这项任务称为蒙面跨模态LM。

3.2 Vision Task: Masked Object Prediction

如图2的顶部分支所示。我们通过随机掩蔽物体(即用零遮掩ROI特征)概率为0.15来预先训练视觉的一面,并要求模型预测这些蒙面对象的结构。与语言任务(即蒙面跨模态LM)相似,模型可以从可见对象或语言情态推断蒙面对象。从视觉方面推断对象有助于学习对象关系,从语言方面推断有助于学习跨模态对齐。因此,我们执行两个子任务:RoI-Feature Regression用L2损失回归对象ROI特征fj,Detected-Label Classification学习具有交叉熵损失的蒙面对象的标签。
在“Detected-Label Classification”的子任务中,虽然我们的大多数预训练图像都有对象级注释,但在不同的数据集中,注释对象的地面真相标签是不一致的(例如,标签类别的数目不同)。因为这些原因,我们采用Faster RCNN把检测到的标签输出。

3.3 跨模态任务

如图2中最右边部分所示。为了学习一个强大的交叉模态表示,我们预先训练LXMERT模型与两个任务,明确需要语言和视觉模式。

Cross-Modality Matching 对于每个句子,概率为0.5,我们用一个不匹配的句子替换它。然后,我们训练一个分类器来预测图像和句子是否相互匹配。这个任务是相似的 在BERT中进行“下一句预测”

Image Question Answering (QA) 为了扩大训练前的数据集训练前数据中大约1/3的句子是关于图像的问题。当图像和问题匹配时,我们要求模型预测这些图像相关问题的答案。我们表明,用这种图像QA进行预训练可以得到更好的跨模态表示。

4. 实验结果

在这里插入图片描述
在这里插入图片描述

发布了14 篇原创文章 · 获赞 9 · 访问量 1019

猜你喜欢

转载自blog.csdn.net/weixin_42305378/article/details/104336844