论文标题:
ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks
ViLBERT:视觉和语言任务的预训练任务不可知视觉语言表示
论文链接:https://arxiv.org/abs/1908.02265
论文代码:
数据集地址:https://github.com/google-research-datasets/conceptual-captions
发表时间:2019年8月
我们提出了 ViLBERT(Vision-and-Language BERT 的缩写),一种用于学习与任务无关的图像内容和自然语言的联合表示的模型。我们将流行的 BERT 架构扩展到多模态双流模型,在通过共同注意力转换器层交互的单独流中处理视觉和文本输入。我们通过自动收集的大型概念字幕数据集上的两个代理任务对模型进行预训练,然后将其转移到多个已建立的视觉和语言任务——视觉问答、视觉常识推理、引用表达和基于字幕的图像检索——通过只对基础架构进行少量添加。与现有的特定任务模型相比,我们观察到任务之间的显着改进——在所有四个任务上都达到了最先进的水平。 我们的工作代表了从仅将视觉和语言之间的学习基础作为任务训练的一部分,转向将视觉基础视为可预训练和可转移的能力的转变。
核心思想:
使用概念字幕数据集(该数据集由 330 万张图像组成,这些图像具有从网络上启用 alt-text 的图像自动收集的弱关联描述性字幕)(包含图像和文本数据)
ViLBERT 基于 BERT 进行修改而来
修改了关键值注意机制,为 ViLBERT 开发了一个多模态共同注意转换模块
使用共同注意力转换器层进行通信,进行预训练,从而处理不同的下游任务
ViLBERT 的整体架构如下图所示:
ViLBERT 的整体流程如下:
1)Image 与 Text 进行编码 Embed,输出 Xi 和 Xt 向量
2)Xt 向量进入 TRM(即Transformer 的编码架构)输出向量 Yt
3)Xi 和 Yt 进入 Co-TRM(即共同注意力转换层)分别输出向量,在进入 TRM 输出最终两个向量
4)此向量即为预训练向量,图片向量包含了文本信息,文本向量包含了图片信息,从而处理下游任务更准确
采用的是 Bert-base 模块(它有12 层转换器块,每个块的隐藏状态大小为 762 和 12 个注意力头)
作者发现,如果使用 Bert-large 效果更好
Bert 的 Transformer 编码架构如图 a、Co-TRM 架构如图 b
传统 Transformer 的多头注意力机制是由查询为条件的键值注意机制决定的,大家自行学习一下就可以,本文不是重点,这里不详细介绍了
而本文提出的 Co-TRM 就是修改了这种以查询为条件的键值注意机制,本质上可以理解为,不同模态的不同键值交叉输入各自的 Transformer 编码结构中
如上图 b 所示,K、V 键值是输入到其他模态中的 TRM 中的,而 Q 这输入自己的 TRM 中
再简单的说一下描述一下:
即 Image 中的 TRM 输入,为自己的 Q 和 Text 的 V 和 K
Text 的 TRM 输入,为自己的 Q 和 Image 的 V 和 K
这里引申出第二个问题,那就是 Text 可以进入 Co-TRM 中,但是 Image 的编码向量,怎么进入 Co-TRM呢?
图片特征提取:Fast-R-CNN(带有 Restnet-101 为主干)
并且选择类别检测概率超过置信度阈值的区域,并保持在 10 到 36 个高分框之间。对于每个选定的区域 i,vi 被定义为来自该区域的均值池化卷积特征
并且添加空间位置信息,从而进行编码
从而实现输入 Co-TRM 的效果
如下图 b ,将两种模态的数据进行融合操作,从而统一进行预训练
进行模态对齐操作:
1)对应位置进行乘积操作,输出向量 x
2)x 再进入全连接层,本质就是找对齐的方式,然后输出最终向量
实验任务: ViLBERT 模型的 VCR 和 VQA 任务结果与现有的最先进和合理的架构消融进行比较
实验结果:我们完整的 ViLBERT 模型在所有任务中都优于特定于任务的最先进模型
实验任务:我们模型的深度相对于 Co-TRM→TRM 块数量的消融研究
实验结果:我们发现不同的任务在不同的网络深度下表现更好
实验任务:将 ViLBERT 的任务结果作为预训练期间使用的概念字幕数据集百分比的函数
实验结果:随着预训练数据集大小的增长,效果越来越好
本文效果最优是基于注意力机制考虑了其他模态的注意力信息,但多模态数据融合仍然是乘法规则