[论文阅读]Video Swin Transformer
Overall Architecture
Fig2展示了Video Swin Transformer的tiny版本。输入视频的大小为\(T\times H\times W \times 3\),共\(T\)帧,每帧包含\(H\times W \times 3\)个像素。在Video Swin Transformer中将大小为\(2\times4\times4\times3\)的3D patch作为一个token,所以分隔层共包含\(\frac{T}{2}\times\frac{H}{4}\times\frac{W}{4}\)个3D token,每个token中包含一个96维的特征。然后经过一个线性层将特征投影到任意维度\(C\)。Patch合并层会合并相邻\(2\times2\)的patch,并经过线性层连接起来,维度减至原来的一半。
3D Shifted Window based MSA Module
Multi-head self- attention on non-overlapping 3D windows
给定一个包含\(T^\prime\times H^\prime\times W^\prime\)个3D token的视频,3D窗口大小为\(P\times M\times M\),则被分割为\(\lceil\frac{T^\prime}{P}\rceil\times\lceil\frac{H^\prime}{M}\rceil\times\lceil\frac{W^\prime}{M}\rceil\)个互不重叠的3D窗口。
3D Shifted Windows
由于多头注意力机制应用在每个不重叠的3D窗口内,不同窗口之间缺乏联系,这可能会限制架构的表示能力。因此,将Swin Transformer中滑动的2D窗口扩展到3D,引入跨窗口联系,同时保持给予自注意力的非重叠窗口的计算效率。
给定输入的3D token的数量为\(T^\prime\times H^\prime\times W^\prime\),每个3D窗口的大小为\(P\times M \times M\),对于连续的两层,第一层中的自注意力模块采用常规的窗口分割策略,得到\(\lceil\frac{T^\prime}{P}\rceil\times\lceil\frac{H^\prime}{M}\rceil\times\lceil\frac{W^\prime}{M}\rceil\)个不重叠的3D窗口。对于第二层中的自注意力模块 ,窗口分割根据前一层的自注意力模块沿时间、高度和宽度坐标移动\((\frac{T}{2}\times\frac{H}{4}\times\frac{W}{4})\)个token。
Fig3解释了这一过程。虽然窗口的数量增加了,但是根据Swin Transformer的设置,最终的计算窗口数量仍然是8.
采用滑动窗口的分割方法,计算两个连续的Video Swin Transformer块: \[ \begin{array}{l} \hat{\mathbf{z}}^l=\operatorname{3DW-MSA}(\operatorname{LN}(\mathbf{z}^{l-1}))+\mathbf{z}^{l-1},\\ \mathbf{z}^l=\operatorname{FFN}(\operatorname{LN}(\hat{\mathbf{z}}^l))+\mathbf{z}^l,\\ \hat{\mathbf{z}}^{l+1}=\operatorname{3DSW-MSA}(\operatorname{LN}(\mathbf{z}^{l}))+\mathbf{z}^{l},\\ \mathbf{z}^{l+1}=\operatorname{FFN}(\operatorname{LN}(\hat{\mathbf{z}}^{l+1}))+\mathbf{z}^{l+1}. \end{array} \] 其中\(\hat{\mathbf{z}}^l,\mathbf{z}^l\)分别代表3D(S)W-MSA模块和FFN模块的输出特征。
3D Relative Position Bias
在自注意力头引入3D相对位置偏差\(B\in\mathbb{R}^{P^2\times M^2\times M^2}\): \[\operatorname{Attention}(Q,K,V)=\operatorname{SoftMax}(QK^T/\sqrt{d}+B)V\]