CVPR 2021 UniT: Multimodal Multitask Learning with a Unifified Transformer

动机
  1. transformer在包括但不限于自然语言、图像、视频和音频在内的广泛领域都显示出巨大的成功。

    前人的研究表明,在大型语料库中训练的transformer在一系列的下游语言任务中学习了强大的表征。在视觉领域中,基于transformer的模型在图像分类、目标检测和全景分割方面取得了非常不错的结果。除了对单个模态建模外,transformer模型在视觉问答等联合视觉和语言推理任务中也表现出很强的性能。

  2. 将transformer应用于跨领域的不同任务。

    尽管将transformer应用于特定领域方面取得了上述成就,但在将transformer应用于跨领域的不同任务方面还没有太多的先验工作。在目睹了transformer的成功之后,各种问题自然产生了:一个transformer模型能否被训练既可以在文本输入做自然语言推理又可以在图像上做目标检测?或一个基于transformer的图像分类器是否也可以挖掘文本隐含信息?总体而言,作为迈向通用智能的一步,是否有可能建立一个同时处理多种领域任务的单一模型?

  3. 以前的工作试图解决其中一些问题,但范围有限:

    • 仅适用于来自单个领域或特定多模态领域的任务;ViT和DETR专注于视觉任务,BERT及其衍生工作只处理语言任务,而VisualBERT、VILBERT等多模态transformer工作只研究视觉和语言的特定多模态领域。

    • 涉及每个任务的特定于任务的微调,而不是在任务之间利用任何共享参数,通常以N个任务的N倍的参数结束,例如,必须用BERT分别微调每个任务的模型。

    • 只从一个领域对相关或相似的任务执行多任务,有时使用硬编码的训练策略;例如,T5只适用于语言领域的任务,而VILBERT-MT只适用于相关的视觉和语言任务。

方法

CVPR 2021 UniT: Multimodal Multitask Learning with a Unifified Transformer_第1张图片

提出UniT:统一的Transfomer模型,以同时学习跨领域最重要的任务,从目标检测到语言理解和多模态推理。该模型以图像和/或文本为输入,在视觉感知、自然语言理解和视觉与语言联合识别等多个任务上进行联合训练。UniT由transformer编码器和transformer解码器组成,transformer编码器使用图像编码器对视觉输入进行编码,使用文本编码器对语言输入进行编码,将每个输入模态编码为一系列隐藏状态(特征向量),并使用共享的transformer解码器(联合解码器)在编码后的输入模态上对每个任务的查询进行嵌入,然后在解码器的隐藏状态使用特定任务预测头,对每个任务进行初始预测,以生成每个任务的最终输出。整个模型经过端到端的联合训练。每个任务都有损失。与以前基于transformer的多任务学习的工作相比,对所有任务共享相同的模型参数,而不是分别微调特定于任务的模型;训练单元在更多的任务上取得与已有工作相当的性能;不仅有视觉和语言的联合任务,如视觉回答,还有视觉和语言的单独任务,可以处理不同领域中更多类型的任务。

UniT框架。考虑了两种输入方式:图像和文本。对于提出的基于transformer的图像输入编码器,首先应用了卷积神经网络主干提取可视化特征图,再由transformer编码器将其编码为一个隐藏状态列表,以整合全局上下文信息。对于语言输入,使用BERT,特别是12层uncased版本,将输入词(例如问题)编码为BERT最后一层的一系列隐藏状态。在将输入模态编码为隐藏状态序列后,将transformer解码器应用于单个编码模态或两个编码模态的级联序列,以确定任务是单模态(即仅视觉或仅语言)还是多模态,即探索在所有任务之间使用单独的解码器(即特定于任务的解码器)或共享的解码器。最后,来自transformer解码器的表示特征被传递给一个特定任务预测头,比如一个简单的两层分类器,以输出最终的预测。鉴于UniT的简单性,它可以很容易地扩展到更多的模态和输入。

图像编码器。在模型中,用一个由transformer编码器控制的卷积神经网络将输入图像I编码成一个编码的视觉隐藏状态列表。图像编码过程受到DETR的启发。首先,在输入图像上应用卷积神经网络骨干网络B来提取尺寸为Hv×Wv×dbv的视觉特征映射。主干网络B遵循ResNet-50的结构,并将dilation应用于其最后一个C5块,并且在DETR中对目标检测进行预训练。在特征映射上应用具有Nv层和隐藏大小dev的视觉transformer编码器E,将其进一步编码为L倍大小的视觉隐藏状态hv。此外,考虑到不同的任务(如目标检测和VQA)可能需要提取不同类型的信息,还在transformer编码器中添加了任务嵌入向量wtask,以允许它在输出中提取特定于任务的信息。任务标记wtask是维度dev的可学习的参数,该参数和初始的扁平视觉特征列表做级联,并将其从输出隐藏状态中剥离出来。视觉transformer编码器E的结构遵循DETR,其中将位置编码添加到特征映射中。

文本编码器。在具有掩码语言建模和下一句预测任务的大型语料库上使用BERT(一个预训练的transformer编码器模型)对文本输入进行编码。给定输入文本(例如一个句子或一对句子),以与BERT中相同的方式将其标记为S个标记的序列w1,…,wS,其中w1=[CLS](BERT中用于分类的特殊池标记)。然后将标记序列用作预训练的BERT模型的输入,以提取大小为S×det的文本隐藏状态序列ht,其中det是BERT隐藏大小。和图像编码器类似,在文本编码器中,还添加了一个可学习的任务嵌入向量wtask,作为BERT输入的一部分。方法是在嵌入的标记序列的开头加上前缀,随后将其从输出的文本隐藏状态中剥离出来。在实际应用中,只保留ht中对应于[CLS]的隐藏向量作为解码器的输入(这节省了计算),效果几乎是一样的。在实验中,使用来自HuggingFace的Transformers库的预训练过的基于BERT的uncased模型,其中det=768,Nt=12层。

领域无关的UniT解码器。在对输入模态进行编码后,在其上应用具有隐藏大小ddt和层数Nd的transformer解码器D,以输出解码的隐藏状态序列,用于对每个任务的预测。与图像和文本编码器不同的是,每个模态都有特定的架构设计,解码器是建立在所有任务的相同的领域无关的transformer解码器架构上的。对于仅用于视觉的任务,将解码器应用于编码图像henc=hv。对于纯语言任务,将解码器应用于编码文本henc=ht。最后对于联合视觉和语言任务,将来自于两种模态的编码输入级联到单个序列,作为解码器的输入。transformer解码器D获得编码的输入序列henc和长度为q的任务特定的查询嵌入序列qtask。它为每个第l个transformer解码器层输出一个解码隐藏状态h(dec, l)的序列,该序列具有与查询嵌入qtask相同的长度q。解码器架构主要遵循DETR中的transformer解码器实现。在第l个解码器中,在不同位置的解码器隐藏状态h(dec, l)之间应用自注意力,对编码输入模态henc应用交叉注意力。实验中,使用用于所有任务的单个共享解码器Dshared,或者用于特定任务t的独立的解码器Dsept。

特定任务的输出头。对于每个任务t,在解码器隐藏状态h(dec, l)上应用特定任务的预测头。对于目标检测,使用一个类头来生成分类输出(包括“背景”),并使用一个框头来为解码器隐藏状态中的每个位置{1,…,q}生成一个边界框输出。类头和框头遵循DETR。对于在各个框上的带有属性标签的数据集(实验中使用the Visual Genome dataset),我们也遵循BUTD添加属性分类头。解码器隐藏状态中的每个位置都产生一个目标类或背景。来自于类和框头的输出是被后处理成目标边界框。训练期间,在解码器隐藏状态h(dec, l)中应用这些头到所有层l。测试中,只从解码器顶层hdec和Nd中提取预测值。由于不同的检测数据集往往具有不同数量的类,因此在多个检测数据集上做训练的时候,每个数据集都被赋予它自己的类、框和属性头。在输出cl和bl上应用了与DETR相同的检测损失,在al上应用了与BUTD相同的属性损失。在本工作中处理的所有其他任务,包括视觉问答、视觉蕴涵和自然语言理解(QNLI、QQP、MNLI和SST-2)都可以被转换为任务t的ct类之间的分类任务。对来自最上层解码器层的第一个输出位置隐藏状态h(dec,Nd)应用一个特定任务的分类器,以输出大小为ct的对于任务T的分类预测p。为了预测输出类,使用一个双层MLP分类器,它具有GeLU激活函数(后跟dropout)以及和解码器隐藏大小相同的隐藏维度。在预测p和真实目标t上应用交叉熵分类损失来训练模型。

训练过程。在多种任务联合训练UniT。在训练的每一个阶段,随机选择一个任务和一个数据集来填充一批样本。根据数据集的大小和经验为每个任务手动指定一个抽样概率。具体实现中,使用PyTorch,在64个Nvidia Volta V100-SXM2-32GB GPU(每个GPU的批处理大小为1)上分布式的进行训练。使用学习率为5E-5的加权Adam优化器和预热余弦学习率调度(使用2000次预热迭代)。优化器根据任务损失的梯度更新模型参数。在目标检测的训练过程中,对图像输入采用了DETR的缩放和裁剪增强策略。在一批检测训练中,输入图像被随机调整大小,使得其最短边在480-800像素之间,然后在调整大小的图像中做随机宽度和高度在384-600像素之间的裁剪。然而,在视觉和语言任务(例如VQA),不应用缩放和裁剪增强策略。因为这些任务通常需要整张图像做全局推理(例如,要确定“图像中有多少人”,需要考虑整张图像中的每个人)。在目标检测的测试以及在视觉和语言任务的训练和测试中,输入图像的大小被调整为800像素的最短边。

实验

为了深入分析UniT,并与已有的工作进行比较,对不同领域的多个任务进行了联合学习实验,包括目标检测作为纯视觉任务,GLUE benchmark语言理解任务作为纯语言任务,以及联合视觉和语言推理任务。对于目标检测,使用了COCO数据集作为基准,同时也使用了包含目标类及其属性的视觉基因组(VG)数据集进行了实验。在语言理解方面,从GLUE基准中实验了四个任务,包括QNLI,QQP,MNLI-mismatched和SST-2。对于联合视觉和语言推理,使用VQAv2数据集(使用来自视觉基因组的问题作为额外的训练数据),同时也使用SNLI-VE数据集进行实验,这需要将一个图像和句子对,分类为句子相对于图像是蕴含关系、矛盾关系或者中立关系。这些数据集仅用于纯粹的研究目的。

采用两种设置进行实验。首先,在目标检测和VQA任务中联合训练所提出的模型。然后,进一步将语言理解任务和SNLI-VE作为一个附加的视觉和语言推理任务纳入。在实验中,可以在8个数据集上共同学习7个任务,而在同一个监督下,只需一组紧凑的模型参数,就可以实现与每个领域公认的先前工作相当的性能。

贡献
  1. 提出了UniT,一个统一的transformer编码器-解码器体系结构,以较少的参数在一个单一模型中处理多个任务和领域,并向通用智能迈进了一步。
  2. 可以同时学习多种任务,并在提出的训练方案下适当地融合。共同学习视觉和文本领域中最突出的任务及其交叉点,即GLUE benckmark中的目标检测、视觉问答(VQA)、视觉蕴涵和自然语言理解任务,包括QNLI、MNLI、QQP和SST-2。
小结

论文设计了一个端对端的和领域无关的transformer的问答模型(UniT)。UniT模型可以同时处理8个数据集中的7个任务,在一个单一的训练流程中学习它们,并通过一组紧凑的共享参数在每个任务上实现强大的性能。能够处理不同领域的广泛应用,包括视觉感知、自然语言理解和多模态推理,并向构建通用智能的方向又进了一步。

你可能感兴趣的:(CVPR,2021)