动机

现存方法的两大局限性:

视觉理解任务使用的主要策略是先基于其他大规模任务分别预训练视觉和语言模型,然后将其作为具体任务的一部分基础知识。然而,1)这种方案学习到的基础知识并不牢靠,当visiolinguistic data有限或者有偏时(biased),模型的泛化能力很差。此外,2)在单模态数据上学习的近乎完美的表征,往往忽略了与其他模态之间的联系。比如,即使狗品种分类的视觉表征是完美的,但在下游任务中模型若无法将该视觉表征与形如"小猎犬"或"牧羊人"这样的近似短语进行关联,这种完美的视觉表征也是近乎无用的。

方法
简介

提出ViLBERT(Vision-and-Language BERT),该模型用来学习任务无关的图像和自然语言联合表征。ViLBERT在BERT的基础上拓展为多模态的双流模型,在各自的流中处理图像和文本输入,这两个流通过Co-attention transformer层进行交互。通过在大型的、自动收集的Conceptual Captions数据集上的两个任务预训练本论文的模型,然后将其转移到多个已建立的视觉和语言任务–视觉问题回答、视觉常识推理、引用表达式和基于caption的图像检索,仅需对基础架构进行少量的调整。实验结果表明本文的ViLBERT在4个下游任务中显著优于面向特定任务的最先进模型。ViLBERT代表了一种转折:从将学习视觉和语言之间的基础知识仅作为具体任务的一部分,转向把视觉基础知识(visual grounding)作为一种可预训练和可迁移的能力。

BERT

BERT模型是一种基于注意力的双向语言模型。在大型语言语料库上进行预训练后,BERT已经被证明对于多个自然语言处理任务的迁移学习是非常有效的。在BERT中,一个单一的编码器式transformer块是由一个多头注意力块和一个小的完全连接的网络组成,这两个都被包裹在残差中。查询和键之间的点积相似性决定了在值向量上的注意力分布。得到的加权平均的值向量形成注意力块的输出。本论文修改了这个查询条件的键值的注意力机制,以为ViLBERT开发一个多模态共注意transformer模块。

Multi-Modal Co-Attention

由于主流视觉文本模型的局限性,ViLBERT旨在将视觉信息和文本信息连在一起。如果使用最简单粗暴的方法进行预训练,例如,使用一个BERT,把不同的视觉输入聚类后离散化,当作离散的图像token,像文本token一样输入预训练好的BERT里进行单一流预训练。那么将存在以下问题:

1)对于视觉信息和文本信息流的方法是相同的——不合适。因为不同信息的抽象程度和复杂度不同,且忽略了它们可能需要不同level级别的处理。比如,图像区域之间的关系可能比句子中的单词弱,而视觉特征本身往往已经是一个非常深的网络的输出。
2)聚类视觉输入存在错误导致重要视觉细节的损失。
3)迫使原有的BERT参数向图像token进行bias会导致BERT语言模型受损,并且clustering的错误会很大。

因此,使用双流(Two-Stream)结构,让不同的BERT处理图像和文本信息,而且层数灵活。将传统的键、查询、值模式的multi-head self-attention改成了multi-modal co-attention形式。提出的Co-attention模式,将键和值从一个模态传递到另一个模态的多头注意力模块,相应地,在视觉流中生成基于图像的语言注意力,在语言流中生成基于文本的图像注意力。
由于选择的视觉特征已经是相当高的层次,与句子中的单词相比,需要有限的上下文融合。因此,Co-Attentional Transformer Layers 只在特定的layer才使用。首先,通过几个transformer编码器块提取text的抽象特征;然后,再和视觉特征进行attention才能够做align。

架构

ViLBERT的双流结构。视觉特征(绿色分支)和文本特征(紫色表示)如上图所示,每个流都由一系列的transformer blocks(TRM)和co-attention transformer layers(Co-attention)组成(蓝色框所示)。双流间有信息交互的层次是严格限定的(这里共交互k次)。视觉特征由成熟的目标检测手段提取到的visual embedding后可直接使用,而文本特征需要多经过几层处理后才与视觉特征交互(红色框部分)。为保证总的处理层数是L,处理文本特征的层数为L-k。

文本表示

BERT 处理的是离散的符号,包括字典词以及少量特殊的符号:SEP,CLS,以及 MASK。对于一个给定的符号,输入的表示是一个token特定的学习嵌入的一个总和以及位置编码(句子中token的索引) 和 segment(如果存在多个,就标记token的句子的索引)。

图像表示

图像区域是通过一个预训练好的目标检测网络进行提取的。因为一幅图片中提取的RoI不像文本一样存在顺序性,所以位置编码是相对于整个图像的一个位置编码。图像区域序列的开始是一个特殊的token 【IMG】,其表示整个图像,该图像具有与整个图像相对应的空间编码的平均池化视觉特征。
由于图像区域间的无序性,本文使用了一个5D的向量对区域位置编码,从而实现图像空间位置的编码。这5个维度分别是归一化后的边界框的左上角和右下角的坐标以及图像区域覆盖整个图像的占比。然后通过映射将其维数与视觉特征的同维度,并对它们进行加和。

预训练任务

训练ViLBERT采用了两个预训练任务:masked多模态建模和多模态对齐预测任务。

任务一:预测被mask掉的文本token是什么,并且预测被mask掉的图像token的语义类分布——其ground truth是由之前用于提取视觉特征的模型生成的。
masked多模态建模任务中,对于文本的mask任务保持与BERT中一致。对图像区域的mask预测任务,这里并不直接输入对区域的标签预测,而是建模各类别标签的分布,最小化输出分布与真实分布的KL散度。具体来说,masked大约15%的单词和图像区域输入,并在给定剩余输入的情况下,将重建它们的任务分配给模型。masked图像区域的图像特征90%的时间被清零,10%的时间未被改变。masked文本输入的处理方式与BERT相同。该模型不是直接回归masked特征值,而是预测相应图像区域的语义类分布。为了监督这一点,本论文从在特征提取中使用的相同的预训练检测模型中获取该区域的输出分布。训练模型使这两个分布之间的KL散度最小。这种选择反映了一种观念,即语言通常只识别视觉内容的高级语义,不太可能重建精确的图像特征。此外,应用回归损失可能使得难以平衡由masked的图像和文本输入引起的损失。

任务二:预测文本和图像的对齐。取图像序列的【IMG】token和文本序列的【CLS】token来预测图文是否一致。
多模态对齐预测任务中,token【IMG】位置的特征用作整个图像的表示,【CLS】位置的输出用作文本特征,两个特征逐位置相乘后通过一个线性层做二分类,预测是否对齐。然而,Conceptual Captions数据集仅包括对齐的图像-caption对。为了生成对于一个图像-caption负对,本论文随机替换另一个图像或caption。

实验

为了训练整个ViLBERT模型,本论文应用两个预训练任务在ceptual Captions数据集上。Conceptual Captions是一个330万个图像字幕对的集合,自动从启用alt-text的web图像中刮出。自动收集和清理过程会留下一些噪音,而且“captions”有时并不似人或缺少细节(例如,“演员在节日期间参加首映”)。然而,它呈现了一个巨大的多样性的视觉内容,并且是一个适用于本论文的极好的数据集。由于一些链接在本论文下载数据时已经损坏,本论文的模型是用大约310万个图像-caption对训练的。

实现细节。本论文用在BookCorpus和英文维基百科上预训练的BERT语言模型来初始化本论文的ViLBERT模型的语言流。具体地说,本论文使用BERTBASE模型,它有12层transformer块,每个块都有一个大小为762的隐藏状态和12个注意头。本论文选择使用基本模型是考虑到训练时间,然而更强大的BERTLARGE模型可能会进一步提高性能。

本论文使用在Visual Genome数据集上预训练的Faster RCNN(带有ResNet-101主干)来提取区域特征。本论文选择类检测概率超过置信阈值的区域,并保持在10到36个高分框之间。对于每个选择的区域i,vi被定义为来自该区域的平均池化卷积特征。视觉流中的transformer和Co-Attentiont Transformer块具有1024的隐藏状态大小和8个注意头。

本论文在8个总批处理大小为512的TitanX GPU上进行了10个epoch的训练。使用Adam优化器,初始学习率为1e-4。本论文使用一个带有预热的线性衰减学习率调度来训练模型。两种训练任务损失都是同等权衡的。

本论文将预训练的ViLBERT模型转移到一组四个已建立的视觉和语言任务和一个诊断任务。本论文遵循一个微调策略,本论文修改预训练的基础模型来执行新任务,然后端到端地训练整个模型。在所有情况下,修改都是微不足道的–通常相当于学习一个分类层。

视觉问答(VQA)。VQA任务要求回答关于图像的自然语言问题。本论文对VQA2.0数据集进行训练和评估,该数据集由110万个关于COCO图像的问题组成,每个问题有10个答案。为了在VQA上对ViLBERT进行微调,本论文在图像和文本表示hIMG和hCLS的元素乘积之上学习一个两层MLP,将此表示映射到3129个可能的答案。本论文将VQA视为一个多标签分类任务–根据每个答案与10个人类答案的相关性,给每个答案分配一个软目标分数。然后本论文在最多20个epoch内使用256的批处理大小对软目标分数进行二进制交叉熵损失的训练。本论文使用初始学习率为4e-5的Adam优化器。在推论中,本论文简单地取一个softmax。

视觉常识推理(VCR)。在给定图像的情况下,VCR任务呈现出两个问题–视觉问题回答(Q—>A)和答案证明(QA—>R)–这两个问题都被提出为多项选择问题。整体设置(Q AR)要求选择的答案和选择的理论基础都是正确的。视觉常识推理(VCR)数据集包含由110K电影场景衍生的290K的多项选择QA问题。与VQA数据集不同,VCR将目标标记集成到提供直接基础监督的语言中,并明确排除引用表达式。为了更好地完成这个任务,本论文将问题和每个可能的回答连接起来,形成四个不同的文本输入,并将每个输入与图像一起通过ViLBERT。本论文在 post-elementwise product 表示的顶部学习一个线性层来预测每个对的得分。最终的预测是超过这四个分数的一个softmax,并且在交叉熵损失下训练了20个epoch,批大小为64,初始学习率为2e-5。

基础参考表达式。引用表达任务是在给定自然语言引用的情况下对图像区域进行定位。本论文在REFCOCO+数据集上进行训练和评估。对此任务的一种常用方法是给出引用表达式,重新整理一组图像区域候选。因此,本论文直接使用了之前研究提供的边界框候选,它使用了一个Mask R-CNN在COCO数据集上进行预训练。为了进行微调,本论文为各个图像区域传递最后的表示到一个学习好的线性层以预测匹配分数。本论文通过使用真实框计算IoU并以0.5为阈值来标记每个候选框。采用二进制交叉熵损失训练最多20个epoch,其中批大小为256,初始学习率为4e-5。在推理时,本论文使用最高分区域作为预测。

基于caption的图像检索。基于caption的图像检索是在给定caption描述图像内容的情况下,从图像池中识别图像的任务。本论文在Flickr30k数据集上进行训练和评估包括来自Flickr的31000张图片,每张有5个caption。split之后,本论文使用1000个图像进行验证,并对每个图像进行测试,然后对其余的图像进行训练。这些caption在视觉内容方面有很好的基础和描述性,并且与自动收集的Conceptual Captions有着质的区别。本论文使用1000个图像进行验证,并对每个图像进行测试,然后对其余的图像进行训练。这些caption在视觉内容方面有很好的基础和描述性,并且与自动收集的Conceptual Captions有着质的区别。本论文在一个4-way多项选择设置中进行训练,为每个图像-caption对随机抽样三个干扰物–从目标图像的100个最近邻中替换一个随机caption,一个随机图像,或者一个hard negative。本论文计算每一个的对齐分数(如在对齐预测预训练中),并应用一个softmax。本论文在交叉熵损失的情况下训练该模型20个epoch以选择真实的图像-caption对,批大小为64,初始学习率为2e-5。在推理时,本论文对测试集中的每个caption-图像对进行打分,然后进行排序。为了提高效率,本论文在第一个Co-TRM层之前缓存语言流表示–在融合之前有效地冻结语言表示。

基于“零样本”caption的图像检索。前面的任务都是包含特定于数据集的微调的transfer任务。在这个“零样本”任务中,本论文直接将预训练好的多模态对齐预测机制应用于Flickr30k中的基于caption的图像检索中,而不需要进行微调(因此被描述为“零样本”)。本任务的目标是证明预训练开发了基础文本的能力,并且这可以推广到视觉和语言的变化,而不需要任何特定任务的微调。本论文直接使用在Conceptual Captions数据集上训练好的ViLBERT模型。本论文使用对齐预测目标作为评分函数,并在与上面描述的基于caption的图像检索任务相同的split上进行测试。

实验证明,1)本论文的体系结构比单流模型提高了性能。本论文观察到ViLBERT在预训练(单流vs.ViLBERT)和非预训练(单流vs.ViLBERT)的单流基线上的跨任务改进。VQA和REFCOCO+的增益最为显著。2)本论文的预训练任务导致了视觉语言表征的改善。当使用在两个任务下预训练过的ViLBERT模型(ViLBERT vs ViLBERT+)时,本论文的模型在任务间进一步提高了2%到13%。本论文还观察到单流的改进,这验证了本论文的代理任务可以推广到不同的模型体系结构。3)ViLBERT的微调是视觉和语言任务的一个强有力的策略。使用单一的基础架构,本论文的transfer任务性能超过了所有四个已建立任务的最先进的任务特定的模型。本论文在VCR、REFCOCO+和图像检索中取得最先进的性能(提高了7-10个百分点)。此外,扩展到这些任务也很简单–需要为每个任务添加一个分类器。这些结果表明本论文的ViLBERT模型能够学习重要的视觉语言关系,这些关系可以被下游任务利用。

小结

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

CVPR 2019 ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language相关推荐

  1. 2019 VisualBERT: a Simple and Performant Baseline for Vision and Language

    摘要 我们提出VisualBERT,一种建模广泛视觉和语言任务的简单和灵活的框架.VisualBERT包含一些Transformer层的堆叠,这些层隐式的将输入文本和与输入图像相关的区域与自注意力对齐 ...

  2. 【论文阅读】 VL-BERT: Pre-training of generic visual-linguistic representations

    利用BERT联合学习视觉和语言之间的信息. Visual-Linguistic BERT的主干是多模态Transformer attention 模块,以视觉和语言嵌入特征作为输入.在输入中,每个元素 ...

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

    目录 ViLBERT: Extending BERT to Jointly Represent Images and Text Experimental Settings References ViL ...

  4. (九:2020.08.27)CVPR 2019 追踪之论文纲要(译)

    CVPR 2019 追踪之论文纲要(修正于2020.08.28) 讲在前面 论文目录 讲在前面 论坛很多博客都对论文做了总结和分类,但就医学领域而言,对这些论文的筛选信息显然需要更加精细的把控,所以自 ...

  5. 【论文笔记】ViLBERT:Pretraining Task-Agnostic VisiolinguisticRepresentations for Vision-and-Language Tasks

    论文标题: ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tas ...

  6. IIAI CVPR 2019 跟踪、检测、分割论文荐读

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自起源人工智能研究院. 撰稿:Fahad Khan,孙国磊,廖胜才,卢宪凯 导语 CVPR (Conference on Computer Vi ...

  7. CVPR 2019 | 近日新出论文汇总(含视频目标分割、GAN、度量学习、高效语义分割等主题)...

    点击我爱计算机视觉标星,更快获取CVML新技术 CV君汇总了最近两天新出的CVPR 2019 论文,涵盖内容包括:度量学习.视频目标分割.GAN图像生成.基于RGB图像的物体表面网格生成.深度补全.高 ...

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

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

  9. CVPR 2019 Oral 论文精选汇总,值得一看的 CV 论文都在这里(持续更新中)

    CVPR 2019 即将于 6 月在美国长滩召开.今年有超过 5165 篇的大会论文投稿,最终录取 1299 篇,其中 Oral 论文近 300 篇.为了方便社区开发者和学术青年查找和阅读高价值论文, ...

最新文章

  1. 关于雅可比迭代的Python实现
  2. 国内代码托管平台(Git)
  3. 卡尔蔡司携手神策数据,赋能近视防控数字化
  4. 在Spring MVC中使用Velocity
  5. CCNA-第七篇-思科私有路由协议-EIGRP-初级
  6. 当你感到迷茫焦虑时,请听听白岩松这个演讲
  7. 一个没暂时没有办法实现的问题和一个有意思的小问题!
  8. 软件工程综合实践第二次作业——结对编程
  9. Swift 5 Dictionary用法大全
  10. 【一文搞懂】【WIN32】(_beginthread、_beginthreadex)和CreateThread
  11. 安装cad提示command_win7系统安装CAD软件失败总是提示“错误1327”怎么解决
  12. xyz坐标转换ybc_GNSS仰角和方位角的计算及代码,XYZ转BLH坐标的代码及原理
  13. 解决Google浏览器首页被2345网站劫持
  14. 全部驳回?元宇宙商标申请被国家知识产权局“劝退”
  15. SAP小磁带备份注意事项
  16. golang常用加签验签 - 2.hmac
  17. Java基础知识(语言基础)
  18. Xming显示远程服务器GUI的最简单配置
  19. 白帽子-高端信息安全培训视频教程
  20. 除了芝麻代理,近几年国内比较好的代理IP有哪些?

热门文章

  1. ACS712中文资料_描述(电流传感器)
  2. 美豪酒店集团获亿元投资,同程旅游领投陕文投跟投
  3. HTML+CSS大作业 使用html+css实现一个静态的汽车页面(含源码)
  4. 曾經很愛很愛伱,洳紟莪巳經放棄,哆謝伱啲鈈珍惜讓莪學茴迉惢,深噯灬伱时﹎ o放ヅ棄 我﹖ヅo
  5. 莪的拽、像省田各号①样没尽頭队——需求改进原型设计
  6. 华为推谷歌系统智能手机火拼微软三星
  7. 树莓派CM4烧录Ubuntu20镜像与ROS2的安装(无屏)
  8. 零基础学编程套路~~~
  9. Ipad购买和使用教程(1)
  10. 在c++中,operator怎么使用