刘杰鹏(开源股份)作者芸仔 青青子衿校对 学术渣 优学术责编学术菠菜排版

BERT新转变:面向视觉基础进行预训练| NeurIPS 2019论文解读

ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks

论文作者:

Jiasen Lu, Dhruv Batra, Devi Parikh, Stefan Lee(佐治亚理工学院、俄勒冈州立大学、Facebook AI Research)

论文地址:

https://www.aminer.cn/pub/5db9297647c8f766461f745b/

论文代码:

https://github.com/jiasenlu/vilbert_beta

摘要

本文提出ViLBERT(Vision-and-Language BERT),该模型学习图像内容和自然语言的无任务偏好的联合表征。ViLBERT在BERT的基础上扩展为多模态双流模型,在各自的流中处理图像和文本输入,这两个流通过共注意力transformer层进行交互。该模型在Conceptual Captions数据集上进行预训练,再将其迁移应用到多个视觉-语言任务:视觉问答,视觉常识推理,指示表达(referring expressions)和基于字幕的图像检索。ViLBERT应用到下游任务时仅需对基础架构进行少量添加。实验结果表明本文的ViLBERT在4个下游任务中显著优于面向特定任务的最先进模型。

ViLBERT代表了一种转向:从将学习视觉和语言之间的基础知识仅作为任务训练的一部分,转向将视觉基础知识作为一种可预训练和可迁移的能力。

介绍

视觉理解任务包括通过在图像、视频甚至整个3D环境中生成或响应自然语言已经取得了稳步的进展。这些方法和对应的任务可以归为"vision-and-language"。尽管人们普遍需要将自然语言和视觉刺激结合起来,即进行视觉基础训练,但用于vision-and-language任务的方法缺乏一个统一的基础以提升这种能力。相反,最主要的策略是先基于其他大规模任务分别预训练语言和视觉模型,然后将其作为具体任务训练的一部分学习基础知识。这种方案学习到的基础知识并不牢靠,当视觉-语言数据有限或有偏时,模型泛化能力很差。

先预训练再迁移的学习方案在计算机视觉自然语言处理中广为应用。这种易用且表示能力强大的方案已经成为标配。对于vision-and-language任务来说使用这种方案当然也是必不可少的,与此同时考虑视觉和语言之间的关系也同等重要。比如即使狗品种分类的视觉表征是完美的,但是当下游vision-and-language模型无法将该视觉表征与形如"小猎犬"或"牧羊人"这样的近似短语进行关联时,这种完美的视觉表征也是近乎无用。因此,本文提出一种通用的视觉基础模型,这种模型可以学习上述的这些联系,并将它们运用到多个vision-and-language任务中。换句话说,ViLBERT是面向视觉基础的预训练。

为学习视觉和语言的联合表征,本文参照了最近在监督学习方面取得的成果。在NLP领域的佼佼者如ELMo、BERT、GPT等,这些模型都取得了令人瞩目的成果。本文通过类似的方法来学习视觉基础知识,我们需要先确定一个视觉和语言能够相互对应的数据集。本文选用的是Conceptual Captions数据集,该数据集大概包括330万张图像,每张图像带有弱关联的描述标题。这些图像均来源于网络上带有alt-text的图像。补充一点,所谓alt-text是在html语法中图片的替代文字,当图片失效或是无法显示时,浏览器显示会被文字替代。

本文提出的ViLBERT是一个能够从视觉-语言数据集中学习到任务无关的视觉基础知识的联合模型。ViLBERT扩展了BERT模型以共同推理文本和图像。本文的关键创新点在于提出一种双流机制,即分别面向视觉和语言的流。该双流能够在共注意力transformer层进行交互。该结构能够适应每种模态的不同处理需求,并在不同表示深度上提供模态之间的交互。实验结果表明,该结构优于单流统一模型。

在Conceptual Captions进行预训练时涉及的目标函数

(1)给定输入,预测被遮蔽的字和图像区域的语义;

(2)预测图像和文本是否语义匹配。

在预训练之后引入4个vision-and-language 任务:

(1)视觉问答

(2)视觉常识推理

(3)指示表达;

(4)基于字幕的图像检索

ViLBERT在上述4个任务上都取得了SOTA结果。这里选用的基准是面向具体任务最先进模型(分别独立预训练视觉和语言模型),实验结果表明ViLBERT在各个任务上都提升了2~10个百分点的精度。此外,ViLBERT针对这些任务的修改很简单,所以该模型可以作为跨多个视觉和语言任务的视觉基础。

方法

与BERT相关的基础理论就不赘述了。这里主要介绍ViLBERT对于BERT的改进。ViLBERT与BERT的对比见于Figure 1。ViLBERT修改BERT中query条件下的key-value注意力机制,将其发展成一个多模态共注意transformer模块。

Figure 1:本文基于transformer框架引入的一种新型共注意力机制。在多头注意力中交换的key-value对,该结构使得vision-attended语言特征能够并入视觉表征(反之亦然)。

(一)ViLBERT:联合图像和文本表征的BERT拓展

受BERT的启发,可以发展出类似的模型并训练出能够从文本-图像对中学习到图像和文本的联合表征。具体到本文,我们考虑的是静态图像及其对应描述文本的联合表征。

一种对BERT改动最小的简单方法是:通过聚类简单地将视觉输入的空间离散化,将这些看得到的"token"与文本输入完全一样对待,然后预训练一个BERT模型。这种框架有如下缺点:

(1)初始化的聚类可能造成错误离散化和丢失视觉细节;

(2)以相同的方式对待两种模式的输入,忽略了它们可能需要不同级别的处理。这其实是由于固有的复杂性或其输入表征的初始抽象级别所需要的。比如,图像区域之间的关系可能比句子中的单词弱,而视觉特征本身往往已经是一个非常深的网络的输出;

(3)强制将预训练的权重去适应大量额外的视觉"token"可能会破坏已经学习的BERT语言模型

本文提出一个双流架构,分别对每种模态进行建模,然后通过一组基于注意力的交互将它们融合在一起。这种方法允许对每种模态使用可变的网络深度,并支持不同深度的跨模态连接。

ViLBERT的模型如Figure 2所示。该模型由分别作用于图像区域和文本段的2个平行BERT-style的模型组成。每个流都是由一系列的transformer blocks(TRM)和共注意力transformer层(Co-TRM)组成。其中Co-TRM是用以模态之间信息的交换。需要注意的是,流之间的信息交换是被限制于特定层的,所以,文本流在与视觉特征进行交流之前有更多的处理。这也符合我们的直觉,所选择的视觉特征已经相对高级,与句子中的单词相比,视觉特征需要有限的上下文聚合。

Figure 2:ViLBERT由两个平行的流组成,分别是视觉流(绿色)和语言流(紫色),这两个流在共注意力transformer层进行交互。这种结构允许每个模态有不同的深度,并通过共注意力机制实现稀疏交互。虚线框下的乘数下标表示重复的层。

• 共注意力Transformer层:

本文引入的共注意力transformer层如Figure 1b所示。给定中间态的视觉表征和语言表征,该模块计算query、key和value矩阵(与标准的transformer block一样)。但是,每个模态中的keys和values输入到其他模态的多头注意力block。因此,注意力block为每一种依赖于另一种模态产生注意池化(attention-pooled )特征。这会在视觉流中表现为图像条件下的语言注意力,在语言流中表现为语言条件下的图像注意力。后者模仿了vision-and-language模型中常见的注意力机制。Transformer block的其余部分与BERT一样,包括与初始化表征的残差相加:产生一个多模态特性。一般来说,对vision-and-language的共同注意力并不是一个新概念(之前已有学者提出),现有工作表明类似的共注意Transformer结构在视觉问答任务是有效的。

• 图像表征:

本文基于一个预训练的目标检测网络生成图像区域特征及其视觉特征。与文本中的词不同,图像区域是天然无序的。为此本文使用了一个5维的向量对区域位置编码,从而实现图像空间位置的编码。这5个维度分别是归一化后的bounding boxes的左上角和右下角的坐标以及图像区域的覆盖占比。然后通过映射将其维数与视觉特征的维数相匹配,并对它们进行求和。此外,将特定的IMG token作为图像区域序列的起始,并用IMG token最后的输出表征整个图像。换句话说,带有空间位置编码信息的视觉特征的均值池化表征整个图像。

• 训练任务和目标:

训练ViLBERT时采用了2个预训练的任务:

(1)遮蔽多模态建模

(2)预测多模态对齐

遮蔽多模态建模任务如Figure 3a所示:

Figure 3:在Conceptual Captions数据集上训练ViLBERT,训练过程使用两个任务目标以学习视觉基础。在学习遮蔽多模态中,模型需要根据带遮蔽的输入重建出被遮蔽掉的图像区域分类结果或词。在预测多模态任务中,模型需要预测标题描述是否与图像匹配。

• 遮蔽多模态建模:

与标准BERT一样,ViLBERT中词和图像区域输入的遮蔽占比大概是15%,在给定剩余输入的情况下,对输入进行重建。遮蔽图像区域的时候,90%时候是直接遮蔽,另外10%的时候保持不变。文本的遮蔽方式与BERT一样。需要注意的是,本文并不直接预测被遮蔽掉的特征值,而是预测对应图像区域在语义类别上的分布。为能够对此进行监督学习,本文采用用于特征抽取的预训练的目标探测模型的输出分布。训练的目标是最小化这两个分布的KL散度。这种选择反映了这样一种概念,即语言通常只识别视觉内容的高级语义,不太可能重建精确的图像特征。此外,应用回归损失可能会使其难以平衡遮蔽图像和文本输入引起的损失。

• 预测多模态对齐:

多模态对齐任务如Figure 3b所示,其目标是预测图像-文本对是否匹配对齐,即本文是否描述了图像。以图像特征序列的起始IMG token和文本序列的起始CLS token的输出作为视觉和语言输入的整体表征。借用vision-and-language模型中另一种常见结构,将IMG token的输出和CLS token的输出进行element-wise product作为最终的总体表征。再利用一个线性层预测图像和文本是否匹配。

实验设置

(一)训练ViLBERT

• 数据集:

本文使用Conceptual Captions数据集,该数据集原本是有330万图像-标题对,但是由于部分链接失效,本文只使用能够下载到的310万的数据对。

• 实施细节:

本文用BERT_base模型对ViLBERT中的语言流进行初始化。该BERT模型基于BookCorpus和English Wikipedia进行预训练。之所以选用BERT的base版主要是出于训练时间的考虑。至于更强大的BERT的large版可能会进一步提高性能,这将在未来进行试验。

使用基于Visual Genome数据集预训练的Faster R-CNN模型抽取图像区域特征。选用类别探测概率高于自信度阈值的区域,并保持10~36个的高分值的bounding boxe。视觉流中的Transformer和共注意力transformer blocks的隐含层大小为1024,注意力头为8个。

(二)Vision-and-Language迁移任务

对预训练ViLBERT用4个Vision-and-Language任务和一个诊断任务评测。这些任务具体分别是:

(1)视觉问答(VQA),使用VQA 2.0数据集;

(2)视觉常识推理(VCR),使用Visual Commonsense Reasoning (VCR)数据集;

(3)指示表达(referring expressions),所谓的指示表达是对给定的自然语言指代找到对应的图像区域。本文使用的是RefCOCO+数据集;

(4)基于字幕的图像检索,使用Flickr30k数据集;

(5)零样本的基于字幕的图像检索。上述任务都是由特定下游数据集微调,在零样本任务中,直接将预训练的ViLBERT应用于Flickr30k数据集中的多模态对齐预测。

下游任务的微调策略其实很简单,只需增加一层分类器。这与社区内为每个这些任务开发专门模型所做的重大努力形成鲜明的对比。

实验结果与分析

(一)ViLBERT的基准模型

(1)Single-Stream。使用一个BERT架构处理多模态输入,这意味着视觉输入和文本输入要共享参数。与ViLBERT相比,该模型无需改动BERT体系结构,从而显著地提高了视觉处理的深度并提早了模式之间的交互。与该基准比较,以确定本文双流体系结构的影响。该基准由于两个流始终交互,所以无法缓存任何表征以提高效率。由于高计算成本,本文不在图像检索和零样本图像检索任务中评估该基准模型。

(2)没有使用预训练的ViLBERT。需要注意的是,该基准仍然对语言流进行BERT的初始化,并使用与完整ViLBERT模型相同的Faster R-CNN模型进行图像区域的表征。与此基准进行比较,以隔离偏好特定任务的基线模型的增益,这些基准模型可能是由于架构、语言初始化或视觉特性,而不是在Conceptual Captions数据集上预训练所带来的增益。

(二)上述下游任务的基准模型

(1)VQA:DFAF

(2)VCR:R2C

(3) RefCOCO+:MAttNet

(4)基于字幕的图像检索:SCAN

具体实验结果如 Table 1 所示。

基于Table 1 有以下重要发现:

(1)ViLBERT显著优于singl-stream模型;

(2)预训练能够提升视觉语言表征;

(3)在vision-and-language任务上使用ViLBERT+微调的方案十分强大。

总之,这些结果表明ViLBERT能够学习视觉-语言之间的重要关系,而这种关系能够在下游任务中被利用。

(三)视觉流深度的影响

在Table 2中对比了ViLBERT不同深度的迁移结果。

这里的深度是指CO-TRM-TRM blocks(Figure 2中的虚线部分)的重复数量。可以发现,对于VQA和图像检索任务更大的深度,性能单调增加,直到层深度为6。同样,随着深度的增加,零样本图像检索也会继续取得显著的提升。相比之下,VCR和RefCOCO+似乎更适合使用较浅的模型。

(四)大规模训练数据的优点

从Conceptual Caption数据集中随机取25%和50%的子集,并使用与上面相同的设置进行预训练和finetune ViLBERT。可以看出准确性随着数据量的增加而单调增长,这意味着ViLBERT可能会受益于更多的预训练数据集。

(五)ViLBERT在预训练过程中学到了什么

为了解ViLBERT在基于Conceptual Caption数据集的预训练中学到了什么。用零样本基于标题的图像检索任务来评估。零样本任务的性能(Table 1右)显著低于有微调的模型(31.86 vs 52.20 R1)。对于没有看到Flickr30k图像或标题该模型也能够正常执行(31.86 vs 48.60 R1)。这表明ViLBERT在预训练中学会了视觉和语言之间的语义对齐。

总结

本文面向图像和文本提出一个联合模型,并在自动收集的大规模数据集上进行预训练从而学习到视觉基础知识。本文提出的ViLBERT中引入了一种新的双流框架,该双流框架中使用了共注意力transformer blocks。ViLBERT迁移到多个vision-and-language任务时超过了最先进水平。此外,将ViLBERT迁移到这些任务是简单和容易实现:只需要为每个任务添加一个分类器。

• 未来工作:

未来要考虑将模型扩展到其他vision-and-language任务(包括那些生成式的任务)以及多任务学习

AMiner学术头条
AMiner学术头条

AMiner平台由清华大学计算机系研发,拥有我国完全自主知识产权。系统2006年上线,吸引了全球220个国家/地区800多万独立IP访问,数据下载量230万次,年度访问量1000万,成为学术搜索和社会网络挖掘研究的重要数据和实验平台。

https://www.aminer.cn/
专栏二维码
理论BERT
1
相关数据
池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

图像检索技术

图像检索系统是用于从大型数字图像数据库浏览、搜索和检索图像的计算机系统。 大多数传统和常见的图像检索方法利用向图像添加诸如字幕、关键字或描述之类的元数据的一些方法,以便可以对注释词执行检索。 手动图像注释耗时,费力且昂贵; 为了解决这个问题,人们已经对自动图像标注进行了大量研究。

视觉问答技术

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

特征抽取技术

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

多任务学习技术

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

ELMo技术

ELMO 是“Embedding from Language Models”的简称, ELMO 本身是个根据当前上下文对 Word Embedding 动态调整的思路。ELMO 采用了典型的两阶段过程,第一个阶段是利用语言模型进行预训练;第二个阶段是在做下游任务时,从预训练网络中提取对应单词的网络各层的 Word Embedding 作为新特征补充到下游任务中。

目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

自监督学习技术

一个例子中的内容特别多,而用一个例子做一个任务,就等于把其他的内容浪费了,因此我们需要从一个样本中找出多个任务。比如说遮挡图片的一个特定部分,用没遮挡部分来猜遮挡的部分是一个任务。那么通过遮挡不同的部分,就可以用一个样本完成不同任务。Yann Lecun描述的这个方法被业界称作「自监督学习」

常识推理技术

常识推理是人工智能(AI)的一个分支,它关注模拟人类每天遇到的普通情境的类型和本质的假设。这些假设包括对人和物体的物理特性,目的,意图和行为的判断,以及他们的行为和相互作用的可能结果。展示常识推理的设备将能够预测结果并得出类似于人类民间心理学(人类对人们的行为和意图进行推理的天生能力)和天真物理学(人类对物理世界的自然理解)的结论。

推荐文章
暂无评论
暂无评论~