今天介绍中国科学技术大学和微软亚洲研究院朱西洲老师团队在ICLR2020的论文,该研究提出了一种新的图形神经网络的几何聚合方式,其核心思想是:在bert的基础上为视觉-语言相关任务做预训练。

VL-BERT: 可预训练的通用视觉-语言表示

作者提出了一种新型可训练通用预训练表示,用于视觉-语言任务,称为视觉-语言BERT(简称VL-BERT)。VL-BERT采用简单且功能强大的Transformer模型作为基础,并对其进行扩展,以视觉和语言的嵌入特征作为输入。其中,作为输入的特征来自输入句子中的单词或者来自输入图像中的感兴趣区域region-of-interest (RoI),因此模型可以适应大多数视觉-语言的后续任务。并且为了更好地实现通用表示,作者在大规模的概念标注数据集和纯文本语料库上对VL-BERT进行预训练。大量的实证分析表明,预训练的模型可以更好地对齐视觉-语言线索,有利于后续的任务,比如视觉常识推理,视觉问答和引用表达式理解。代码在https://github.com/jackroos/VL-BERT发布。

1.研究背景

对适用于领域内各种任务的通用特征表示进行预训练是成功的神经网络的一个标志。首先,在计算机视觉中,为ImageNet任务设计和预训练的分类任务设计的主干神经网络被发现可以有效地改进许多其他图像识别任务。而在自然语言处理中,Transformer模型经过“masked language model” (MLM)目标任务,在大型语言语料库上进行预训练后模型可应用于各种NLP任务并取得很好的效果。

于此同时对于视觉和语言交叉的任务,如图像字幕,视觉问答,视觉常识推理等,还缺少这种预训练通用特征表示。现有的研究是将已经预训练好的用于图像识别和自然语言处理的神经网络分别结合到特定任务中,而没有通用的视觉-语言预训练。当目标任务的数据不足时,模型很可能会出现过拟合。并且由于模型只针对特定任务,所以很难从预训练中获益。因为预训练的任务和目标任务可能不相关。在研究视觉语言任务的特征设计和预训练方面缺乏共识。

在为不同的视觉-语言任务设计网络结构时,一个关键的目标是能够在视觉和语言领域中有效地聚合多模态信息。例如,为了在VQA任务中选择正确的答案,网络应允许整合问题和答案中的语言信息,并整合输入图像中的视觉信息,并使语言含义与视觉线索保持一致。因此,我们寻求可以有效整合和对齐视觉和语言信息的通用表示。同时,我们看到Transformer中的注意力机制在NLP中的成功应用以及在BERT中基于MLM的预训练技术的成功应用。注意力机制模块在聚合和对齐句子中嵌入单词的功能方面功能强大且灵活,而BERT中的预训练进一步增强了这种能力。

受到BERT的启发,作者提出了VL-BERT,一种用于视觉-语言任务的可预训练通用表示,如图一所示。VL-BERT的主干是(多模式)Transformer注意力模块,以视觉和语言嵌入式特征作为输入。其中,每个输入元素要么是输入句子中的单词,要么是输入图像中的关注区域(RoI),再加上某些特殊元素以消除不同的输入格式的歧义。每个元素都可以根据在其内容,位置,类别等上定义的兼容性来自适应地聚合来自所有其他元素的信息。单词/ RoI的内容特征是特定于域的。模型通过多层多模态Transformer 注意力模块的叠加,使模型具有丰富的视觉-语言线索的聚合和对齐能力。针对特定的视觉语言任务,可以在模型上面添加特定于任务的分支。

为了更好地进行泛化表示,模型在大型的视觉-语言语料库和纯文本数据集中对VL-BERT进行预训练。视觉语言语料库上的预训练损失是通过预测随机掩盖的单词或RoI得到。这种预训练提高了VL-BERT聚合和排列视觉-语言线索的能力。虽然纯文本语料库的损失是BERT中标准MLM损失,但可以改善长而复杂的句子的泛化。

大量的实例表明, VL-BERT在视觉常识推理、视觉问答和引用表达式理解等各种下游视觉语言任务上都达到了最先进的水平。特别地,VL-BERT在视觉常识推理的排行榜上获得了单模型第一名。

图1

2.VL-BERT模型

2.1 模型架构

图1说明了VL-BERT的体系结构。模型在BERT的基础上在输入中嵌入一种新的视觉特征来适应视觉的相关内容。与BERT类似,模型主要由多层双向Transformer编码器组成。但与BERT只处理句子单词不同,VL-BERT把视觉元素和语言元素都作为输入,模型分别在图像的感兴趣区域(RoIs)和输入句子中的单词上定义相应特征。

Token Embedding

根据BERT的经验,语言词汇中嵌入了30000个单词。对每个特殊的元素分配特殊的Token。对于视觉元素,为每个元素分配一个特殊的[IMG]标记。

Visual Feature Embedding

模型分别得到输入图像的视觉外观特征和视觉几何特征,然后将二者结合形成视觉特征。对于RoI所对应的视觉元素,采用Fast R-CNN进行特征表示。其中每个RoI输出层之前的特征向量作为视觉特征嵌入。对于非视觉元素,对应的视觉外观特征是对整个输入图像提取的特征。视觉几何特征的设计是为了通知VL-BERT图像中每个输入视觉元素的几何位置。视觉特征由视觉外观特征和视觉几何嵌入的串联得到,作为输入附在每个输入元素上。

Segment Embedding

模型定义了三种类型的片段A、B、C,将输入元素从不同的来源中进行区分,即A和B分别表示第一个输入句子中的单词和第二个输入句子中的单词,而C表示输入图像中的RoI。

Sequence Position Embedding

与BERT相同,向每个输入元素添加一个可学习的序列位置特征来表示输入序列中的顺序。由于输入的视觉元素之间没有自然的顺序,在输入序列中对它们进行任何排列都应该得到相同的结果,所以视觉元素的序列位置特征都是相同的。

2.2 模型预训练

VL-BERT能够在大规模的数据集上进行预训练。作者在视觉-语言和纯文本的数据集上对VL-BERT进行了预培训。模型使用概念标题数据集作为视觉-语言学的语料库。语料库包含了大约330万张带有标题注释的图片,这些图片是从web数据中获取的,并通过自动管道进行处理。概念性标题数据集的问题在于,标题主要是简单的子句,对于许多后续任务来说,这些子句太短且太简单。所以为了避免在这种简短的文本场景中过拟合,作者还对VL-BERT在长句、复合句的纯文本语料库的进行预训练。作者使用了BooksCorpus和英语维基百科数据集,这些数据集同样也用于BERT的预训练。视觉-语言语料库的预训练提高了视觉内容与语言内容的一致性。这种有效的对齐对于许多下游任务至关重要,而对纯文本语料库的预训练则有助于理解长句和复合句的后续任务。

2.3模型微调

VL-BERT作为各种视觉语言任务的通用特征表示,对于各种下游任务,对VL-BERT进行微调相对简单。我们只需要向VLBERT提供正确格式的输入和输出,并对所有参数进行端到端调整。对于输入,典型的格式有、,已经涵盖大部分的视觉-语言任务。VL-BERT还支持更多的句子和更多的图像。

3. 实验

3.1预训练

VL-BERT使用Conceptual Captions作为视觉-语言语料库进行预训练,并将BooksCorpus 数据集和英文维基百科作为文本语料库进行预训练。由于VL-BERT是基于BERT模型添加捕捉视觉信息的新输入,所以模型初始化参数使其与BERT相同。VL-BERT BASE和VL-BERT LARGE分别表示从原始BERT BASE和BERT LARGE模型发展而来。

3.2对下游任务进行微调

通过对输入格式、输出预测、损失函数和训练策略进行简单的修改,可以对预先训练好的VL-BERT模型进行微调,以适应各种下游的视觉语言任务。

视觉常识推理(VCR)任务

表1

表1说明了预训练的VL-BERT在最后任务中性能提高了1.0%,说明了预训练的有效性。与其他工作相比,即ViLBERT, VisualBERT和B2T2,VL-BERT具有最好的性能。

视觉问答(VQA)任务

表2

表2说明了预训练的VL-BERT性能提高了1.6%,验证了预训练的重要性。除了LXMERT,VL-BERT比其他作品表现更好。这是因为LXMERT预先接受了大量可视化问题回答数据的训练。

引用表达式理解(REC)任务

表3

表3说明了预训练的VL-BERT显著提高了性能。与MAttNet相比,VL-BERT在没有特定于任务的架构设计的情况下要简单得多。

总体而言,通过设置对w/o预训练和VL-BERT BASE的比较,VL-BERT的训练前提高了三个下游任务的性能,在不同任务的改善幅度也不同。

4.总结

在本文中,作者提出了VL-BERT,一个新的可训练的用于视觉-语言任务的通用表示。与使用特定任务模块不同,VL-BERT采用了简单并且强大的Transformer模型作为基础,模型在大规模数据集上进行预训练。大量的实例表明训预训练的模型可以更好地对齐视觉-语言线索,从而使模型在下游任务表现得更好。

参考资料

Weijie Su, Xizhou Zhu, Yue Cao, Bin Li, Lewei Lu, Furu Wei, and Jifeng Dai. 2019. Vl-bert: Pre-training of generic visual-linguistic representations. arXiv preprint arXiv:1908.08530.

ICLR 2020| VL-BERT:预训练视觉-语言模型相关推荐

  1. 【预训练视觉-语言模型文献阅读】VL-BERT: PRE-TRAINING OF GENERIC VISUAL- LINGUISTIC REPRESENTATIONS(ICLR 2020)

    [预训练视觉-语言模型文献阅读]VL-BERT: PRE-TRAINING OF GENERIC VISUAL- LINGUISTIC REPRESENTATIONS(ICLR 2020) 文章目录 ...

  2. 【预训练视觉-语言模型文献阅读文献阅读】最新BERT模型——UNITER: UNiversal Image-TExt Representation Learning

    [预训练视觉-语言模型文献阅读文献阅读]最新BERT模型--UNITER: UNiversal Image-TExt Representation Learning 文章目录 [预训练视觉-语言模型文 ...

  3. 清华刘知远提出CPT:基于预训练视觉-语言模型的跨模态Prompt-Tuning

    每天给你送来NLP技术干货! 论文:CPT:Colorful Prompt Tuning for Pre-Training Vision-Language Models 状态:Work in Prog ...

  4. Bert预训练新法则!

    论文简介:还应在遮蔽语言模型中使用 15% 的遮蔽概率吗? 论文标题:Should You Mask 15% in Masked Language Modeling? 论文链接:https://arx ...

  5. 天池零基础入门NLP竞赛实战:Task4-基于深度学习的文本分类3-基于Bert预训练和微调进行文本分类

    Task4-基于深度学习的文本分类3-基于Bert预训练和微调进行文本分类 因为天池这个比赛的数据集是脱敏的,无法利用其它已经预训练好的模型,所以需要针对这个数据集自己从头预训练一个模型. 我们利用H ...

  6. Achuan读论文:用于远程监督关系抽取的微调预训练transformer语言模型

    Fine-tuning Pre-Trained Transformer Language Models to Distantly Supervised Relation Extraction 用于远程 ...

  7. 获得Bert预训练好的中文词向量

    安装肖涵博士的bert-as-service: pip install bert-serving-server pip install bert-serving-client 下载训练好的Bert中文 ...

  8. RoBERTa:一种鲁棒地优化BERT预训练的方法

    RoBERTa:一种鲁棒地优化BERT预训练的方法 文章目录 RoBERTa:一种鲁棒地优化BERT预训练的方法 前言 背景 实验 静态 VS 动态 Masking 输入形式与NSP任务 更大的bat ...

  9. bert预训练实战篇-持续更新

    导读 使用bert预训练会遇到很多坑,包括但不限于数据预处理的正确姿势.数据预处理的高效实现.bert单机多卡分布式训练的基本实现,以及如何debug并提升使用单机多卡来进行深度学习训练的性能瓶颈.本 ...

最新文章

  1. python 2.6.6安装MySQL-python模块
  2. ECMAScript Query实例
  3. php imagevue,Imagevue 2.1.4 正式注册版(PHP Flash相册源代码下载)
  4. Qt Creator预览版
  5. poj doubles_余数运算符在Java中用于Doubles
  6. 阿里云centos 安装和配置 DokuWiki
  7. linux Swap交换分区概念
  8. android 判断服务是否正在运行,Android 判断某个服务(service)是否运行
  9. ui kit模板的用途是什么?
  10. DataBindings的用法
  11. PacketiX ××× Server中三层交换机的路由表配置说明:
  12. token 的设计方案,这个厉害!
  13. 重复insmod同一个模块导致段错误
  14. 安装了opencv,怎么一直报错:找不到CAP_PROP_FRAME_COUNT
  15. 数字图像处理-空间域图像增强
  16. IP变更导致redis集群不可用解决办法
  17. 幼儿认知发展虚拟仿真系统
  18. 超融合详细对比:市面各主流超融合产品及厂商优劣势解密
  19. php yii2.0框架下载,yii2.0下载|yii2.0(php框架) v2.0.10官方版 附安装教程 - 121下载站...
  20. 【Unity】DnSpy断点调试Unity已发行游戏的dll

热门文章

  1. 6000字详解数据仓库建设
  2. 某程序员大牛放弃130万年薪,离开北京回老家事业单位!网友:太可惜!何不再忍两年?...
  3. 谈谈中台架构之交易中台
  4. Spring揭秘--寻找遗失的web.xml
  5. 内存分页不就够了?为什么还要分段?
  6. 文科生也能当工程师?我用了一年半
  7. 并行化-你的高并发大杀器
  8. 目标感太弱怎么办?如何做目标管理?
  9. 计算机的一些小操作,电脑小白操作中最实用的9个技巧!
  10. SQL与NoSQL区别-授权方式