本文分享论文『Uni-Perceiver: Pre-training Unified Architecture for Generic Perception for Zero-shot and Few-shot Tasks』,商汤(代季峰组)&西交&港中文提出《Uni-Perceiver》,用通用预训练感知模型处理多模态多任务!
详细信息如下:
- 论文链接:https://arxiv.org/abs/2112.01522
- 项目链接:尚未开源
导言:
动物的生物智能系统通过整合不同方式的信息并同时处理各种任务来感知世界。相比之下,当前的机器学习研究遵循特定于任务的范式,导致任务之间的协作效率低下,并且为新任务开发感知模型的边际成本较高。在本文中,作者提出了一种名为Uni-Perceiver的通用感知结构,该结构使用统一的建模和共享参数来处理各种模态和任务。
具体而言,Uni-Perceiver使用模态不可知的Transformer编码器和轻量级模态特定tokenizer将来自任意模态的不同任务输入和目标编码到统一表示空间。不同的感知任务被建模为同一个公式,即通过其表示的相似性来确定每个输入的最大似然目标。该模型在几个单模态和多模态任务上进行了预训练,并在各种下游任务上进行了评估,包括在预训练阶段没有出现的新任务。
结果表明,即使在新任务上,本文未经任何微调的预训练模型也可以实现合理的性能。通过对1%的下游任务数据进行prompt tuning,可以将性能提高到接近于SOTA方法的水平。完整的数据上的微调可以接近或优于目前SOTA的结果。
01
Motivation
动物的生物智能系统通过以不同的方式接收信息,复杂的中枢神经系统集成并同时处理不同的任务来感知世界。然而,设计一个处理多种模态和众多任务的通用感知模型一直被认为太难了。
为了简化这个问题,以前的机器学习研究集中于为来自某些受限模态的输入开发专门的模型,例如用于视觉识别的卷积神经网络和用于自然语言处理的Transformer。最近,Transformer在视觉领域也展现出了不错的性能。
根据这一范式,最近的工作采用了Transformer作为多模态应用(如视觉语言识别)的主干网络。它们将不同模态的输入用模态特定tokenizer转换为的统一输入标记序列。使用大规模多模态数据集对模型进行预训练,然后通过微调模型以适应下游任务。
尽管具有使用统一结构处理多模态信息的能力,但当前的方法仍然需要针对不同任务的特殊设计和训练。这种限制是由两个原因造成的。首先,特定模型的输入是其目标任务所需的特定模态的组合。其次,以前的工作需要为目标任务专门设计和训练的预测头。
作者认为,这一任务特定范式与设计通用感知模型的目标相冲突。具体而言,在预训练期间,针对不同任务的专门设计阻碍了任务之间的协作,这可能会损害表达能力。同时,当将预训练模型应用于新任务时,需要重新设计输入格式和预测头,并在足够的下游数据上进行调整。这在收集和标注数据方面仍然非常昂贵。此外,每个下游任务都需要复制和维护所有参数,随着任务数量和模型大小的增加,这变得不实用且不方便。
另一方面,当在训练数据不足的情况下进行微调时,可能会忘记对下游任务有益的预训练的知识,从而影响泛化性能。所有这些问题都增加了为新任务开发感知模型的边际成本,并限制了满足不同场景快速增长的需求的能力,这表明任务特定范式不适用于通用感知建模。
本文的核心思想是通过将不同的任务输入和目标从任意模态编码到统一的表示空间来取代任务特定的设计,并通过输入和目标表示的相似性来建模输入和目标的联合概率。这种设计消除了不同感知任务的表述之间的差距,因此鼓励了表示学习中不同模态和任务之间的协作。此外,通过调整预训练和下游任务的建模,将预训练模型应用于目标任务时,可以更好地传递知识。
在本文中,作者提出了一种名为 Uni-Perceiver 的统一架构,它能够用单个模型和共享参数处理不同的模态。具体地说,来自任意模态组合的任务输入和目标首先用轻量级模态特定的tokenizer转换为的统一token序列。然后,序列由与模态无关的Transformer编码器编码到统一的表示空间中。不同的感知任务被建模为相同的公式,通过其表示的相似性来确定每个输入的最大似然目标,从而促进通用感知建模。
Uni-Perceiver对各种单模态任务 (例如图像/视频分类和语言建模) 以及多模态任务 (例如图像文本检索和具有图像线索的语言建模) 进行了预训练。当应用于下游任务时,由于感知任务的通用建模,预训练模型显示了对未在预训练阶段出现的新任务的zero-shot推理能力。
此外,还可以通过额外的任务特定数据进一步提高性能。对于few-shot场景,作者通过prompt tuning使模型适应下游任务,其中只有少量额外参数针对特定任务进行了优化。本文的模型性能可以通过充分的下游训练数据进行全模型优化而进一步提高。
作者在几个单模态和多模态任务上预训练了本文的模型,并评估了它在各种下游任务上的性能,包括在预训练阶段没有出现的新任务。结果表明,本文的预训练模型在不进行任何微调的情况下,即使在新任务上也能获得合理的性能。通过1% 下游任务数据进行prompt tuning,可以将其性能提高到接近SOTA方法的水平。当用100% 目标数据微调预训练模型时,本文的模型在几乎所有任务上都达到了与SOTA的方法相当或更好的结果,这证明了强大的表示能力。
02
方法
2.1. Unified Architecture for Generic Perception
上图展示了本文模型的主要结构,具体地说,该模型首先将不同的任务输入和目标从模态的任意组合转换为具有模态特定tokenizers的token序列。并使用与模态无关的Transformer编码器共享不同输入模态和目标任务的参数,然后将不同的token序列编码到共享的表示空间中。任何感知任务采用统一公式建模,通过其表示的相似性确定每个输入的最大似然目标。
Tokenization
给定来自文本,图像和视频模态的原始输入,模态特定的tokenizers被应用于生成Transformer编码器的输入token序列。在这里,作者将BPE tokenizer用于文本模态,将image patch tokenizer用于图像模态,将temporal frame patch tokenizer用于视频模态。这些输出的token附加了额外的模态类型嵌入,以标识原始输入属于哪个模态。
如上图所示,根据任务要求,Transformer编码器的输入序列x可以由文本token序列、图像token序列和视频token序列的不同组合组成。在序列x的开头,需要插入一个特殊的token。例如,对于图像-文本对输入,,对于仅视频输入,,其中 [] 表示序列连接。编码器输出端的特征用作输入的表示。
Generic Modeling of Perception Tasks
作者使用统一的结构对不同的感知任务进行建模,其参数为所有目标任务共享。每个任务都使用一组输入X和一组候选目标Y进行定义。给定输入x ∈ X,该任务的表述为:找到最大似然目标y∈ Y:
其中是联合概率分布。联合概率是通过计算x和y表示的余弦相似度来估计的:
其中是Transformer编码器,τ> 0是可学习的温度参数。
为了获得通用建模能力,本文的统一架构同时在各种多模态任务上进行了预训练。假设一系列预训练任务表示为,其中和分别是第i个任务的输入集和目标集。则预训练的损失为:
其中,是数学期望,并且表示从第i个任务的数据集采样的ground-truth输入-目标对。
本文的统一架构适用于任何任务,只要其输入集X和目标集Y由图像、文本和视频组成。例如,分类任务中的目标集Y可以是一组类名、一组类描述,甚至是一组带有代表类索引的手写数字的图像。
Relation to Previous Perception Models
本文的方法与以前的感知模型具有相同的学习多模态表示的目标。然而,现有的工作遵循一种特定于任务的范式,而本文的方法是为通用感知建模而设计的。主要区别在于两个部分:
- 以前的工作侧重于目标任务所需的某些模态组合的输入,而本文的方法是用统一架构和共享参数处理任意的模态组合。
- 以前的工作需要为每个感知任务专门设计和训练的预测头,而本文的方法使用相同的公式对不同的任务进行建模,并使用统一的建模对其进行处理。
因此,当迁移到新任务时,以前的方法需要相应地重新设计其输入格式和预测头。模型需要对充分的特定任务数据进行微调,从而产生显著的人力和计算成本。相比之下,本文的方法可以直接对预训练阶段没有出现的新任务进行zero-shot推理。通过对少量下游数据的prompt tuning和对充足下游数据的fine tuning,可以进一步提高性能。
2.2. Pre-training on Multi-Modal Tasks
本文的模型同时在各种任务上进行预训练,以学习多模态泛型表示,各种预训练任务的输入输出表示如上图所示。具体而言,对于单模态预训练任务,作者采用最广泛使用的图像分类、视频分类和语言建模任务。
为了进一步加强不同模态之间的关系,作者在本文中也采用了一些多模态任务,例如具有图像线索的语言建模和图像文本检索任务。对于图像和视频分类任务,作者将每个类名处理为一个文本序列。这为弥合图像、视频和文本表示之间的差距提供了弱监督。
Image and Video Classification
在图像和视频分类任务中,X表示训练数据集中所有可能的图像或视频的集合,Y由每个数据集中的候选类标签组成。每个类名称都被视为文本序列,以提供对文本关系的弱监督。输入x ∈ X和目标y ∈ Y都以token开始,其在编码器输出处的特征表示相应的序列。
Language Modeling with and without Image Clues
语言建模任务旨在根据上下文预测mask词。当输入没有图像时,自回归和自编码任务分别对应于文本生成和mask语言建模任务。当输入有图像时,自回归和自编码任务分别对应于image caption和带有图像线索的mask语言建模任务。
对于自编码语言建模,作者遵循BERT中的做法,从文本中随机mask 15% 的单词。该模型根据所有输入预测每个mask词。对于自回归语言建模,该模型根据其先前的文本和图像 (如果有) 预测每个单词。
在此任务中,X由语言句子或图像-文本对组成。Y表示词汇中所有单词的集合,其中每个单词被视为单个文本序列。每个需要在x ∈ X中预测的单词都被token代替,该token在编码器输出处的特征用于匹配词汇Y中的单词。
Image and Text Retrieval
对于图像文本检索,输入集X和Y分别由图像和文本序列组成,反之亦然。对于纯文本检索,输入集X和Y都是文本序列。X和Y中的每个序列在开始时都有一个特殊的token,其在编码器输出处的特征用作最终表示。
2.3. Zero-shot, Prompt Tuning and Fine-tuning
在预训练阶段,本文的统一结构学习从任意模态对输入和目标序列的联合分布进行建模。由于通用的感知建模,本文的预训练模型可以对预训练阶段未出现的新任务执行zero-shot推断。本文的模型可以通过任务特定的额外训练数据进一步适应下游任务。对于few-shot场景,作者采用了prompt tuning方案,该方案仅向模型中添加了一些额外的任务特定参数。特定任务的性能可以通过在可靠的下游数据上调整整个模型来进一步提高。
Zero-shot Inference on Novel Tasks
本文的模型可以对任何可由联合概率分布建模的感知任务执行Zero-shot推理。对于输入x ∈ X和候选目标y ∈ Y的任务,作者将x和y tokenize为两个序列。然后根据公式估计联合概率P(x,y)。Zero-shot推理可以通过最大似然估计来进行。
Prompt Tuning
对于训练数据有限的few-shot场景,作者采用了Prompt Tuning,Prompt Tuning已经证明在few-shot NLP中优于fine tuning方案。在prompt tuning中,大多数预训练的参数都是固定的,只剩下一小部分任务特定参数需要优化。具体而言,在Transformer编码器的每一层添加具有随机初始化的可学习提示token,并为分类任务添加带有线性头的类标签。
Fine-Tuning
对于具有充分训练数据的下游任务,本文的模型也可以进行优化以进一步提高其性能。在微调过程中,本文的模型可以作为联合概率估计器或特征提取器。在联合概率估计的设置下,下游任务的建模方式与预训练相同。另一方面,与之前的感知模型类似,本文的模型也可以通过在编码器顶部添加特定于任务的头部来用作特征提取器。实验表明,这两种方案的性能非常相似,因此默认情况下使用联合概率分布估计方案以保持一致性。
03
实验
3.1. Datasets
上表展示了本文用到的预训练数据以及每个数据集中的图片、视频和文本数量。
3.2. Evaluation on Pre-training Tasks
上表展示了不同tuning设置下的图像和视频分类性能。PT表示prompt-tuning,FT表示 fine-tuning。
上表展示了不同tuning设置下的图像-文本检索性能。PT表示prompt-tuning,FT表示 fine-tuning。
上表展示了不同tuning设置下的image captioning性能。
3.3. Generalization to Novel Tasks
上表展示了不同tuning设置下的video captioning性能。video captioning任务在预训练时并没有涉及到。
上表展示了不同tuning设置下的视频-文本检索性能。视频-文本检索任务在预训练时并没有涉及到。
上表展示了不同tuning设置下的visual question answering性能。visual question answering任务在预训练时并没有涉及到。
04
总结
这篇文章提出,单模态和多模态的各种任务都可以通过比较embedding的相似度来解决,因此,作者在本文中提出了一个双Encoder的结构,一个Encoder用于处理input信息,一个Encoder用于处理target信息,最后通过余弦相似度得到input和target的相似度,预训练的目标是最大化匹配的input和target的相似度。通过这种方式模型就可以zero-shot,prompt-tuning,fine-tuning到各种任务了。