由于之前的工作都是基于region特征,然后对齐region-word特征
然而基于region的存在以下限制:
因此作者提出了将一个image作为输入,端到端的进行视觉语言预训练
使用一个可训练的CNN的visual encoder,将一张图像作为输入,产生一个image-level visual features,作者这里使用的是在ImageNet上预训练的ResNet,后接一个1x1卷积和2x2max pooling层
给定一个visual feature vi,通过搜索D中最近邻来计算它的映射索引(就是找到矩阵D中与vi距离最近的嵌入向量)
该映射函数表示为:
使用该嵌入向量来表示visual feature
反映射函数:(给定矩阵中的索引j,找到一个batch内索引为j的visual features)
使用f(V)来表示编码的视觉特征
VD使用随机初始化,然后进一步在一个batch内进行动量更新
由于argmin操作不可微分,梯度反向传播将会在VD处停止,为了使visual encoder可训练,采用一下公式来更新f(vi)
视觉词典基于特征相似度对视觉特征图进行在线聚类,并以其聚类中心表示每个特征向量。将具有相似语义的特征向量聚合到同一个聚类中,聚类索引可视为虚拟视觉语义标签。由于聚类会受到视觉语言学习任务的影响,每个embedding向量学习到的语义更适合于跨模态理解和对齐。(简单的说就是聚类之后的特征更适合多模态任务的学习,因为视觉特征被聚类了,同一类的特征具有相似的语义信息,降低了学习的难度 )。
由于VD的嵌入向量在一开始是随机初始化的,为了避免对visual features造成影响,因此冻结了ResNet前10个epoch的参数
使用2-D position embedding来编码visual token的空间信息
文本特征使用BERT进行编码
将VD嵌入和单词嵌入拼接起来输入到跨模态Transformer中,并添加了[CLS]和[SEP]
预测mask掉的word
预测mask掉的视觉特征
在联合特征[CLS]上应用二分类器,预测输入的视频和文本是否匹配