本文分享论文『SWIN BERT: End-to-End Transformers with Sparse Attention for Video Captioning』,微软提出第一个端到端的Video Captioning方法《SWIN BERT》,涨点显著!
详细信息如下:
- 论文链接:https://arxiv.org/abs/2111.13196
- 项目链接:未开源
导言:
视频字幕的标准方法是定义一个字幕生成模型,以从大量提取的密集视频特征中学习。这些特征提取器通常对以固定帧率采样的视频帧进行操作,并且通常对图像/视频理解任务进行预训练,而没有适应视频字幕数据。在这项工作中,作者提出了S WIN BERT ,这是一种基于端到端Transformer的视频字幕模型,该模型直接将视频帧patch作为输入,并输出自然语言描述。
本文的方法不是利用多个2D/3D特征提取器,而是采用视频Transformer来编码时空表示,该表示可以适应可变长度的视频输入,而无需针对不同帧率进行专门设计。基于这个模型结构,作者证明了视频字幕可以从更密集的采样视频帧中获得显著的增益。此外,为了避免连续视频帧中固有的冗余,作者提出自适应学习稀疏注意掩码,并通过更好的远程视频序列建模来优化任务特定性能的改进。通过对5个视频字幕数据集的广泛实验,作者表明S WIN BERT比以前的方法实现了全面的性能改进,通常提升幅度很大。
01
Motivation
视频字幕是用自然语言描述给定视频的视觉内容的任务,因此,这需要模型理解和建模视频中的时空动态以及视觉和文本元素之间的关系,并生成一系列输出单词。这通常是通过基于Transformer的模型来解决的,该模型从提取的视频表示中学习 ,如上图所示。
具体而言,多个特征提取器,通常在图像/视频理解任务 (例如,图像分类或动作识别) 上训练,用于从密集采样的视频帧中提取2D外观特征和3D运动特征。虽然取得了不错的结果,但这些现成的特征提取程序和下游视频字幕在数据域和任务制定方面存在差异。在这样的情况下,使用多个特征提取器进行端到端训练密集的视频帧是计算密集型的,甚至是不可行的。
最近,CLIP BERT 指出连续视频帧中呈现的重复信息对于下游视频和语言任务不是必需的,并提出了一种稀疏采样策略,该策略可以对原始像素输入进行负担得起的端到端训练。
尽管它在视频和语言理解任务中显示出巨大的成功,例如视频问题回答和文本到视频检索,但仍不清楚这些稀疏采样的视频帧是否足以生成丰富的描述性字幕。此外,CLIP BERT利用2D卷积神经网络以及平均池化,该平均池化直接对原始视频帧进行操作以学习视频表示,这可能会丢失按时间顺序描述视觉事件必不可少的时间信息。
在这项工作中,作者的目标是为视频字幕任务找到端到端的解决方案。受最近在计算机视觉中基于Transformer的模型的成功的启发,特别是对于视频理解任务,作者提出了SWIN BERT (如上图所示),一种基于纯Transformer的模型,直接将原始视频帧作为端到端字幕生成的输入。
与以前的方法在固定帧率下利用现成的2D/3D特征提取器不同,作者采用了能够从可变长度的视频帧序列中学习的视频Transformer,而无需针对不同帧率的专门设计。基于这种特定的模型设计,作者研究了有多少视频帧适合视频字幕任务?实验表明,更密集的采样帧 (例如,本文: 64帧,CLIP BERT: 16帧) 可以大大提高字幕性能 (即CIDEr得分)。
最后,为了避免连续视频帧中自然出现的冗余,作者进一步引入了一种可学习的稀疏注意掩码作为正则化器,该正则化器允许模型更多地关注包含更多时空移动的视频帧patch。与先前的模型与预先确定的注意力结构相比,本文的模型可以学习自适应注意力图,以通过更好的视频序列建模来优化任务特定性能的改进。
02
方法
2.1. Model Architecture
上图展示了本文所提出的模型。S WIN BERT将一系列原始视频帧作为输入,然后输出描述输入视频的自然语言描述。S WIN BERT由两个模块组成: 视频Swin Transformer (VidSwin) 和多模态Transformer编码器。首先,作者利用VidSwin从原始视频帧中提取时空视频表示。然后,本文的多模态Transformer编码器将视频表示作为输入,并通过序列到序列 (seq2seq) 生成输出自然语言句子。
Video Swin Transformer
视频理解得益于长期时间的建模。一种简单的方法是堆叠大量帧以捕获远程结构。然而,这将大大增加计算成本。最近,VidSwin被设计为利用视频中固有的时空局部性,并实现了良好的速度-精度权衡。在本文框架的第一个模块中,作者提出使用VidSwin作为视频编码器,将原始视频帧编码为视频特征token。VidSwin接受了动作识别任务的预训练。
给定大小为T×H×W×3的原始视频帧,由T帧组成,每个帧具有H×W×3像素。作者将它们提供给VidSwin,并从VidSwin的最后一个编码器块中提取网格特征。VidSwin的网格特征的size为,其中C为通道尺寸。通过本文的通用设计,它可以从原始视频帧进行端到端的视频字幕训练。此外,得益于Transformer结构的灵活性,本文的模型能够处理可变长度的视频序列。
Multimodal Transformer Encoder
在本文的第二个模块中,作者使用Transformer编码器来生成自然语言描述。具体来说,它具有文本和视觉模态输入,包括标记化的字幕描述和从VidSwin计算的视频token。然后,模型执行seq2seq生成以形成自然语言句子。与图像字幕工作相同,作者使用causal self-attention mask,其中字幕token只能关注现有的输出token。这有效地模拟了单向seq2seq生成过程。此外,所有文本token都对视频token给予了充分的关注。
2.2. Learning with Sparse Attention Mask
通常,跨多个视频段的较长输入包含更多信息。但是,注意力的计算需求与输入长度成二次方的关系,这限制了输入帧的数量。另一方面,考虑到视频属性的本质,具有连续视频帧的密度采样方案包含冗余且可能不相关的信息,这可能会损害性能。因此,在本文提出的框架中,如何有效地对长序列的视频token进行建模是一个独特的挑战。作者通过在多模态Transformer编码器中引入可学习的稀疏注意掩码作为正则化器来解决此问题。
如上图所示,Transformer的输入分为两部分: N个word token和M个视频token。在本文的实验中,整个注意力mask可以被定义为大小 (N M)×(N M),其中N是50,。将V表示为大小为M × M的可学习注意力mask,以控制视频token之间的注意力。为了更准确的视频字幕,模型允许文本token不受限制地关注,以便它们可以利用视觉细节。为了解决视频token之间的冗余,作者通过以下方式在V上施加稀疏约束:
其中 λ 是正则化超参数,是可学习注意力mask V的激活值。在学习过程中,稀疏性约束将正则化模型训练,以发现视频序列的基础结构。通过稀疏注意,该模型学习通过减少无意义连接的可能性来加强不同token之间最重要的关系,同时更多地关注包含丰富时空信息的视频token。通过这种方式,该模型可以生成更具表现力和描述性的自然语言句子。
在本文的实现中,作者将sigmoid激活函数应用于稀疏注意mask。因此,稀疏注意mask由0和1之间的连续激活组成。此外,也可以通过简单地使用0.5的阈值来实现二进制mask。
Training
作者通过在多模态Transformer编码器上应用Masked Language Modeling (),以端到端的方式训练S WIN BERT。作者通过用预定义的特殊token [MASK] 替换它们来mask一定比例的单词token。
然后,要求多模态Transformer预测被mask的单词。为了预测mask单词token,模型将不得不求助于视频token和其他单词token。这有助于跨模态表示学习,以帮助在视频上下文中建立字幕描述的基础。此外,本文将提出的稀疏性约束应用于可学习注意mask,以增强视频token序列的建模。
综上所述,本文的损失函数包括和,作者通过简单地最小化它们的和来训练S WIN BERT。
Inference
在推理过程中,本文的模型将视频序列作为输入 (单个视觉模态),并输出自然语言句子。作者以自回归的方式生成输出句子。换句话说,本文的模型一次生成一个单词token,将先前生成的token用作多模态Transformer编码器的输入,直到模型输出预定义的结束token [EOS]或达到最大输出长度。
03
实验
上表展示了本文方法在MSVD和MSRVTT上的实验结果。
上表展示了本文方法在其他数据集上和SOTA方法的对比。
上表展示了不同采样帧数的实验结果。
上表展示了本文稀疏注意力的消融实验结果。
上表展示了不同维度attention的实验结果。
上表展示了soft和hard attention mask的实验结果。
上表展示了帧数和数据集迁移的实验结果。
上图展示了不同位置的token attention的实验结果。
上图展示了本文模型在施加正则化约束和不施加正则化约束的训练结果。
上图展示了本文方法的定性实验结果。
04
总结
在本文中,作者提出了一个端到端是VIdeo Captioning的方式,以前的方法都是用离线的特征,本文采用了预训练的Video Swin Transformer来进行特征的提取,然后用随机初始化的多模态Transformer进行生成任务,整个过程进行端到端的优化。
作者发现对于caption任务,采样帧数的提高能够提升模型的性能,因此作者提高了帧数,为了解决帧数提高带来的计算量提升的问题,作者在训练的时候进行了稀疏的attention mask约束,从而达到比较低的计算量。