当前位置: 首页 > news >正文

VISUALBERT:一个简单且高效的视觉与语言基线模型

温馨提示:
本篇文章已同步至"AI专题精讲" VISUALBERT:一个简单且高效的视觉与语言基线模型

摘要

我们提出了VisualBERT,这是一个简单而灵活的框架,用于建模各种视觉与语言任务。VisualBERT由一组Transformer层组成,这些层通过自注意力机制隐式对齐输入文本中的元素与相关图像中的区域。我们进一步提出了两个基于视觉语义的语言模型目标,用于在图像字幕数据上对VisualBERT进行预训练。在包括VQA、VCR、NLVR2和Flickr30K的四个视觉与语言任务上的实验表明,VisualBERT在表现上优于或可与当前最先进的模型媲美,同时结构显著更为简洁。进一步的分析表明,VisualBERT能够在没有任何显式监督的情况下,将语言中的元素与图像区域进行对齐,甚至对句法关系也具有敏感性,例如可以追踪动词与对应图像区域中的论元之间的联系。

1 引言

融合视觉与自然语言的任务为评估视觉感知系统的推理能力提供了一个丰富的测试平台。除了简单地识别图像中存在哪些物体(Russakovsky et al., 2015;Lin et al., 2014),视觉与语言任务(如图像字幕生成(Chen et al., 2015)、视觉问答(Antol et al., 2015)和视觉推理(Suhr et al., 2019;Zellers et al., 2019))还要求系统理解图像中丰富而细致的语义信息,包括物体、属性、组成部分、空间关系、动作与意图,以及所有这些概念在自然语言中的表达和对应方式。

在本文中,我们提出了VisualBERT,这是一个旨在捕捉图像与相关文本中丰富语义的简单而灵活的模型。VisualBERT结合了BERT(Devlin et al., 2019)这一基于Transformer的自然语言处理模型(Vaswani et al., 2017),以及诸如Faster-RCNN(Ren et al., 2015)等预训练的目标提议系统,它可以应用于多种视觉与语言任务。具体来说,从目标提议中提取的图像特征被视为无序的输入token,并与文本一同输入到VisualBERT中。VisualBERT中的多个Transformer层对文本与图像输入进行联合处理(见图2)。文本与目标提议之间的丰富交互使模型能够捕捉文本与图像之间复杂的关联。

与BERT类似,在外部资源上对VisualBERT进行预训练可以促进下游任务的效果。为了学习图像与文本之间的关联,我们考虑在图像字幕数据上对VisualBERT进行预训练,其中图像的详细语义以自然语言方式表达。我们提出了两个基于视觉语义的语言模型目标用于预训练:(1)部分文本被掩蔽,模型学习根据剩余文本和视觉上下文预测被掩蔽词语;(2)训练模型判断给定文本是否与图像匹配。我们展示了,在图像字幕数据上的预训练对于VisualBERT学习可迁移的文本与视觉表示至关重要。

我们在四个视觉与语言任务上进行了全面实验:(1)视觉问答(VQA 2.0,Goyal et al. (2017)),(2)视觉常识推理(VCR,Zellers et al. (2019)),(3)用于视觉推理的自然语言(NLVR2,Suhr et al. (2019)),以及(4)短语到区域的对齐任务(Flickr30K,Plummer et al. (2015))。实验结果表明,通过在COCO图像字幕数据集(Chen et al., 2015)上对VisualBERT进行预训练,VisualBERT在性能上优于或可与当前最先进模型匹敌。我们还提供了详尽的消融实验以验证我们的设计选择。进一步的定量与定性分析揭示了VisualBERT如何内部分配注意力权重以对齐词语与图像区域。我们展示了,通过预训练,VisualBERT能够学会实体对齐,并编码词语与图像区域之间的某些依存关系,这有助于提升模型对图像细节语义的理解(参见图1示例)。
在这里插入图片描述

2 相关工作

视觉与语言之间的桥接有着悠久的研究历史。已经提出了多种任务,如视觉问答(Antol et al., 2015;Goyal et al., 2017)、文本定位(Kazemzadeh et al., 2014;Plummer et al., 2015)以及视觉推理(Suhr et al., 2019;Zellers et al., 2019),并发展了多种模型(Yang et al., 2016;Anderson et al., 2018;Jiang et al., 2018)来解决这些任务。这些方法通常包括一个文本编码器、一个图像特征提取器、一个多模态融合模块(通常带有attention机制)以及一个答案分类器。大多数模型是为特定任务设计的,而VisualBERT是通用的,可以轻松适配新任务或集成进其他特定任务模型中。

理解图像中描绘的详细语义对于视觉理解至关重要(Johnson et al., 2015),先前的研究表明,对这些语义进行建模可以使视觉语言模型受益。例如,Visual Genome(Krishna et al., 2017)中的属性标注被用于增强VQA系统中的目标检测器(Anderson et al., 2018)。Santoro et al.(2017)、Norcliffe-Brown et al.(2018)以及Cadene et al.(2019)探索使用attention模块来隐式建模图像中对象之间的关系。Li et al.(2019)更进一步,显式构建了一个图结构来编码对象之间的关系。在VisualBERT中,self-attention机制使模型能够捕捉对象之间的隐式关系。此外,我们认为在图像标题数据上进行预训练是教会模型捕捉此类关系的有效方式。

我们的工作受到了BERT(Devlin et al., 2019)的启发,BERT是一种用于自然语言的基于Transformer的表示学习模型。它属于一系列工作的延续(Peters et al., 2018;Radford et al., 2018;2019),这些工作通过语言建模目标进行预训练来学习通用语言编码器(即:根据上下文预测被mask掉的词)。有两项与本文同时期的研究与我们相似。VideoBERT(Sun et al., 2019)将视频转化为语音文字并配以一系列图像,并使用Transformer来学习联合表示。他们的模型架构与我们类似。然而,VideoBERT是在烹饪视频的标题生成任务上进行评估,而我们则在多种视觉语言任务上进行了全面分析。与我们的工作同时期,ViLBERT(Jiasen et al., 2019)提出使用类似BERT的架构来学习图像与文本的联合表示,但其视觉和语言分别使用独立的Transformer,二者只能互相attend(因此参数数量是我们模型的两倍)。他们在Conceptual Captions(Sharma et al., 2018)上进行略有不同的预训练流程,并在四个数据集上进行了评估,其中两个数据集也被我们纳入了实验。我们的结果与他们一致(在两个交集任务中我们在一个上表现更优),但由于使用了不同的视觉表示方式和预训练资源,方法本身并不完全可比。

在这里插入图片描述

3 用于视觉与语言的联合表示模型

本节介绍VisualBERT,这是一种用于学习视觉与语言联合上下文表示的模型。我们首先介绍BERT的背景知识(第3.1节),然后总结我们为实现图文联合处理所做的修改(第3.2节,如图2所示),最后解释我们的训练过程(第3.3节)。

3.1 背景

BERT(Devlin et al., 2019)是一种基于Transformer(Vaswani et al., 2017)的模型,其输入为subword(Wu et al., 2016),并通过语言建模目标进行训练。输入句子中的所有subword都被映射为一组embedding,记为EEE。每个embedding e∈Ee \in EeE 是以下三部分embedding的和:

  1. ete_tet,即与subword对应的token embedding;
  2. ese_ses,表示该token来自文本哪个部分(例如:来自蕴涵任务中的假设句)的segment embedding;
  3. epe_pep,表示该token在句子中的位置的position embedding。

输入embedding EEE 然后会被送入一个多层Transformer中,用以构建subword的上下文表示。

BERT通常分为两个阶段进行训练:预训练和微调。预训练采用两种语言建模目标的组合:

  1. Masked Language Modeling:将输入token中的一部分随机替换为特殊token(即[MASK]),模型需要预测这些token的原始身份;
  2. Next Sentence Prediction:模型接收一个句子对,训练其判断这两个句子是否在文档中是连续的。

最后,为了将BERT应用于特定任务,需要引入任务特定的输入、输出层和目标函数,并从预训练参数开始在任务数据上进行微调。

3.2 VISUALBERT

我们核心思想是复用Transformer中的self-attention机制来隐式对齐输入文本元素与图像中的区域。除了BERT的所有组件之外,我们引入了一组视觉embedding,记为FFF,用于建模图像。每个 f∈Ff \in FfF 对应图像中的一个bounding region,由目标检测器生成。

FFF 中的每个embedding由以下三部分embedding相加得到:

  1. fof_ofo,即该bounding region的视觉特征表示,由卷积神经网络计算得到;
  2. fsf_sfs,一个segment embedding,用于指示这是图像embedding而非文本embedding;
  3. fpf_pfp,一个position embedding,用于在输入中提供单词与bounding region的对齐信息时使用,其值为与该区域对齐的所有单词对应的position embedding之和(详见第4节中的VCR部分)。

这些视觉embedding会与原始的文本embedding一起输入多层Transformer,使得模型能够隐式学习两种输入之间的有用对齐关系,并构建新的联合表示。

以下是你提供的英文内容的中文翻译,按照你之前的翻译规范进行,包括保留专业术语、token 等词汇不翻译,段落结构与原文一致,公式使用 Markdown 渲染格式,代码行内注释保持紧凑:

3.3 训练 VisualBERT

我们希望采用与 BERT 类似的训练流程,但 VisualBERT 必须学习同时处理语言和视觉输入。因此,我们使用包含配对数据的资源:COCO(Chen et al., 2015),其中每张图像都配有 5 条独立的图像描述。我们的训练流程包括三个阶段:

任务无关的预训练
我们在 COCO 数据集上对 VisualBERT 进行训练,采用两个与视觉相关的语言建模目标。(1)带图像的 Masked Language Modeling:将部分文本输入进行 mask,并要求模型进行预测,但图像区域对应的向量不会被 mask;(2)句子-图像预测:对于 COCO,其中每张图像有多条图像描述,我们提供一个由两条图像描述组成的文本段落,其中一条是真实描述该图像的,另一条有 50% 的概率也是该图像的其他描述,有 50% 的概率是随机抽取的描述。模型被训练以区分这两种情况。

任务特定的预训练
在将 VisualBERT 微调到下游任务之前,我们发现使用目标任务的数据,通过带图像的 Masked Language Modeling 目标进行训练是有益的。这个步骤可以使模型适应新的目标领域。

微调
此步骤与 BERT 的微调阶段相似,在其中引入任务特定的输入、输出以及目标函数,并训练 Transformer 以在该任务上最大化表现。

4 实验

我们在四种不同类型的视觉与语言任务上评估 VisualBERT:(1)Visual Question Answering(VQA 2.0)(Goyal et al., 2017),(2)Visual Commonsense Reasoning(VCR)(Zellers et al., 2019),(3)Natural Language for Visual Reasoning(NLVR2)(Suhr et al., 2019),以及(4)Region-to-Phrase Grounding(Flickr30K)(Plummer et al., 2015)。每个任务的详细描述见后续章节及附录。对于所有任务,我们使用 COCO 的 Karpathy 训练集划分(Karpathy & Fei-Fei, 2015)进行任务无关的预训练,该划分包含约 10 万张图像,每张配有 5 条图像描述。

所有模型中的 Transformer 编码器配置与 BERTBASE 相同:12 层,隐藏层大小为 768,具有 12 个自注意力头。模型参数初始化来自 Devlin 等人(2019)发布的预训练 BERTBASE 参数。

对于图像表示,不同数据集使用了不同的标准目标检测器以生成区域提议和区域特征。为了进行对比,我们遵循每个数据集的设定,因此在不同任务中使用了不同的图像特征(详见各子章节)。为了保持一致性,在 COCO 上进行任务无关的预训练时,我们使用了与最终任务中相同的图像特征。对于每个数据集,我们评估三种模型变体:

  • VisualBERT:完整模型,参数初始化自 BERT,并在 COCO 上预训练,在任务数据上进行任务特定的预训练,并最终进行任务微调。
  • VisualBERT w/o Early Fusion:VisualBERT 的一个变体,其中图像表示不会在初始 Transformer 层与文本融合,而是延后到最后,通过一个新的 Transformer 层进行融合。该变体用于检验语言与视觉在整个 Transformer 堆叠过程中交互的重要性。
  • VisualBERT w/o COCO Pre-training:VisualBERT 的一个变体,跳过在 COCO 图像描述上的任务无关预训练。该变体用于验证该步骤的重要性。

与 Devlin 等人(2019)一致,我们对所有模型采用带 Adam 优化器的 SGD(Kingma & Ba, 2015)进行优化。除非另有说明,warm-up 步数设置为总训练步数的 10%。批大小根据硬件约束进行选择,文本序列长度超过 128 的会被截断。实验在 Tesla V100 与 GTX 1080Ti 上进行,最多使用 4 张显存为 16GB 的 Tesla V100 即可复现所有实验。COCO 上的预训练通常在 4 块显卡下一天之内完成,而任务特定的预训练和微调所需时间更短。其他与任务相关的训练细节见相应章节。

以下是你提供的英文内容的中文翻译,保持之前的风格与规范:

4.1 VQA

给定一张图像和一个问题,该任务的目标是正确回答该问题。我们使用 VQA 2.0(Goyal et al., 2017)数据集,其中包含超过 100 万个关于 COCO 图像的问题。我们训练模型去预测出现频率最高的 3,129 个答案,并使用从 Visual Genome(Jiang et al., 2018)上预训练的、基于 ResNeXt 的 Faster RCNN 提取的图像特征。更多细节见附录 A。

我们在表 1 中报告了结果,内容包括:使用与我们方法相同的视觉特征和相同数量的区域提议的基线方法(第一部分)、我们的模型(第二部分)、以及其他不可直接比较的方法(第三部分),这些方法使用了来自 Visual Genome 的额外问答对(+VG)、多个检测器(Yu et al., 2019a)(+Multiple Detectors)以及它们模型的集成。在可比设置下,我们的方法显著更为简洁,并且在性能上优于现有方法。

在这里插入图片描述

4.2 VCR

VCR 包含来自 11 万个电影场景的 29 万个问题,问题聚焦于视觉常识推理。该任务被分解为两个多项选择的子任务,我们分别训练单独的模型:问题回答(Q → A)和答案解释(QA → R)。图像特征来自 ResNet50(He et al., 2016),并使用数据集中提供的“gold”检测框和分割信息1。该数据集还提供了文本中引用的单词与图像中区域的对齐信息,我们通过对匹配的单词和区域使用相同的位置嵌入来加以利用。更多细节见附录 B。

我们在表 2 中报告了 VCR 的实验结果。我们将我们的方法与数据集发布时附带的基于 BERT 的模型(R2C)进行对比,并列出了排行榜上性能最好的单模型(B2T2)。我们去除 COCO 预训练的 ablation 版本 VisualBERT w/o COCO Pre-training 与 R2C 使用了相同的数据资源,尽管结构显著更简洁,但其性能远超 R2C。完整模型进一步提升了结果。尽管 COCO 与 VCR 在领域上存在显著差异(VCR 涵盖的是电影场景),但在 COCO 上的预训练依然带来了显著的帮助。
在这里插入图片描述
温馨提示:
阅读全文请访问"AI深语解构" VISUALBERT:一个简单且高效的视觉与语言基线模型

http://www.dtcms.com/a/276842.html

相关文章:

  • 微信小程序案例 - 本地生活(首页)
  • 代码随想录|图论|15并查集理论基础
  • 算法学习笔记:18.拉斯维加斯算法 ——从原理到实战,涵盖 LeetCode 与考研 408 例题
  • RFCOMM协议详解:串口仿真与TCP/IP协议栈移植技术——面试高频考点与真题解析
  • 1.2.3_2 TCP/IP模型
  • Java小白-设计模式
  • 动态规划理论基础,LeetCode 509. 斐波那契数
  • 012_PDF处理与文档分析
  • jenkins使用Jenkinsfile部署springboot+docker项目
  • 011_视觉能力与图像处理
  • Docker 搭建本地Harbor私有镜像仓库
  • Rerank模型
  • 【Linux学习笔记】认识信号和信号的产生
  • C++随笔
  • iOS高级开发工程师面试——关于优化
  • Datawhale 2025 AI夏令营 MCP Server Task2
  • 一文认识并学会c++模板(初阶)
  • 基于无人机 RTK 和 yolov8 的目标定位算法
  • ESP32使用freertos更新lvgl控件内容
  • 【时间之外】尘封的智能套件复活记
  • 数据结构与算法之美:跳表
  • 【CMake】CMake构建项目入门
  • 数据标注:AI时代的黄金矿场如何规避法律暗礁
  • C语言习题三
  • HCIA--- OSPF动态路由实验
  • 基于springboot+Vue的二手物品交易的设计与实现(免费分享)
  • 《棒垒球知识科普》技巧赛规则·棒球1号位
  • houdini 用 vellum 制作一个最简单的布料
  • Windows环境下JS计时器精度差异揭秘
  • PyQt5布局管理:QHBoxLayout和QVBoxLayout详解