Oscar: Object-Semantics Aligned Pre-training for Vision-Language Tasks 解析+总结

本文主要是介绍Oscar: Object-Semantics Aligned Pre-training for Vision-Language Tasks 解析+总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

paper: 2004.06165.pdf (arxiv.org)

code:  microsoft/Oscar: Oscar and VinVL (github.com)

多模态学习初入门

最近,视觉和语言预训练(Vision-Language Pretraining, 简称VLP)在解决多模态学习方面已显示出巨大的进步。这类方法最有代表性地通常包括如下两步:

预训练:是以自监督的方式在海量 "图像-文本"数据(Image-Text Pair,或者叫做“图文对”)上训练大型的基于Transformer的模型(例如根据上下文预测被掩盖掉的语言或者图像的元素)

微调:可以对预训练模型的跨模态表示进行微调,以适应各种下游视觉和语言任务

摘要

关键问题:现有的VLP方法只是将图像区域特征和文本特征连接起来作为模型的输入以进行预训练,并不为模型提供任何线索,希望模型能利用Transformer的自我注意机制,使用蛮力来学习图像文本语义对齐方式。

解决方法:一种新的多模态预训练方法Oscar,它使用在图像中检测到的物体标签作为锚点,从而显著简化了路线的学习。在650万个文本-图像对的公共语料库上预先训练了Oscar模型,并在下游任务上对其进行了微调,从而在六种完善的视觉语言理解和生成任务上创建了最新的技术。

关键字: 对象语义,视觉和语言,预训练

1 Introduction

VLP:可从大量图像-文本对中学习有效学习通用表示形式,并对VLP模型针对特定任务进行微调实现SOTA。

通过使用诸如Faster R-CNN之类的预训练物体检测器 (object detector),可以将图像表示为一组视觉区域特征,每个视觉区域特征都与一个物体标签关联。因此,可以使用诸如BERT的预训练语言模型将句子表示为一系列单词嵌入。重要的是,在Oscar中,我们使用来自预先训练的BERT的对应词嵌入来构造物体标签的表示。

相关工作

视觉语言预训练 针对现有的V+L问题(视觉问答,图文检索和图像描述),采用类似BERT的目标学习来自语言标记嵌入和视觉区域特征拼接好的序列的跨模态表示。他们在很大程度上依靠Transformer的自我注意机制来学习联合表征,这些表征在两种模式下都有适当的上下文。例如,早期的努力,如[22,38]提出了一个基于two-stream and three-stream Transformer的框架,分别用co-attention来融合这两种模式。Chen等人[5]对不同的预训练目标对所学通用表征的影响进行了全面研究。Zhou等人[46]提出了第一个统一的模型来处理理解和生成任务,只使用VQA和图像字幕作为下游任务。本文将Oscar模型应用于更广泛的下游任务,包括理解和生成任务,并在大多数任务中实现了新的SoTA。与现有的 VLP方法相比,所提出的Oscar最突出的区别是使用了 对象标签来对齐两种模式中的元素。它缓解了VLP模型必须从头开始计算跨模态语义对齐的挑战,从而提高了学习效率。事实上,我们的基础模型已经在大多数V+L任务上已经超过了现有的大型VLP模型。

物体标签 Anderson等人[2]引入了自下而上的机制,通过Faster R-CNN[28]将图像表示为一组视觉区域,每个区域都有一个相关的特征向量。它使得注意力可以在物体层面上被计算出来并迅速成为细粒度图像理解任务的事实上的标准。在本文中,我们建议使用对象标签来调整[2]中的对象-区域特征。[2]中的对象-区域特征在预先训练好的语义空间中对齐。利用对象标签的想法已经被探索用于图像理解[42,43,46]。Wu等人[42]基于CNN的网格区域特征,采用预测的物体标签作为LSTM的输入,而You等人[43]同时考虑标签和区域特征。则同时考虑标签和区域特征。基于由物体检测器提出的突出区域。Zhou等人[46]基于物体检测器提出的突出区域,将物体预测概率向量与区域特征连接起来,作为视觉上的输入。遗憾的是,这些工作中的标签并没有同时与物体区域和文本的词嵌入,导致缺乏基础。我们构建的物体标签与其相应的区域特征和词嵌入产生了更加完整和翔实的对象表征,特别是当语言实体嵌入是预先训练过的,如下所述。

多模态嵌入 已有研究表明,V+L任务可以从共享的嵌入空间中获益,以调整图像和文本之间的模式间对应关系。Socher等人[33]的早期尝试是利用核化的冠状相关将单词和图像区域投射到一个共同的空间,使用核化的典型相关分析,并在注释和分割方面取得了良好的效果。类似的想法被用于图像说明[14]和基于文本的图像检索[29]。特别是,开创性的工作DeViSE[8]提出了使用从无序的语义信息中收集的视觉对象,从未经注释的文本中收集的语义信息来识别视觉对象。这种语义信息被用来预测在训练期间没有观察到的图像标签,并在成千上万个从未见过的新标签中极大地改善了零点预测。视觉模型从未见过的新标签。这个想法已经被 观点在[34,15,25]中得到了扩展,表明利用预先训练好的语言学知识 对于调整语义和提高跨模式转移学习的样本效率非常有效。在这一研究思路的启发下,我们重新审视了这一想法并 建议在神经语言模型预训练的时代,利用从学习到的词嵌入中获得神经语言模型预训练时代的丰富语义。事实上,我们对novel objects的结果表明,Oscar有助于提高预训练模型的可扩展性和通用性。

Oscar训练方式

 

Oscar输入数据:将图文对表示为三元组(橙色单词序列,蓝色物体标签,绿色图片区域特征)。Oscar提出用物体来堆砌跨域语义;删除物体的话,Oscar退化为以前的预训练方法。此三元组可以从两个角度理解:模态视角和字典视角

  • 输入表示。将每个(图像-文本)样本定义为一个三元组(单词序列,物体标签,区域特征)。

  • 预训练目标。根据三元组中三个项目的分组方式,我们从两个不同的角度查看输入:模态视角和字典视角。每一种视角都允许我们设计一个新颖的预训练目标:1)字典视图的掩盖码恢复损失,它衡量模型根据上下文恢复丢失元素(单词或对象标签)的能力; 2)模态视角的对比损失,它衡量模型区分原始三元组及其“污染”版本(即原始物体标签被随机采样的标签替换)的能力。

在六个任务上进行微调和评估:

  • Visual Question Answering (VQA)

  • Graph Question Answering (GQA)

  • Natural Language Visual Reasoning for Real (NLVR2)

  • Image-Text Retrieval

  • Text-Image Retrieval

  • Image Captioning on COCO dataset

  • Novel Object Captioning (NoCaps)

整体预训练+微调的流程:  Oscar以三元组作为输入,以两个损失函数为目标进行预训练(在单词和标签上掩盖恢复损失,以及在标签和其他标签之间的对比损失),然后对其进行微调以实现五个理解和两个生成任务。

实验效果

为了考虑参数的利用效率,我们在下表中比较了不同大小的模型。Oscar在六项任务上均达到了最新水平。在大多数任务上,我们的基本款模型 (base model)要优于以前的大型模型(large model),通常情况下会大大提高。它表明Oscar具有很高的参数利用效率,我们认为部分原因是物体的使用大大简化了图像和文本之间语义对齐的学习。在这里,VLP基线方法是从UNITER, VilBERT, LXMERT, VLP, VL-BERT, Unicoder-VL, 和 12-in-1收集的。请注意,Oscar接受了650万对的预训练,这比UNITER的918万对和IXME的960万对都少,这也说明了Oscar的数据利用率很高。

 

结论

在本文中,我们提出了一个新的预训练方法Oscar,该方法使用对象标签作为锚点,将图像和语言模式统一在一个共享语义空间。我们在一个有650万个文本-图像对的公共语料库上进行预训练来验证该模式。这些预训练的模型在六项既定的V+L理解和生成任务上归档了新的先进技术。

这篇关于Oscar: Object-Semantics Aligned Pre-training for Vision-Language Tasks 解析+总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/276389

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||