ARMAConv

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} ARM×M, graph signal (所有样本点特征) X ∈ R M × F \mathbf{X} \in \mathbb{R}^{M \times F} XRM×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=IMD1/2AD1/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=1Mh(λ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} BRM×K是cubic B-spline basis。

c ∈ R K \mathbf{c} \in \mathbb{R}^{K} cRK是控制参数。但是,这样的过滤器不是局部的,因为特征向量上的完整投影产生无限长度的路径,并且过滤器考虑了每个节点与整个图的交互,而不是那些限于节点邻域。这个传统的卷积过滤器形成鲜明的对比, 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=0Kwkλ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=0KwkLkX(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)=2xTk1(x)Tk2(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=0K1Tk(L~)XWk)(4)
其中, L ~ = 2 L / λ max ⁡ − I M \tilde{\mathbf{L}}=2 \mathbf{L} / \lambda_{\max }-\mathbf{I}_{M} L~=2L/λmaxIM σ ( ⋅ ) \sigma(\cdot) σ()是非线性激活函数, W k ∈ R F in  × F out  \mathbf{W}_{k} \in \mathbb{R}^{F_{\text {in }} \times F_{\text {out }}} WkRFin ×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λkk=0K1pkλ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=1KqkLk)1(k=0K1pkLk)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)IL(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=tlim[(aM)tX(0)+bi=0t(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} bi=0t(aM)i是一个几何级数,收敛于 b ( I − a M ) − 1 b(\mathbf{I}-a \mathbf{M})^{-1} b(IaM)1,它的特征值是 b / ( 1 − a μ m ) b /\left(1-a \mu_{m}\right) b/(1aμ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)=1aμ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=1Km=1M1akμ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=1K1akμ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 }}} WRFin ×Fout  V ∈ R F in  × F out  \mathbf{V} \in \mathbb{R}^{F_{\text {in }} \times F_{\text {out }}} VRFin ×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 W2<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 W2<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)2L~Xa(t)W+XVL~Xb(t)WXV2==L~Xa(t)WL~Xb(t)W2L~2W2Xa(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~2W2<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ϵ,tTϵ
因此,在有限的时间内,迭代会收敛。

与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 W2<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)=0RM×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=1KXk(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=1Kwk(L+iI)k(LiI)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+2Rek=1Kwk(t=1TL^t)kX(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=1MumTX=diag[h(λ1),,h(λM)]UTX=m=1Mh(λ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 umTxff=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的特征向量。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值