泛览天下

阅读,看尽天下事

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

2022-01-11 06:14:11


为了更好地捕获细粒度视觉信息并加强区域实体对齐,ALPRO引入了一个新的视觉基础预训练任务,称为提示实体建模(prompting entity modeling),要求视频文本模型使用视频和文本输入联合预测随机选择的视频中出现的实体(如上图


作者 | 小马
编辑 | CV君
报道 | 我爱计算机视觉(微信id:aicvml)


【写在前面】

视频和语言预训练在各种下游任务上显示出显著的性能优势。以前的大多数方法都使用基于标准Transformer的多模态编码器捕获跨模态交互,而不能完全解决单模态视频和文本特征之间的未对齐问题。此外,学习细粒度视觉语言对齐通常需要现成的目标检测器来提供目标信息,检测器的词汇量有限和昂贵的计算成本限制了这一方法的发展。

在本文中,作者提出了Align and Prompt:一个新的视频和语言预训练框架(ALPRO),该框架在稀疏采样的视频帧上运行,在没有显式目标检测器的情况下实现更有效的跨模态对齐。首先,作者引入了一种 视频文本对比 (VTC)损失,在实例级对齐单模态视频文本特征,简化了跨模态交互的建模。然后,作者提出了一种新的视觉基础预训练任务,即 提示实体建模 (PEM),该任务通过实体提示器模块以自监督的方式学习视觉区域和文本实体之间的细粒度对齐。最后,作者使用提出的VTC和PEM损失,以及掩码语言建模 (MLM) 和视频文本匹配 (VTM) 的两个标准损失,在大型网络源视频文本对上预训练了视频和语言Transformer模型。


1. 论文和代码地址

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

论文名称:Align and Prompt: Video-and-Language Pre-training with Entity Prompts

论文地址:
https://arxiv.org/abs/2112.09583

代码地址:
https://github.com/salesforce/alpro


2. Motivation

视频和语言预训练旨在共同学习多模态表示,有效地将其转移到下游任务,如文本视频检索和视频问答。与图像相比,视频通常在连续帧中包含更多冗余,这对容量和计算效率的模型提出了挑战。大多数先前的方法通过使用离线提取的特征来规避昂贵的计算开销。由于视频特征提取器是固定的,不需要进行网络调整,因此当迁移到不同的目标域时,这些方法是次优的。相比之下,最近出现的方法从视频中采样很少的帧,这使得视频主干能够进行端到端的预训练和微调。在这项工作中,作者采用了稀疏视频文本预训练范式。

尽管目前的视频文本预训练模型具有良好的性能,但仍存在一些局限性:

(1)视频和文本特征之间的交互通常使用点积或交叉模态Transformer编码器进行简单建模。然而,来自各个模态的特征通常位于不同的嵌入空间中,这种错位使得直接模拟跨模态相互作用的效果降低。

(2) 许多以视觉为基础的预训练任务没有明确建模细粒度区域视觉信息,这对于视觉推理的下游任务(如videoQA)是非常重要的。尽管有人尝试使用目标检测器生成伪标签作为监督,但它们的检测不精确,并且物体类别数量有限。例如,在MSCOCO上训练的检测器识别不到100个不同的类别。

(3) 先前的稀疏预训练模型使用图像编码器使用图像-文本对进行训练,这使得其在建模时间信息时效率较低。

在本文中,作者使用一个新的视频和语言预训练框架:Align and Prompt(ALPRO)来应对这些挑战。从结构角度看,ALPRO首先使用基于Transformer的视频编码器和文本编码器对帧和文本进行独立编码,然后使用多模态编码器捕获跨模态交互。ALPRO学习实例级视频文本对齐和细粒度区域实体对齐。实例级对齐是通过在单模态特征上应用视频文本对比损失(VTC)来学习的,这鼓励成对的视频文本实例具有相似的表示。

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

为了更好地捕获细粒度视觉信息并加强区域实体对齐,ALPRO引入了一个新的视觉基础预训练任务,称为提示实体建模(prompting entity modeling),要求视频文本模型使用视频和文本输入联合预测随机选择的视频中出现的实体(如上图所示)。

为了解决实体标注不可用的问题,作者设计了一个独立的实体提示器(entity prompter)模块,该模块生成可靠的伪标签。具体地说,实体提示器由两个单模态编码器组成,分别用于提取视频和文本特征。作者首先仅使用VTC损失对实体提示器进行训练,然后冻结其参数。然后在预训练中,作者输入视频片段和文本提示(例如“A video of { Entity }”),对于提示语,每个实体都来自预训练语料库中经常出现的名词。然后,计算实体提示和视频片段之间的标准化相似度作为伪标签来监督预训练。


3. 方法

3.1. ALPRO Architecture

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

上图展示了ALPRO的结构图。ALPRO由两个主要模块组成,视频-语言预训练模型和提示器(prompter)。提示器用于生成soft的实体标签,以监督视频语言模型的预训练。这两个模块都包含自己的视频编码器和文本编码器,分别用于提取视频和文本输入的特征。预训练模型有一个额外的多模态编码器,以进一步捕获两种模态之间的相互作用。

Visual Encoder

作者使用12层TimeSformer来提取视频特征,输入帧的高度和宽度为224。对于从每个输入视频中稀疏采样的 个帧,TimeSformer首先将每个帧划分为K个不重叠的patch,这些patch被过滤并送到线性投影层以产生patch token序列。可学习的位置嵌入也被添加到patch token。

然后,TimeSformer在时间和空间维度上分别应用自注意力,从而产生每帧特征 ,d为特征维数。然后沿时间维度应用时间融合层(即,mean pooling),以将每帧特征聚合为视频特征。作为视觉编码器的输出,可以得到了一个视觉嵌入序列: ,其中 表示视频[CLS] token的嵌入。

Text Encoder

作者使用6层Transformer模型来表示文本token。给定 个token的输入文本描述,文本编码器输出一个嵌入序列 ,其中 为文本 [CLS] token的嵌入。与视频编码器类似,作者还向文本token添加位置嵌入。

Multimodal Encoder

多模态编码器采用三层的Transformer,进行跨模态的交互。由于位置嵌入已经注入到每个单模态编码器中,因此作者直接concat视频和文本特征,然后送入到多模态编码器。输出是多模态嵌入 ,其中

3.2. Pre-training for ALPRO

作者用四个目标对ALPRO进行预训练,其中包括两个常见的目标,即掩蔽语言建模(MLM)和视频-文本匹配(VTM)。另外两个训练目标为视频文本对比(VTC)损失和提示实体建模(PEM)损失。VTC和PEM的动机都是加强视频和文本之间的跨模态对齐。V TC强调捕获视频文本对的实例级对齐 PEM鼓励模型将局部视频区域与文本实体对齐

3.2.1 Contrastive Video-Text Alignment

现有的稀疏视频语言预训练模型使用点积或完全依赖于Transformer编码器来建模跨模态交互。然而,由于视频和文本特征位于不同的嵌入空间,这种方法导致不太好的对齐。为此,作者提出了一种视频文本对比(VTC)方法,用于在将单模态编码器的特征发送到多模态编码器之前对其进行对齐。具体而言,给定视频和文本[CLS] token的嵌入,作者优化了视频V和文本T之间的相似性函数:

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

这样成对的视频和文本描述具有更高的相似性分数,其中 是线性投影,将[CLS]嵌入转换为通用的标准化低维(例如256-d)空间。

对比损失将匹配对视为正样本,而将batch中可以形成的所有其他对视为负样本。对于每个输入视频文本对 , 视频文本对比损失由两个对称项组成,一个用于视频到文本的分类:

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

另一个用于文本到视频分类:

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

式中,τ是可学习的温度参数,B是batch大小。视频文本对比损失定义为:

3.2.2 Prompting Entity Modeling

尽管MLM已经证明了其在学习token级文本表示方面的有效性,但设计visually-grounded的任务仍然是一个挑战。因此,视觉推理的有限能力对以前在下游任务上的工作产生了不利影响,尤其是那些需要区域级视觉信息的任务。这对于现有的视频语言预训练模型来说尤其是一个问题,它通常在pooling只保留粗粒度的空间信息,从而丢失细粒度的视觉线索。ActBERT使用现成的目标检测器来获取区域特征。除了效率低下之外,使用图像训练的检测器往往会在视频输入上产生不可靠的检测结果。此外,检测器通常使用受限的目标类别(例如,小于100)进行训练,限制模型的性能。

作者引入了提示实体建模(PEM),这是一项新的基于视觉的预训练任务,它提高了模型捕获局部区域信息的能力,并加强了视频区域和文本实体之间的跨模态对齐。具体而言,PEM需要一个提示器模块,该模块生成soft伪标签,识别随机视频中出现的实体。然后,以伪标签为目标,要求预训练模型预测视频片段中的实体类别。

提示器用于产生给定视频crop的实体类别的伪标签,除了可能带有噪声对齐的网络来源的视频文本对之外,没有使用任何密集的标注信息。CLIP能从噪声对中学习图像-文本对齐。受此启发,作者首先在视频文本对上预训练提示器,该提示器由两个单模态编码器组成,具有VTC loss,然后冻结其参数。

提示器维护M个文本提示的预定义列表。每个文本提示都是一个模板的实例,例如“A video of { ENTITY }”,其中实体是预训练语料库中的常用名词,如dog, grass, sky等。提示语经过预训练后,它会计算每个文本提示的[CLS]嵌入

为了生成实体标签,给定一个视频输入,作者首先从提示器的视频编码器获取随机视频crop (例如,采样帧上的相同空间区域)及其[CLS]嵌入 。提示器然后计算实体伪标签 表示视频crop,作为 和所有提示嵌入 之间的softmax归一化相似性:

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

在视频语言模型的预训练期间,作者对来自多模态编码器的嵌入应用平均池化。作者使用一个分类器(如MLP)来计算softmax标准化实体预测 。然后将提示实体建模(PEM)损失定义为 之间的交叉熵:

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

提示实体建模具有不同的实体范围,同时不需要额外的人工标注,这产生了一个高效且可扩展的解决方案,以生成跨模态学习的区域级监督。

3.2.3 Overall Pre-training Objectives

此外,作者还使用了广泛采用的掩蔽语言建模(MLM)损失 和视频文本匹配损失 。MLM目标利用视频和上下文文本来预测mask的文本token。作者以15% 的概率随机mask输入token,并用特殊token [mask] 替换它们。视频文本匹配是一项二分类任务,用于预测视频和文本描述是否相互匹配。作者使用多模态[CLS] token作为视频-文本对的联合表示,并使用交叉熵损失训练模型。ALPRO的总体预训练目标是:

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

4.实验

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

上表展示了不同预训练任务下的实验结果。

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

上图展示了不同视频crop生成的伪标签结果。

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

上表展示了与现有的文本到视频检索方法的比较,包括MSRVTT上的finetuning和zero-shot设置。

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

上表展示了与现有的文本到视频检索方法的比较,包括DiDeMo上的finetuning和zero-shot设置。

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

上表展示了MSRVTT-QA和MSVD-QA上的实验结果。

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

上表展示了不同PEM的实例数量的实验结果。

Salesforce&ANU提出ALPRO,进行细粒度的视频文本对齐!代码开源

上表展示了不同采样帧数下的实验结果。


5. 总结

在本文中,作者提出了一个预训练框架,希望通过在预训练的过程中进行模态间局部和全局的对其,因此除了经典的VTM和MLM两个预训练任务之外,作者还引入了两个新的预训练任务:VTC和PEM。VTC和CLIP的操作大致相同,通过比较图像和文本的cls token来判断图像样本和文本样本是够匹配。PEM则是对随机裁剪的帧通过prompt操作进行类别的预测,然后将预测的结果作为伪标签来监督预训练的过程,从而使模型能够感知视频帧中的局部区域。