论文地址:https://arxiv.org/abs/2102.00719
1 VTN的作用
1.1 提出问题
-
在视频任务下,传统卷积方法中为了更好的提取时序特征,一般采用3D的卷积方式,其中的计算量不管怎么改进也避免不了计算量大的问题。
-
Transformers一开始用于具有连续性的语言模型上,在视频任务中由于视频帧也具有连续性,所以也同样可以使用。但有个问题是,基于transformer的模型自注意操作每层复杂度为 O ( n 2 ) O(n^{2}) O(n2)(n为序列长度),因此在处理长视频序列时受到限制。
1.2 解决方法
-
抛弃3D网络。使用最先进的2D架构来学习空间特征表示,并在随后的数据流中添加时间信息,在结果特征之上使用注意机制。
并且输入只有RGB视频帧
-
VTN的时间处理组件是基于Longformer,可以处理长视频序列。
Longformer通过引入复杂度为 O ( n ) O(n) O(n) 的注意机制实现了冗长的序列处理。这种注意机制结合了局部上下文的自我注意(通过滑动窗口执行)和特定于任务的全局注意。
2 VTN的结构
上图为VTN结构。连接三个模块:
- 二维空间特征提取模型(空间backbone)
- 基于时间注意力的编码器(该工作中使用Longformer),它使用特征向量 ϕ i \phi_{i} ϕi 和位置编码的结合。
- 分类器 MLP head,它通过 [ C L S ] [CLS] [CLS] 指令处理得到最后的类别预测。
head是获取网络输出内容的网络,利用之前提取的特征,head利用这些特征,做出预测。
2.1 空间backbone
- 特点:可以是任何用于2D图像的网络,不论深浅、是否为预训练、基于卷积还是transformer、权重固定还是在训练中学习
- 论文中使用的backbone
- ViT-B-VTN: 在ImageNet-21K上预训练, 12层,12个head
- DeiT-B/BD/Ti-VTN:在ImageNet上预训练,12层,12个head
- R50/101-VTN:在ImageNet上预训练,标准的2D ResNet-50 和 ResNet-101 网络
2.2 基于时间注意力的编码器
本文作者使用Longformer模块在推理过程中一次性处理整个视频。
2.3 分类器 MLP head
MLP head包含两个线性层与者之间存在的一个GELU激活函数和Dropout。输入标记表示首先使用层归一化进行处理。
3 实验结果分析
3.1 不同backbone变体
- ViT-B-VTN是性能最好的模型,top-1准确率为78.6%,top-5准确率为93.7%。
- 预训练数据集很重要。使用相同的ViT backbone,只是在DeiT(在ImageNet上预训练)和ViT(在ImageNet-21K上预训练)在结果上得到了改善。
3.2 不同Longformer深度
1、3、6、12层Longformer的表现相差不大,可能是Kinetics-400数据集的视频只有10s,相对较短。
3.3 不同Longformer位置嵌入的方式
- 没有任何位置嵌入的版本比固定和学习版本的效果稍好。并且打乱输入帧后效果更好。
- 这也可能与Kinetics-400数据集相对较短有关,作者认为这可能意味着该数据集主要是一个静态框架,基于外观的分类问题而不是一个运动问题。
3.4 不同帧数和每帧的占用时间
top-1和top-5精度相似,说明VTN不受这些超参数的影响。
3.5 微调2D backbone
微调2D backbone 使Kinetics-400数据集中top1的准确率提升了7%
3.6 与其他方法的比较
- 与目前最先进的SlowFast模型相比,单层的ViT-B-VTN模型就几乎实现了相同的结果,但完成一个周期更快,所需的时间更少。**端到端训练累计快了16倍。**由于采用了完整的视频推理方法,验证墙运行时间也缩短了5倍。
- 本文的方法达到79.8%的top-1精度,与未进行此类增强的训练的相同模型相比,提高了1.2%。
- 增强训练需要10个以上的周期,但不会影响训练墙的运行时间。
4【补充知识】Longformer
论文地址:https://arxiv.org/abs/2004.05150
4.1 Longformer解决的问题
-
问题
传统Tranformer-based模型在处理长文本时有着天然的劣势。因为传统模型采用的是“全连接”型的attention机制,即每一个token都要与其他所有token进行交互。其attention复杂度高达 O ( n 2 ) O(n^{2}) O(n2) 。
此前的解决办法是将长文切分为若干个较短的文本序列,然后逐个处理。这就导致不同的文本序列之间无法进行交互,因而必然存在大量信息损失。
当然,我们也可以通过添加一些其他机制来加强这种文本序列之间的交互。但这种新增机制实现起来通常比较复杂,而且往往是特定任务的,通用性不强。
-
解决方法
Longformer改进了Transformer的传统attention机制:对于每一个token,只对固定窗口大小的附近token计算local attention,并结合具体任务,计算少量的global attention。该方法的优点包括:
4.2 模型
作者共提出了三种新的attention pattern,来降低传统self-attention的复杂度,分别是滑窗机制、膨胀滑窗机制、融合全局信息的滑窗机制。下图展示了传统attention与这三种attention pattern的示意图。
- 滑窗机制(Sliding window): 对于每一个token,只对其附近的w个token计算attention计算复杂度与文本序列长度 n n n成线性关系,为 O ( w ∗ n ) O(w*n) O(w∗n)。作者认为,根据应用任务的不同可以对Transformer每一层施以不同的窗口大小 w w w,对模型表示能力可能有潜在帮助。
- 膨胀滑窗机制(Dilated sliding window): 在对每一个进行token编码时,普通滑窗机制只能考虑到长度为 w w w的上下文。作者进一步提出膨胀滑窗机制,在不增加计算负荷的前提下,拓宽模型“视场”。其做法借鉴了空洞卷积的思想。如下图所示,在滑动窗口中,被attend到的两个相邻token之间会存在大小为 d d d的间隙。当transformer的层数为 l l l时,则视场范围可达到 l ∗ d ∗ w l*d*w l∗d∗w。实验表明,由于考虑了更加全面的上下文信息,膨胀滑窗机制比普通的滑窗机制表现更佳。
- 融合全局信息的滑窗机制(Global+sliding window): 在Longformer中,作者希望能够根据具体任务的不同,在local attention的基础上添加少量的global attention。比如,在分类任务上就会在 [ C L S ] [CLS] [CLS] 处添加一个global attention,而在QA任务上会对question中的所有token添加global attention。如上图所示,对于添加了global attention的token,我们对其编码时要对整个序列做attention。并且,编码其他所有token时,也都要attend到它。