self-attention、non local networks与GCN

self-attention、non local networks和GCN都可以用下面的公式(1)来表征[2]

\[y_i = \frac{1}{C(x)} \sum_{\forall{j}} {f(x_i, x_j)g(x_j)}\]

其中\(x_i \in \mathbb{R}^{fin \times 1}\)是\(i\)这个node的特征

\(f(x_i, x_j) \in \mathbb{R}^0\),度量两个node之间的相似度

\(C(x) \in \mathbb{R^{0}}\),归一化

\(g(x) \in \mathbb{R^{fout \times 1}}\),空间变换

\(y_i \in \mathbb{R^{fout \times 1}}\),输出特征的shape

\(fin\)为输入特征通道数,\(fout\)为输出特征通道数

比如self attention里面
\[g(x_j) = W_g x_j\] \[f(x_i,x_j) = x_{i}^T W_\theta^T W_\phi x_j\]

其中

\[W_g, W_\theta, W_\phi \in \mathbb{R^{fout \times fin}}\]
在non local networks里
\[f(x_i,x_j) = e^{x_{i}^T W_\theta^T W_\phi x_j}\]
在GCN里

\(f(x_i,x_j)\)定义为\(i\)和\(j\)两个node之间是否有边,1表示有边相连,0表示没有边

CNN

CNN可以用如下公式(2)表征(为了方便讨论,假设为一维时序数据)

\[y_i = \sum_{j=0}^{L-1} W_j x_{i+j-\frac{L}{2}}\]

其中

\(L\)为卷积核长度

\[W_j \in \mathbb{R^{fout \times fin}}\] \[y_i \in \mathbb{R^{fout \times 1}}\]

\[g_j(x_{i+j-\frac{L}{2}}) = W_j x_{i+j-\frac{L}{2}}\]

则由公式(2)可得到公式(3)

\[y_i = \sum_{j=0}^{L-1} g_j(x_{i+j-\frac{L}{2}})\]
区别与联系

对比公式(1)和公式(3)

\[y_i = \frac{1}{C(x)} \sum_{\forall{j}} {f(x_i, x_j)g(x_j)}\] \[y_i = \sum_{j=0}^{L-1} g_j(x_{i+j-\frac{L}{2}})\]
每个node的空间变换

(1)和(3)都会对node做空间变换即\(g_j(x_{i+j-\frac{L}{2}})\)和\(g(x_j)\)

但是(1)中每个点的空间变换是相同的,而(3)中不同点做的空间变换不同

对node与node之间相关性的建模

(3)中通过\(f(x_i, x_j)\)对每个空间变换之后的特征进行加权,\(f(x_i, x_j)\)(即self-attention)显式地对node与node之间的相关性进行了建模,而且这个相关性相对输入而言是动态的。

(1)中虽然没显式地针对node与node之间地相关性进行建模,但是每个node的空间变换不相同,这个不相同隐式地包含了点与点之间的相关性,不过这个相关性相对输入而言是静态的,即无论输入怎么变,点与点之间的相关性一经训练完成就再也不会变化。

这个有点像BN和SENet,BN中的\(\gamma\)对每个通道有一个加权,SENet会通过SE模块去学每个通道的加权(论文中叫attention),BN中的\(\gamma\)是静态的,训练结束后每个通道的加权不会根据输入的变化而变化,而SENet中的attention是动态的,每个通道上的attention会因为输入不同而发生变化。

局部与全局

(1)中\(y_i\)取决于上一层所有的node,而(3)中\(y_i\)仅取决于\(i\)附近的node(卷积核的size决定其范围)

融合

公式(1)和(3)既有相似又有区别,那么很直接的一个想法是能否对它们的特性做排列组合,得到更好的模型呢?

比如,结合(3)中的局部性和(1)中的self-attention。

\[y_i = \sum_{j=0}^{L-1} {f(x_i, x_j)g(x_j)}\]

再比如,结合(3)中不同点之间不共享空间变换这个特点和(1)中的self-attention。

\[y_i = \frac{1}{C(x)} \sum_{\forall{j}} {f(x_i, x_j)g_j(x_j)}\]

上述两个直接的排列组合都能在[3]这篇论文里看到应用。


Reference

[1]Bello, Irwan, et al. “Attention augmented convolutional networks.”Proceedings of the IEEE International Conference on Computer Vision. 2019.

[2]Wang, Xiaolong, et al. “Non-local neural networks.”Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.

[3]Ramachandran, Prajit, et al. “Stand-alone self-attention in vision models.”arXiv preprint arXiv:1906.05909(2019).