ARMAConv
论文名称: Graph Neural Networks with Convolutional ARMA Filters
论文地址: https://arxiv.org/pdf/1901.01343.pdf
在本文介绍一下auto-regressive moving average (ARMA) filter, 它提供more flexible frequency response, 对噪声更加稳健,能够捕捉全局的图结构。它会使得训练过程更加高效, localized in the node space, 能够迁移到新图进行测试推理。我们在谱域对ARMA进行分析,可以用于: 图节点半监督分类、 graph signal classification(图特征分类)、图分类和图回归。
1.Introduction
GNN将节点特征和邻居图特征组合一起,学习节点的表示,节点表示可以用于标签分类、产生图的Embedding,用于图的分类和回归。
基于谱域的研究,主要是基于非线性过滤器将节点的特征映射到新的空间中去。为了降低谱域分解、映射为频域的复杂度,通常使用低阶多项式作为图过滤器,这个低阶多项式可以在节点域学习得到。多项式过滤器对邻居的节点特征进行移动加权平均,允许分布式执行,例如:Chebyshev polynomials and Lanczos iterations. 多项式过滤器有一个局限性,由于加权平均,不能刻画frequency response中的剧烈变化。如果有必要使用high degree多项式,会出现计算复杂度升高,容易出现过拟合的情况,对于节点特征和图的结果特征敏感。
在本文中,受多项式过滤器的启发,提出Auto-Regressive Moving Average filters (ARMA) 过滤器,解决了以上问题。ARMA layer是 polynomial filters的泛化,由于弹性的设计,提高了模型的表达能力。使用很少的参数,就能捕捉图的全局结构,解决了high-order polynomial filters不足。
ARMA filters 不能localized in node space 且需要矩阵求逆,这对于GNN不可接受的。为了解决这个问题,我们使得 ARMA layer依赖递归公式,使得计算效率得到提升,而且适合稀疏向量执行。这个过滤器不是在Laplacian推导出的Fourier space学习的,而是基于节点空间 localized in the node space, 独立于图的结构。这使得我们的GNN能够在不知道图拓扑结构的情况下,进行inductive inference tasks。
2.Background: graph spectral filtering
我们假设图有
M
M
M个节点,对称邻接矩阵为
A
∈
R
M
×
M
\mathbf{A} \in \mathbb{R}^{M \times M}
A∈RM×M, graph signal (所有样本点特征)
X
∈
R
M
×
F
\mathbf{X} \in \mathbb{R}^{M \times F}
X∈RM×F。标准化后图的Laplacian矩阵:
L
=
I
M
−
D
−
1
/
2
A
D
−
1
/
2
\mathbf{L}=\mathbf{I}_{M}-\mathbf{D}^{-1 / 2} \mathbf{A} \mathbf{D}^{-1 / 2}
L=IM−D−1/2AD−1/2, 其中,
D
\mathbf{D}
D为度矩阵,谱分解:
L
=
∑
m
=
1
M
λ
m
u
m
u
m
T
\mathbf{L}=\sum_{m=1}^{M} \lambda_{m} \mathbf{u}_{m} \mathbf{u}_{m}^{T}
L=∑m=1MλmumumT。graph过滤器是指根据每个特征值
λ
m
\lambda_m
λm的frequency response
h
h
h,以
L
\mathbf{L}
L特征向量为基础,对
X
\mathbf{X}
X进行调整。graph signal调整如下:
X
‾
=
∑
m
=
1
M
h
(
λ
m
)
u
m
u
m
T
X
=
=
U
diag
[
h
(
λ
1
)
,
…
,
h
(
λ
M
)
]
U
T
X
(1)
\begin{aligned} \overline{\mathbf{X}} &=\sum_{m=1}^{M} h\left(\lambda_{m}\right) \mathbf{u}_{m} \mathbf{u}_{m}^{T} \mathbf{X}=\\ &=\mathbf{U} \operatorname{diag}\left[h\left(\lambda_{1}\right), \ldots, h\left(\lambda_{M}\right)\right] \mathbf{U}^{T} \mathbf{X} \end{aligned}\tag{1}
X=m=1∑Mh(λm)umumTX==Udiag[h(λ1),…,h(λM)]UTX(1)
这个公式受到Bruna相关工作的启发,利用神经网络进行图的谱卷积操作。他们的GNN是一个端到端的工作,过滤器为
h
=
B
c
h=\mathbf{Bc}
h=Bc, 其中,
B
∈
R
M
×
K
\mathbf{B} \in \mathbb{R}^{M \times K}
B∈RM×K是cubic B-spline basis。
c ∈ R K \mathbf{c} \in \mathbb{R}^{K} c∈RK是控制参数。但是,这样的过滤器不是局部的,因为特征向量上的完整投影产生无限长度的路径,并且过滤器考虑了每个节点与整个图的交互,而不是那些限于节点邻域。这个传统的卷积过滤器形成鲜明的对比, Henaff et al提出谱过滤器,实现spatial localization。但是,Eq.(1)谱过滤器存在一些问题:(1)计算的复杂性,不但是 L \mathbf{L} L特征分解的复杂度,而且两个 U \mathbf{U} U乘积复杂度也较高。需要注意的是,当 L \mathbf{L} L是稀疏的,公式(1)中的 U \mathbf{U} U不会发生变化。(2)这种谱卷积依赖于特定Laplacian spectrum, 他们不能迁移到另一个结构。因此,当图的结构发生改变时,这种spectral GNN不能用于图的分类和图回归。
2.1. GNNs based on polynomial filters and limitations
filter response
h
(
λ
)
h(\lambda)
h(λ)可以通过
K
K
K阶的多项式进行估计:
h
P
O
L
Y
(
λ
)
=
∑
k
=
0
K
w
k
λ
k
(2)
h_{\mathrm{POLY}}(\lambda)=\sum_{k=0}^{K} w_{k} \lambda^{k}\tag{2}
hPOLY(λ)=k=0∑Kwkλk(2)
它是用来对graph signal进行移动平均。因为这些过滤器没有进行特征值分解和它们的参数是独立于Laplacian spectrum,克服谱表达式不足。它的每个节点输出是
K
-hop
K\text{-hop}
K-hop邻居的线性组合。
多项式的 K K K通常是较小数字,而且独立于图节点的个数 M M M.
为了在节点空间中表达多项式滤波器,我们首先回顾任何可对角化矩阵的 k 次方,例如,Laplacian可以用特征值的幂次方表示,
L
k
=
U
diag
[
λ
1
k
,
…
,
λ
M
k
]
U
T
\mathbf{L}^{k}=\mathbf{U} \operatorname{diag}\left[\lambda_{1}^{k}, \ldots, \lambda_{M}^{k}\right] \mathbf{U}^{T}
Lk=Udiag[λ1k,…,λMk]UT, 接下来,过滤器操作表示为:
X
‾
=
(
w
0
I
+
w
1
L
+
w
2
L
2
+
⋯
+
w
K
L
K
)
X
=
=
∑
k
=
0
K
w
k
L
k
X
(3)
\begin{aligned} \overline{\mathbf{X}} &=\left(w_{0} \mathbf{I}+w_{1} \mathbf{L}+w_{2} \mathbf{L}^{2}+\cdots+w_{K} \mathbf{L}^{K}\right) \mathbf{X}=\\ &=\sum_{k=0}^{K} w_{k} \mathbf{L}^{k} \mathbf{X} \end{aligned}\tag{3}
X=(w0I+w1L+w2L2+⋯+wKLK)X==k=0∑KwkLkX(3)
Eq.(2)和(3)是常用的多项式过滤器。在现有的多项式类别中,切比雪夫多项式经常用于信号处理,因为它们会衰减截止频率周围的不需要的振荡(Shuman 等人,2011),在我们的例子中,它是拉普拉斯算子的特征值。 快速局部化 GNN 滤波器可以通过 Chebyshev 展开逼近所需的 filter response
T
k
(
x
)
=
2
x
T
k
−
1
(
x
)
−
T
k
−
2
(
x
)
T_{k}(x)=2 x T_{k-1}(x)-T_{k-2}(x)
Tk(x)=2xTk−1(x)−Tk−2(x) , 从而产生执行过滤操作的层:
X
‾
=
σ
(
∑
k
=
0
K
−
1
T
k
(
L
~
)
X
W
k
)
(4)
\overline{\mathbf{X}}=\sigma\left(\sum_{k=0}^{K-1} T_{k}(\tilde{\mathbf{L}}) \mathbf{X} \mathbf{W}_{k}\right)\tag{4}
X=σ(k=0∑K−1Tk(L~)XWk)(4)
其中,
L
~
=
2
L
/
λ
max
−
I
M
\tilde{\mathbf{L}}=2 \mathbf{L} / \lambda_{\max }-\mathbf{I}_{M}
L~=2L/λmax−IM,
σ
(
⋅
)
\sigma(\cdot)
σ(⋅)是非线性激活函数,
W
k
∈
R
F
in
×
F
out
\mathbf{W}_{k} \in \mathbb{R}^{F_{\text {in }} \times F_{\text {out }}}
Wk∈RFin ×Fout 是
k
k
k trainable weight matrices, 可以将节点特征从
R
in
F
\mathbb{R}^F_{\text{in}}
RinF到
R
out
F
\mathbb{R}^F_{\text{out}}
RoutF.
输出的 k -degree k\text{-degree} k-degree多项式过滤器是每个输入邻居的线性组合。因此,对于超过 k -hop k\text{-hop} k-hop的邻居不会对当前filtering operation输出产生影响,为了捕捉更深层次的网络结构,需要采用更大的多项式。但是,high-degree多项式容易过拟合,这会使得模型对噪声敏感,泛化能力变差,训练和推理的复杂度增加。最后,由于多项式非常平滑,它们无法对急剧变化的filter responses进行建模。
GCN采用一阶多项式过滤器,采用切比雪夫过滤器Eq.(4)的简化版,考虑
K
=
1
K=1
K=1,
W
=
W
0
=
−
W
1
\mathbf{W}=\mathbf{W}_{0}=-\mathbf{W}_{1}
W=W0=−W1
X
‾
=
σ
(
A
^
X
W
)
(5)
\overline{\mathbf{X}}=\sigma(\hat{\mathbf{A}} \mathbf{X} \mathbf{W})\tag{5}
X=σ(A^XW)(5)
L
~
\tilde{\mathbf{L}}
L~被
A
^
=
D
~
−
1
/
2
A
~
D
~
−
1
/
2
\hat{\mathbf{A}}=\tilde{\mathbf{D}}^{-1 / 2} \tilde{\mathbf{A}} \tilde{\mathbf{D}}^{-1 / 2}
A^=D~−1/2A~D~−1/2代替,
A
~
=
A
+
γ
I
M
\tilde{\mathbf{A}}=\mathbf{A}+\gamma \mathbf{I}_{M}
A~=A+γIM。修改后的邻接矩阵
A
^
\hat{\mathbf{A}}
A^包括self-loops, 弥补了多项式中0阶的多项式移除,使得节点自身特征得到保存。高阶邻居可以通过多层GCN layers可以到达。通过Chebyshev filters的高阶多项式减少过拟合,降低计算的复杂度。但另一方面,GCN layer使用Laplacian smoothing,多个卷积层后会使得节点特征变得平滑,丢失原始特征的表达。
3.Rational filters for graph signals
得益于合理的设计,ARMA 滤波器可以很好地逼近任何所需的filter response
h
(
λ
)
h(\lambda)
h(λ),与多项式滤波器相比,它可以对更多种类的滤波器形状进行建模。
K
K
K阶
ARMA
\text{ARMA}
ARMA,
ARMA
K
\text{ARMA}_K
ARMAK计算方式如下:
h
A
R
M
A
K
(
λ
)
=
∑
k
=
0
K
−
1
p
k
λ
k
1
+
∑
k
=
1
K
q
k
λ
k
(6)
h_{\mathrm{ARMA}_{\mathrm{K}}}(\lambda)=\frac{\sum_{k=0}^{K-1} p_{k} \lambda^{k}}{1+\sum_{k=1}^{K} q_{k} \lambda^{k}}\tag{6}
hARMAK(λ)=1+∑k=1Kqkλk∑k=0K−1pkλk(6)
它在节点空间中,进行如下转换:
X
‾
=
(
I
+
∑
k
=
1
K
q
k
L
k
)
−
1
(
∑
k
=
0
K
−
1
p
k
L
k
)
X
(7)
\overline{\mathbf{X}}=\left(\mathbf{I}+\sum_{k=1}^{K} q_{k} \mathbf{L}^{k}\right)^{-1}\left(\sum_{k=0}^{K-1} p_{k} \mathbf{L}^{k}\right) \mathbf{X}\tag{7}
X=(I+k=1∑KqkLk)−1(k=0∑K−1pkLk)X(7)
如果
q
k
=
0
q_k=0
qk=0, 对于每个
k
k
k, 恢复为之前的polynomial filter, 它可以看作模型的
MA
\text{MA}
MA项。增加
AR
\text{AR}
AR可以使得模型对噪声更加稳健,能够获取更高阶的节点特征。相对于polynomial filter with the same degree, 这种长依赖有利于获取更加充分的图结构。
Eq.(7)求逆的计算复杂,而且产生dense matrix不利于稀疏矩阵在GNN中的应用。我们使用神经网络避免求逆。具体来说,我们使用
ARMA
1
\text{ARMA}_1
ARMA1 filter, 直到它收敛,一阶递归形式如下:
X
‾
(
t
+
1
)
=
a
M
X
‾
(
t
)
+
b
X
(8)
\overline{\mathbf{X}}^{(t+1)}=a \mathbf{M} \overline{\mathbf{X}}^{(t)}+b \mathbf{X}\tag{8}
X(t+1)=aMX(t)+bX(8)
其中:
M
=
1
2
(
λ
max
−
λ
min
)
I
−
L
(9)
\mathbf{M}=\frac{1}{2}\left(\lambda_{\max }-\lambda_{\min }\right) \mathbf{I}-\mathbf{L}\tag{9}
M=21(λmax−λmin)I−L(9)
Eq.(8)递归采用low-pass filter在graph signal,这个等价于在图上随机游走进行标签传播和Personalized Page Rank传播。
我们对Eq.(8)进行收敛计算:
X
‾
=
lim
t
→
∞
[
(
a
M
)
t
X
‾
(
0
)
+
b
∑
i
=
0
t
(
a
M
)
i
X
]
(10)
\overline{\mathbf{X}}=\lim _{t \rightarrow \infty}\left[(a \mathbf{M})^{t} \overline{\mathbf{X}}^{(0)}+b \sum_{i=0}^{t}(a \mathbf{M})^{i} \mathbf{X}\right]\tag{10}
X=t→∞lim[(aM)tX(0)+bi=0∑t(aM)iX](10)
M
\mathbf{M}
M和
L
\mathbf{L}
L的特征向量是相同的,它们的特征值存在如下关系:
μ
m
=
(
λ
max
−
λ
min
)
/
2
−
λ
m
\mu_{m}=\left(\lambda_{\max }-\lambda_{\min }\right) / 2-\lambda_{m}
μm=(λmax−λmin)/2−λm,其中,
μ
m
\mu_m
μm和
λ
m
\lambda_m
λm分别是
M
\mathbf{M}
M和
L
\mathbf{L}
L的
m
-th
m\text{-th}
m-th的特征值。因为在Eq.(10)第一项中,
μ
m
∈
[
−
1
,
1
]
\mu_{m} \in[-1,1]
μm∈[−1,1],
∣
a
∣
<
1
|a|<1
∣a∣<1,当
t
→
∞
t \rightarrow \infty
t→∞时,第一项会趋于0, 与初始化向量
X
‾
(
0
)
\overline{\mathbf{X}}^{(0)}
X(0)无关。第二项,
b
∑
i
=
0
t
(
a
M
)
i
b \sum_{i=0}^{t}(a \mathbf{M})^{i}
b∑i=0t(aM)i是一个几何级数,收敛于
b
(
I
−
a
M
)
−
1
b(\mathbf{I}-a \mathbf{M})^{-1}
b(I−aM)−1,它的特征值是
b
/
(
1
−
a
μ
m
)
b /\left(1-a \mu_{m}\right)
b/(1−aμm)。
ARMA
1
\text{ARMA}_1
ARMA1 filter的frequency response如下:
h
A
R
M
A
1
(
μ
m
)
=
b
1
−
a
μ
m
(11)
h_{\mathrm{ARMA}_{1}}\left(\mu_{m}\right)=\frac{b}{1-a \mu_{m}}\tag{11}
hARMA1(μm)=1−aμmb(11)
我们对
K
K
K个
ARMA
1
\text{ARMA}_1
ARMA1 filters进行求和以实现Eq.(7)。过滤器的操作如下:
X
‾
=
∑
k
=
1
K
∑
m
=
1
M
b
k
1
−
a
k
μ
m
u
m
u
m
T
X
(12)
\overline{\mathbf{X}}=\sum_{k=1}^{K} \sum_{m=1}^{M} \frac{b_{k}}{1-a_{k} \mu_{m}} \mathbf{u}_{m} \mathbf{u}_{m}^{T} \mathbf{X}\tag{12}
X=k=1∑Km=1∑M1−akμmbkumumTX(12)
其中,
h
A
R
M
A
K
(
μ
m
)
=
∑
k
=
1
K
b
k
1
−
a
k
μ
m
(13)
h_{\mathrm{ARMA}_{K}}\left(\mu_{m}\right)=\sum_{k=1}^{K} \frac{b_{k}}{1-a_{k} \mu_{m}}\tag{13}
hARMAK(μm)=k=1∑K1−akμmbk(13)
通过设置某些系数为0可以实现Eq.(6)中不同阶数
(
≤
K
)
(\leq K)
(≤K)分子和分母。通过将所有的
q
k
q_k
qk设置为0, 可以实现polynomial filter。
4. The ARMA neural network layer
Eq.(8)中过滤器的系数 a a a和 b b b可以通过线性回归进行优化,得到最佳filter response h ∗ ( λ ) h^*(\lambda) h∗(λ), 但需要提供先验知识。我们提供端到端的学习,引进非线性以提高filter response的表达能力。
提供神经网络
ARMA
1
\text{ARMA}_1
ARMA1, 使用Graph Convolutional Skip (GCS) layer, 迭代更新Eq.(8), GCS定义如下:
X
‾
(
t
+
1
)
=
σ
(
L
~
X
‾
(
t
)
W
+
X
V
)
(14)
\overline{\mathbf{X}}^{(t+1)}=\sigma\left(\tilde{\mathbf{L}} \overline{\mathbf{X}}^{(t)} \mathbf{W}+\mathbf{X} \mathbf{V}\right)\tag{14}
X(t+1)=σ(L~X(t)W+XV)(14)
其中
σ
(
⋅
)
\sigma(\cdot)
σ(⋅)是非线性激活函数,
X
\mathbf{X}
X是节点的初始特征,
W
∈
R
F
in
×
F
out
\mathbf{W} \in \mathbb{R}^{F_{\text {in }} \times F_{\text {out }}}
W∈RFin ×Fout 和
V
∈
R
F
in
×
F
out
\mathbf{V} \in \mathbb{R}^{F_{\text {in }} \times F_{\text {out }}}
V∈RFin ×Fout 是训练的参数。通过设置Eq.(9)中的
λ
min
=
0
\lambda_{\text{min}}=0
λmin=0和
λ
max
=
2
\lambda_{\text{max}}=2
λmax=2, 然后得到
L
~
=
M
\tilde{\mathbf{L}}=\mathbf{M}
L~=M。 因为
L
∈
[
1
,
2
]
\mathbf{L}\in[1,2]
L∈[1,2], 这是简化版。不同层之间共享参数。
每个GCS layer在节点空间中是localized ,每个过滤操作以来与邻居节点的变化。计算的复杂度。每个GCS layer计算的复杂度与边的数量是存在线性的关系。对公式Eq.(14)进行迭代,直到收敛,得到 ARMA 1 \text{ARMA}_1 ARMA1 filter, ∥ X ‾ ( T + 1 ) − X ‾ ( T ) ∥ < ϵ \left\|\overline{\mathbf{X}}^{(T+1)}-\overline{\mathbf{X}}^{(T)}\right\|<\epsilon ∥∥∥X(T+1)−X(T)∥∥∥<ϵ,其中 ϵ \epsilon ϵ是非常小的正数。保证Eq.(14)在迭代的过程中进行收敛,需要满足Theorem 1.
def forward(self, x: Tensor, edge_index: Adj,
edge_weight: OptTensor = None) -> Tensor:
""""""
if isinstance(edge_index, Tensor):
edge_index, edge_weight = gcn_norm( # yapf: disable
edge_index, edge_weight, x.size(self.node_dim),
add_self_loops=False, dtype=x.dtype)
elif isinstance(edge_index, SparseTensor):
edge_index = gcn_norm( # yapf: disable
edge_index, edge_weight, x.size(self.node_dim),
add_self_loops=False, dtype=x.dtype)
x = x.unsqueeze(-3)
out = x
for t in range(self.num_layers):
if t == 0:
out = out @ self.init_weight
else:
out = out @ self.weight[0 if self.shared_weights else t - 1]
# propagate_type: (x: Tensor, edge_weight: OptTensor)
out = self.propagate(edge_index, x=out, edge_weight=edge_weight,
size=None)
root = F.dropout(x, p=self.dropout, training=self.training)
out += root @ self.root_weight[0 if self.shared_weights else t]
if self.bias is not None:
out += self.bias[0 if self.shared_weights else t]
if self.act is not None:
out = self.act(out)
return out.mean(dim=-3)
Theorem 1. 为了保证Eq.(14)收敛,需要 ∥ W ∥ 2 < 1 \|\mathbf{W}\|_{2}<1 ∥W∥2<1和 σ ( ⋅ ) \sigma(\cdot) σ(⋅)是non-expansive map.
P
r
o
o
f
Proof
Proof.
X
‾
a
(
0
)
\overline{\mathbf{X}}_{a}^{(0)}
Xa(0)和
X
‾
b
(
0
)
\overline{\mathbf{X}}_{b}^{(0)}
Xb(0)是两个不同的初始化状态,
∥
W
∥
2
<
1
\|\mathbf{W}\|_{2}<1
∥W∥2<1. 在公式Eq.(14)迭代
t
+
1
t+1
t+1步后,我们得到
X
a
(
t
+
1
)
\mathbf{X}_{a}^{(t+1)}
Xa(t+1) 和
X
‾
b
(
t
+
1
)
\overline{\mathbf{X}}_{b}^{(t+1)}
Xb(t+1).如果
σ
(
⋅
)
\sigma(\cdot)
σ(⋅)是a non-expansive map,例如ReLU函数,以下不等式成立:
∥
X
‾
a
(
t
+
1
)
−
X
‾
b
(
t
+
1
)
∥
2
=
=
∥
σ
(
L
~
X
‾
a
(
t
)
W
+
X
V
)
−
σ
(
L
~
X
‾
b
(
t
)
W
+
X
V
)
∥
2
≤
≤
∥
L
~
X
‾
a
(
t
)
W
+
X
V
−
L
~
X
‾
b
(
t
)
W
−
X
V
∥
2
=
=
∥
L
~
X
‾
a
(
t
)
W
−
L
~
X
‾
b
(
t
)
W
∥
2
≤
≤
∥
L
~
∥
2
∥
W
∥
2
∥
X
‾
a
(
t
)
−
X
‾
b
(
t
)
∥
2
.
(15)
\begin{array}{l} \left\|\overline{\mathbf{X}}_{a}^{(t+1)}-\overline{\mathbf{X}}_{b}^{(t+1)}\right\|_{2}= \\ =\left\|\sigma\left(\tilde{\mathbf{L}} \overline{\mathbf{X}}_{a}^{(t)} \mathbf{W}+\mathbf{X V}\right)-\sigma\left(\tilde{\mathbf{L}} \overline{\mathbf{X}}_{b}^{(t)} \mathbf{W}+\mathbf{X V}\right)\right\|_{2} \leq \\ \leq\left\|\tilde{\mathbf{L}} \overline{\mathbf{X}}_{a}^{(t)} \mathbf{W}+\mathbf{X V}-\tilde{\mathbf{L}} \overline{\mathbf{X}}_{b}^{(t)} \mathbf{W}-\mathbf{X} \mathbf{V}\right\|_{2}= \\ =\left\|\tilde{\mathbf{L}} \overline{\mathbf{X}}_{a}^{(t)} \mathbf{W}-\tilde{\mathbf{L}} \overline{\mathbf{X}}_{b}^{(t)} \mathbf{W}\right\|_{2} \leq \\ \leq\|\tilde{\mathbf{L}}\|_{2}\|\mathbf{W}\|_{2}\left\|\overline{\mathbf{X}}_{a}^{(t)}-\overline{\mathbf{X}}_{b}^{(t)}\right\|_{2} . \end{array}\tag{15}
∥∥∥Xa(t+1)−Xb(t+1)∥∥∥2==∥∥∥σ(L~Xa(t)W+XV)−σ(L~Xb(t)W+XV)∥∥∥2≤≤∥∥∥L~Xa(t)W+XV−L~Xb(t)W−XV∥∥∥2==∥∥∥L~Xa(t)W−L~Xb(t)W∥∥∥2≤≤∥L~∥2∥W∥2∥∥∥Xa(t)−Xb(t)∥∥∥2.(15)
如果
σ
(
⋅
)
\sigma(\cdot)
σ(⋅)是squashing function(e.g. sigmoid or tanh),(15)中的不等式是严格成立的。
根据定义,最大奇异值 L ~ ≤ 1 \tilde{\mathbf{L}}\leq 1 L~≤1, 所以 ∥ L ~ ∥ 2 ∥ W ∥ 2 < 1 \|\tilde{\mathbf{L}}\|_{2}\|\mathbf{W}\|_{2}<1 ∥L~∥2∥W∥2<1,根据(15)可以看出,Eq.(14)是收敛的。
从Theorem 1中可以得到,任意选择
ϵ
>
0
\epsilon>0
ϵ>0,存在如下情况
∃
T
ϵ
<
∞
s.t.
∥
X
‾
(
t
+
1
)
−
X
‾
(
t
)
∥
2
≤
ϵ
,
∀
t
≥
T
ϵ
\exists T_{\epsilon}<\infty \text { s.t. }\left\|\overline{\mathbf{X}}^{(t+1)}-\overline{\mathbf{X}}^{(t)}\right\|_{2} \leq \epsilon, \forall t \geq T_{\epsilon}
∃Tϵ<∞ s.t. ∥∥∥X(t+1)−X(t)∥∥∥2≤ϵ,∀t≥Tϵ
因此,在有限的时间内,迭代会收敛。
与Eq.(12)中的 ARMA \text{ARMA} ARMA filter 类似, 需要将 K K K 个GCS layers进行stack.
4.1. Implementation
GCS 每个stack k k k可能是权重不同的,或者经过不同的迭代次数 T k T_k Tk才能收敛,取决于节点特征 X \mathbf{X} X和权重矩阵 W \mathbf{W} W和 V k \mathbf{V}_k Vk。这使得神经网络的训练特别棘手,如果 T k T_k Tk特别大,需要公式(14)展开递归很多次,会带来很大计算成本和梯度消失的问题。
一种解决方案是每个stack设置初始化为不同的权重矩阵 W k \mathbf{W}_k Wk和 V k \mathbf{V}_k Vk, 随机初始化保证每个stack进行不同过滤操作。为了弥补训练次数少问题,需要高维的特征,随机初始化高维的特征,由此会带来计算复杂度的提升。
第二种方法是放松一起收敛的约束,收敛的次数固定为常数 T T T。这样模型就容易训练,不会影响模型的稳定性。可以通过在损失函数增加正则项放松Theorem 1 中 ∥ W ∥ 2 < 1 \|\mathbf{W}\|_{2}<1 ∥W∥2<1约束。
我们通过设置较小 T T T层GCS layers, 通过ReLU非线性激活函数和可训练的参数学习节点的表示。
给定有限迭代次数下, X ‾ ( 0 ) \overline{X}^{(0)} X(0)会影响模型的最终表达 X ‾ ( T ) \overline{X}^{(T)} X(T).考虑初始化 X ‾ ( 0 ) = 0 ∈ R M × F out \overline{\mathbf{X}}^{(0)}=\mathbf{0} \in \mathbb{R}^{M \times F_{\text {out }}} X(0)=0∈RM×Fout ,或者对节点特征进行线性转换 X ‾ ( 0 ) = X W ( 0 ) \overline{\mathbf{X}}^{(0)}=\mathbf{X} \mathbf{W}^{(0)} X(0)=XW(0),其中, W ( 0 ) ∈ R F in × F out \mathbf{W}^{(0)} \in \mathbb{R}^{F_{\text {in }} \times F_{\text {out }}} W(0)∈RFin ×Fout 为第一层stack的 W \mathbf{W} W.我们采用后一种初始化模型的方式。同时,设 W ( 0 ) = V \mathbf{W}^{(0)}=\mathbf{V} W(0)=V,以减少模型训练的参数。
现在
ARMA
K
\text{ARMA}_K
ARMAK卷积层的计算如下:
X
‾
=
1
K
∑
k
=
1
K
X
‾
k
(
T
)
(16)
\overline{\mathbf{X}}=\frac{1}{K} \sum_{k=1}^{K} \overline{\mathbf{X}}_{k}^{(T)}\tag{16}
X=K1k=1∑KXk(T)(16)
其中,
X
‾
k
(
T
)
\overline{\mathbf{X}}_{k}^{(T)}
Xk(T)在
k
-th
k\text{-th}
k-th中,最后一层的输出。Fig.1描绘了ARMA卷积的过程。
为了使得每层layer的每个GCS stack更好地从其他stack学习fltering operation, 我们会随机应用dropout,跳过 X V k \mathbf{X V}_{k} XVk中一些连接。这样可以学习一些异构特征,增强节点的表征能力。不同层之间参数共享可以防止过拟合。最后,不同GCS stacks可以并行执行。
4.2. Properties and relationship with other approaches
ARMA filters不依赖 L \mathbf{L} L的特征值和特征向量,这使得对图结构变化是非常稳健的,最后,这个ARMA filters是可迁移的,在预测时,能够用于在训练中未见到的拓扑结构。
skip connections可以降低过度平滑的风险。权重共享和残差连接可以用于处理序列数据。
聚合邻居节点,可以处理为定义顺序节点和邻居节点数量不定的情况。
在每一层内部进行skip connections, 和层间的skip connections不同。
ARMA layer能够处理时序数据,将Eq.(14)中的 X \mathbf{X} X替换为 X ( t ) \mathbf{X}^{(t)} X(t).
最后,讨论下
ARMA GNN
\text{ARMA GNN}
ARMA GNN和
CayleyNets
\text{CayleyNets}
CayleyNets关系, Cayley 多项式如下:
X
‾
=
w
0
X
+
2
Re
{
∑
k
=
1
K
w
k
(
L
+
i
I
)
k
(
L
−
i
I
)
−
k
}
X
(17)
\overline{\mathbf{X}}=w_{0} \mathbf{X}+2 \operatorname{Re}\left\{\sum_{k=1}^{K} w_{k}(\mathbf{L}+i \mathbf{I})^{k}(\mathbf{L}-i \mathbf{I})^{-k}\right\} \mathbf{X}\tag{17}
X=w0X+2Re{k=1∑Kwk(L+iI)k(L−iI)−k}X(17)
对于公式(17)中求逆项,可以采用固定迭代次数
T
T
T的Jacobi iterations。因此, CayleyNet形式可以如下:
X
‾
≈
σ
(
w
0
X
+
2
Re
{
∑
k
=
1
K
w
k
(
∑
t
=
1
T
L
^
t
)
k
}
X
)
(18)
\overline{\mathbf{X}} \approx \sigma\left(w_{0} \mathbf{X}+2 \operatorname{Re}\left\{\sum_{k=1}^{K} w_{k}\left(\sum_{t=1}^{T} \hat{\mathbf{L}}^{t}\right)^{k}\right\} \mathbf{X}\right)\tag{18}
X≈σ⎝⎛w0X+2Re⎩⎨⎧k=1∑Kwk(t=1∑TL^t)k⎭⎬⎫X⎠⎞(18)
其中,
L
^
\hat{\mathbf{L}}
L^和
L
\mathbf{L}
L具有相同的 sparsity pattern 。Eq.(18)是
K
T
KT
KT阶的多项式过滤器,
CayleyNets 和Eq.(4)中 Chebyshev filter有些相似,使用高阶多项式( K T KT KT hop)进行节点特征的传播。而 ARMA \text{ARMA} ARMA采用 K K K并行stacks, 1 hop进行节点特征传播。
5.Spectral analysis of the ARMA layer
首先,参照Eq.(1), 将
X
\mathbf{X}
X基于
L
\mathbf{L}
L的特征空间
U
T
\mathbf{U}^T
UT进行转换,然后使用过滤器
h
(
λ
m
)
h(\lambda_m)
h(λm)改变
u
m
T
X
\mathbf{u}_m^T\mathbf{X}
umTX的值,最后,通过在公式(1)左侧乘以
U
T
\mathbf{U}^T
UT映射回节点的特征空间。
U
T
X
‾
=
diag
[
h
(
λ
1
)
,
…
,
h
(
λ
M
)
]
U
T
X
∑
m
=
1
M
u
m
T
X
‾
=
∑
m
=
1
M
h
(
λ
m
)
u
m
T
X
(19)
\begin{aligned} \mathbf{U}^{T} \overline{\mathbf{X}} &=\operatorname{diag}\left[h\left(\lambda_{1}\right), \ldots, h\left(\lambda_{M}\right)\right] \mathbf{U}^{T} \mathbf{X} \\ \sum_{m=1}^{M} \mathbf{u}_{m}^{T} \overline{\mathbf{X}} &=\sum_{m=1}^{M} h\left(\lambda_{m}\right) \mathbf{u}_{m}^{T} \mathbf{X} \end{aligned}\tag{19}
UTXm=1∑MumTX=diag[h(λ1),…,h(λM)]UTX=m=1∑Mh(λm)umTX(19)
其中,
X
‾
\overline{X}
X是
ARMA
\text{ARMA}
ARMA layer的输出,
U
T
X
‾
\mathbf{U}^{T} \overline{\mathbf{X}}
UTX定义为original components,
U
T
X
\mathbf{U}^{T} \mathbf{X}
UTX通过GNN生成,ARMA的filter response可以通过
U
T
X
‾
\mathbf{U}^{T} \overline{\mathbf{X}}
UTX和
U
T
X
\mathbf{U}^{T} \mathbf{X}
UTX两者之间的比例确定,我们称它为
e
m
p
i
r
i
c
a
l
f
i
l
t
e
r
r
e
s
p
o
n
s
e
h
~
empirical\ filter\ response\ \tilde{h}
empirical filter response h~:
h
~
m
=
F
in
F
out
∑
f
=
1
F
out
u
m
T
x
‾
f
∑
f
=
1
F
in
u
m
T
x
f
(20)
\tilde{h}_{m}=\frac{F_{\text {in }}}{F_{\text {out }}} \frac{\sum_{f=1}^{F_{\text {out }}} \mathbf{u}_{m}^{T} \overline{\mathbf{x}}_{f}}{\sum_{f=1}^{F_{\text {in }}} \mathbf{u}_{m}^{T} \mathbf{x}_{f}}\tag{20}
h~m=Fout Fin ∑f=1Fin umTxf∑f=1Fout umTxf(20)
其中,
x
‾
f
\overline{\mathbf{x}}_f
xf是输出向量
X
‾
k
\overline{\mathbf{X}}_k
Xk的
f
f
f列,
x
f
\mathbf{x}_f
xf是输入特征
X
\mathbf{X}
X的
f
f
f列,
u
m
\mathbf{u}_m
um是
L
\mathbf{L}
L的特征向量。