Adaptive Sampling Towards Fast Graph Representation Learning 基于适应性采样的快速图表示学习 论文详解 NIPS 2018

论文题目:Adaptive Sampling Towards Fast Graph Representation Learning

作者:来自Tencent AI Lab的Wenbing Huang, Tong Zhang, Yu Rong, Junzhou Huang

时间:2018

来源:NIPS

论文链接:https://papers.nips.cc/paper/7707-adaptive-sampling-towards-fast-graph-representation-learning.pdf

Github链接:无

这项研究由腾讯 AI Lab 独立完成,提出了一种适用于大规模社交网络的节点分类方法。社交网络可表示成图(graph)的形式,而图卷积网络已经成为了图节点表示学习的一种重要工具。在大规模图上使用图卷积网络会产生巨大的时间和空间开销,这主要是由无限制的邻居扩张引起的。

在这篇论文中,研究者设计了一种自适应的逐层采样方法,可加速图卷积网络的训练。通过自上而下地构建神经网络的每一层,根据顶层的节点采样出下层的节点,可使得采样出的邻居节点被不同的父节点所共享并且便于限制每层的节点个数来避免过度扩张。更重要的是,新提出的逐层采样的方法是自适应的,并且能显式地减少采样方差,因此能强化该方法的训练。实验证明在有效性和准确性上优于其他基于采样的方法:GraphSAGE和FastGCN。

文中还进一步提出了一种新颖的跳越(skip)连接方法,可用于加强相隔比较远的节点之间的信息传播。在几个公开的数据集上进行了大量实验,实验结果表明,跳跃连接进一步提高了算法的收敛速度和最终分类精度。

1 简介

当前在图神经网络上的最大问题就是可扩展性问题。计算卷积要求递归地逐层扩展邻居,这就要求很大的计算量和巨大的内存。即使是单个节点,如果图是密集的或幂律的,由于逐层的邻域扩展,它也会很快覆盖图的很大一部分。传统的mini-batch训练即使在batch size很小时也无法加快卷积计算的速度,因为每个batch训练都会涉及大量的顶点。

为了避免邻居的过度扩张问题,文中采用控制每一层采样大小来加快训练。通过自顶向下的方式建立网络层,底层的节点的采样通过概率依赖于顶层的节点。这种分层采样的方式是有效的,因为

  • 可以重用采样的邻居信息,因为下层的节点是可见的并且被上层不同的父节点所共享
  • 很容易确定每个层的size,以避免邻域的过度扩展,因为底层的节点是作为一个整体进行采样的
  • 上图表示了不通方法创建的网络结构
  • 图a:逐节点采样
  • 图b:逐层采样
  • 图c:考虑了skip-connection的模型
  • 图中红色节点都有两个父节点
  • 在逐节点采样中,每个父节点的邻域不会被其他父节点看到,因此邻域和其他父节点之间的连接是未使用的。相比之下,对于逐层采样策略,所有的邻域由父层中的节点共享,因此所有层间连接都被利用。

1.1 创新点

  • 创建了一个逐层采样的方式加速GCN模型,这种方式的层之间的信息是共享的并且采样的节点的数量是可控的
  • 这种逐层采样的采样方式是自适应的并且在训练阶段显式地由方差降低来确定
  • 提出了一种简单而有效的方法,通过在两个层之间建立skip-connection来保持second-order proximity

2 相关工作

两种基于采样的方法目标都是实现在图上的快速表示学习:GraphSAGE和FastGCN。

另外一个工作在论文“ Stochastic training of graph convolutional networks with variance reduction”中,提出了一种基于控制变量的方法(control-variate-based method),但是这种采样过程也是node-wise的,需要节点的历史激活信息。

3 Notations and Preliminaries

此文也是只处理无向图的。

  • X ∈ R N × D X \in \mathbb{R}^{N \times D} XRN×D表示特征矩阵
  • x i x_i xi表示节点 i i i D D D维的特征向量

和Kipf and Welling的GCN一样,定义图卷积的传播模型如下:

h ( l + 1 ) ( v i ) = σ ( ∑ j = 1 N a ^ ( v i , u j ) h ( l ) ( u j ) W ( l ) ) , i = 1 , ⋯   , N (1) \tag{1} h^{(l+1)}\left(v_{i}\right)=\sigma\left(\sum_{j=1}^{N} \hat{a}\left(v_{i}, u_{j}\right) h^{(l)}\left(u_{j}\right) W^{(l)}\right), \quad i=1, \cdots, N h(l+1)(vi)=σ(j=1Na^(vi,uj)h(l)(uj)W(l)),i=1,,N(1)

  • A ^ = ( a ^ ( v i , u j ) ) ∈ R N × N \hat{A}=\left(\hat{a}\left(v_{i}, u_{j}\right)\right) \in \mathbb{R}^{N \times N} A^=(a^(vi,uj))RN×N是邻接矩阵的re-normalization形式
  • W ( l ) ∈ R D ( l ) × D ( l − 1 ) W^{(l)} \in \mathbb{R}^{D^{(l)} \times D^{(l-1)}} W(l)RD(l)×D(l1)是第 l l l层的filter matrix,也就是卷积核的参数矩阵
  • u j u_j uj表示第 l l l层的节点

4 自适应采样

公式(1)说明了GCNs要求充分扩展邻域,以便对每个节点进行前向计算,这在大图上需要巨大的计算量和内存,很难以推广到大规模节点的图上。为了避免此问题,文中通过使用自适应采样来加速前向传播计算。

4.1 From Node-Wise Sampling to Layer-Wise Sampling

Node-Wise Sampling

公式(1)的卷积公式可以重新写成期望的形式:

h ( l + 1 ) ( v i ) = σ W ( l ) ( N ( v i ) E p ( u j ∣ v i ) [ h ( l ) ( u j ) ] ) (2) \tag{2} h^{(l+1)}\left(v_{i}\right)=\sigma_{W^{(l)}}\left(N\left(v_{i}\right) \mathbb{E}_{p\left(u_{j} | v_{i}\right)}\left[h^{(l)}\left(u_{j}\right)\right]\right) h(l+1)(vi)=σW(l)(N(vi)Ep(ujvi)[h(l)(uj)])(2)

  • 为了简洁起见,将权重矩阵 W ( l ) W^{(l)} W(l)包含在函数 σ ( . ) \sigma(.) σ(.)
  • p ( u j ∣ v i ) = a ^ ( v i , u j ) / N ( v i ) p(u_j |v_i)=\hat{a}\left(v_{i}, u_{j}\right) / N\left(v_{i}\right) p(ujvi)=a^(vi,uj)/N(vi)表示在采样 v i v_i vi的条件下采样 v j v_j vj的概率
  • N ( v i ) = ∑ j = 1 N a ^ ( v i , u j ) N\left(v_{i}\right)=\sum_{j=1}^{N} \hat{a}\left(v_{i}, u_{j}\right) N(vi)=j=1Na^(vi,uj)

文中通过蒙特卡罗采样近似期望值的方法来加快公式(2)。即,用 μ ^ p ( v i ) \hat{\mu}_{p}\left(v_{i}\right) μ^p(vi)来估计期望 μ p ( v i ) = E p ( u j ∣ v i ) [ h ( l ) ( u j ) ] \mu_{p}\left(v_{i}\right)=\mathbb{E}_{p\left(u_{j} | v_{i}\right)}\left[h^{(l)}\left(u_{j}\right)\right] μp(vi)=Ep(ujvi)[h(l)(uj)]

μ ^ p ( v i ) = 1 n ∑ j = 1 n h ( l ) ( u ^ j ) , u ^ j ∼ p ( u j ∣ v i ) (3) \tag{3} \hat{\mu}_{p}\left(v_{i}\right)=\frac{1}{n} \sum_{j=1}^{n} h^{(l)}\left(\hat{u}_{j}\right), \quad \hat{u}_{j} \sim p\left(u_{j} | v_{i}\right) μ^p(vi)=n1j=1nh(l)(u^j),u^jp(ujvi)(3)
如果第 ( l + 1 ) (l+1) (l+1)层和第 ( l ) (l) (l)层的采样点数都是 n n n,通过设置 n ≪ N n \ll N nN,使用蒙特卡罗估计可以使公式(1)的复杂度从 O ( ∣ E ∣ D ( l ) D ( l − 1 ) ) O\left(|E| D^{(l)} D^{(l-1)}\right) O(ED(l)D(l1))( ∣ E ∣ |E| E为边的数量)减少到 O ( n 2 D ( l ) D ( l − 1 ) ) O\left(n^{2} D^{(l)} D^{(l-1)}\right) O(n2D(l)D(l1))

在多层网络中使用公式(3)就可以用一个自顶向下的方式(递归采样当前层中每个节点的邻居,见上图(a))创建网络结构。

这样逐节点采样的方式在深层网络中仍然需要很高的计算代价和内存代价,因为随着层数的增加采样的节点数呈指数趋势增长。以一个深度为 d d d的网络为例,输入层中的采样节点数将增加到 O ( n d ) O(n^{d}) O(nd),这将导致较大的 d 2 d^2 d2的计算负担。

Layer-Wise Sampling

通过重要性采样可以将公式(2)转换成下列形式:

h ( l + 1 ) ( v i ) = σ W ( l ) ( N ( v i ) E q ( u j ∣ v 1 , ⋯   , v n ) [ p ( u j ∣ v i ) q ( u j ∣ v 1 , ⋯   , v n ) h ( l ) ( u j ) ] ) (4) \tag{4} h^{(l+1)}\left(v_{i}\right)=\sigma_{W^{(l)}}\left(N\left(v_{i}\right) \mathbb{E}_{q\left(u_{j} | v_{1}, \cdots, v_{n}\right)}\left[\frac{p\left(u_{j} | v_{i}\right)}{q\left(u_{j} | v_{1}, \cdots, v_{n}\right)} h^{(l)}\left(u_{j}\right)\right]\right) h(l+1)(vi)=σW(l)(N(vi)Eq(ujv1,,vn)[q(ujv1,,vn)p(ujvi)h(l)(uj)])(4)

  • q ( u j ∣ v 1 , ⋯   , v n ) q\left(u_{j} | v_{1}, \cdots, v_{n}\right) q(ujv1,,vn)定义为在给定当前层(也就是知道 v 1 , . . . , v n v_1,...,v_n v1,...,vn)时采样节点 v j v_j vj的概率

同样,可以用蒙特卡罗平均值来近似期望值,从而对公式(4)加速,可以用下面的公式来计算 h ( l + 1 ) ( v i ) = σ W ( l ) ( N ( v i ) μ ^ q ( v i ) ) h^{(l+1)}\left(v_{i}\right)=\sigma_{W^{(l)}}\left(N\left(v_{i}\right) \hat{\mu}_{q}\left(v_{i}\right)\right) h(l+1)(vi)=σW(l)(N(vi)μ^q(vi))

μ ^ q ( v i ) = 1 n ∑ j = 1 n p ( u ^ j ∣ v i ) q ( u ^ j ∣ v 1 , ⋯   , v n ) h ( l ) ( u ^ j ) , u ^ j ∼ q ( u ^ j ∣ v 1 , ⋯   , v n ) (5) \tag{5} \hat{\mu}_{q}\left(v_{i}\right)=\frac{1}{n} \sum_{j=1}^{n} \frac{p\left(\hat{u}_{j} | v_{i}\right)}{q\left(\hat{u}_{j} | v_{1}, \cdots, v_{n}\right)} h^{(l)}\left(\hat{u}_{j}\right), \quad \hat{u}_{j} \sim q\left(\hat{u}_{j} | v_{1}, \cdots, v_{n}\right) μ^q(vi)=n1j=1nq(u^jv1,,vn)p(u^jvi)h(l)(u^j),u^jq(u^jv1,,vn)(5)

  • 上式就是逐层采样策略
  • 公式(3)的逐节点采样方式中,节点 { u ^ j } j = 1 n \left\{\hat{u}_{j}\right\}_{j=1}^{n} { u^j}j=1n是为每个父节点 v i v_i vi独立生成的
  • 公式(3)的逐节点采样方式中,每个节点的邻居对其他父节点不可见
  • 公式(5)的逐层采样方式中,所有采样节点 { u ^ j } j = 1 n \left\{\hat{u}_{j}\right\}_{j=1}^{n} { u^j}j=1n由当前层的所有节点共享,使用这种共享的方式能够最大限度地增强消息传递。更重要的是,每层的大小固定为 n n n,采样节点总数只随网络深度线性增长。

4.2 Explicit Variance Reduction 显式方差减少

对于逐层采样,剩下的问题就是如何准确的定义采样器 q ( u j ∣ v 1 , ⋯   , v n ) q\left(u_{j} | v_{1}, \cdots, v_{n}\right) q(ujv1,,vn)的形式。一个好的估计器应该减少由采样样过程引起的方差,因为高方差可能会妨碍有效的训练。为了简化起见,下面将用 q ( u j ) q\left(u_{j}\right) q(uj)定义分布 q ( u j ∣ v 1 , ⋯   , v n ) q\left(u_{j} | v_{1}, \cdots, v_{n}\right) q(ujv1,,vn)

根据[ Monte Carlo theory, methods and examples, 2013]中重要性采样的推导,可以得出结论;

命题1:公式(5)中的估计器 μ ^ q ( v i ) \hat{\mu}_{q}\left(v_{i}\right) μ^q(vi)可以通过下式计算:

Var ⁡ q ( μ ^ q ( v i ) ) = 1 n E q ( u j ) [ ( p ( u j ∣ v i ) ∣ h ( l ) ( u j ) ∣ − μ q ( v i ) q ( u j ) ) 2 q 2 ( u j ) ] (6) \tag{6} \operatorname{Var}_{q}\left(\hat{\mu}_{q}\left(v_{i}\right)\right)=\frac{1}{n} \mathbb{E}_{q\left(u_{j}\right)}\left[\frac{\left(p\left(u_{j} | v_{i}\right)\left|h^{(l)}\left(u_{j}\right)\right|-\mu_{q}\left(v_{i}\right) q\left(u_{j}\right)\right)^{2}}{q^{2}\left(u_{j}\right)}\right] Varq(μ^q(vi))=n1Eq(uj)[q2(uj)(p(ujvi)h(l)(uj)μq(vi)q(uj))2](6)
公式(6)中的最小化方差的最优采样器 Var ⁡ q ( u j ) ( μ ^ q ( v i ) ) \operatorname{Var}_{q\left(u_{j}\right)}\left(\hat{\mu}_{q}\left(v_{i}\right)\right) Varq(uj)(μ^q(vi))可通过下式进行计算

q ∗ ( u j ) = p ( u j ∣ v i ) ∣ h ( l ) ( u j ) ∣ ∑ j = 1 N p ( u j ∣ v i ) ∣ h ( l ) ( u j ) ∣ (7) \tag{7} q^{*}\left(u_{j}\right)=\frac{p\left(u_{j} | v_{i}\right)\left|h^{(l)}\left(u_{j}\right)\right|}{\sum_{j=1}^{N} p\left(u_{j} | v_{i}\right)\left|h^{(l)}\left(u_{j}\right)\right|} q(uj)=j=1Np(ujvi)h(l)(uj)p(ujvi)h(l)(uj)(7)

  • 可以看出要计算最优采样器是很难的,因为从定义可以看出,采样器是基于由前一层的邻居聚合得到的特征 h ( l ) ( u j ) h^{(l)}\left(u_{j}\right) h(l)(uj)来计算的
  • 在这种自顶向下的采样框架中,除非网络是完全由采样构成的,否则下层的神经网络单元是未知的

为了解决上述鸡生蛋,蛋生鸡的问题,需要为每个节点学习一个self-dependent的函数来确定它的采样重要性。令 g ( x ( u j ) ) g(x(u_j)) g(x(uj))就是所需要学习的函数,在公式(7)中替换掉隐藏层函数可以得到

q ∗ ( u j ) = p ( u j ∣ v i ) ∣ g ( x ( u j ) ) ∣ ∑ j = 1 N p ( u j ∣ v i ) ∣ g ( x ( u j ) ) ∣ (8) \tag{8} q^{*}\left(u_{j}\right)=\frac{p\left(u_{j} | v_{i}\right)\left|g\left(x\left(u_{j}\right)\right)\right|}{\sum_{j=1}^{N} p\left(u_{j} | v_{i}\right)\left|g\left(x\left(u_{j}\right)\right)\right|} q(uj)=j=1Np(ujvi)g(x(uj))p(ujvi)g(x(uj))(8)

  • 公式(8)中的采样式是逐节点的,并且随 v i v_i vi的不同而变化

为了能在逐层采样中使用,对所有节点 { v i } i = 1 n \left\{v_{i}\right\}_{i=1}^{n} { vi}i=1n的计算求和,可以得到

q ∗ ( u j ) = ∑ i = 1 n p ( u j ∣ v i ) ∣ g ( x ( u j ) ) ∣ ∑ j = 1 N ∑ i = 1 n p ( u j ∣ v i ) ∣ g ( x ( v j ) ) ∣ (9) \tag{9} q^{*}\left(u_{j}\right)=\frac{\sum_{i=1}^{n} p\left(u_{j} | v_{i}\right)\left|g\left(x\left(u_{j}\right)\right)\right|}{\sum_{j=1}^{N} \sum_{i=1}^{n} p\left(u_{j} | v_{i}\right)\left|g\left(x\left(v_{j}\right)\right)\right|} q(uj)=j=1Ni=1np(ujvi)g(x(vj))i=1np(ujvi)g(x(uj))(9)

  • 文中定义 g ( x ( u j ) ) g(x(u_j)) g(x(uj))作为一个线性函数,也就是 g ( x ( u j ) ) = W g x ( u j ) g\left(x\left(u_{j}\right)\right)=W_{g} x\left(u_{j}\right) g(x(uj))=Wgx(uj),通过 W g ∈ R 1 × D W_{g} \in \mathbb{R}^{1 \times D} WgR1×D来参数化
  • 在公式(9)中的采样器的计算是有效的,因为计算 p ( u j ∣ v i ) p\left(u_{j} | v_{i}\right) p(ujvi)和函数 g ( x ( u j ) ) g\left(x\left(u_{j}\right)\right) g(x(uj))都是很快的

应用公式(9)给出的采样器不一定会得到最小方差。为了减少方差,可以在损失函数中加入方差,并通过模型训练显式地最小化方差。

  • 假设有一组 { ( v i , y i ) } i = 1 n \left\{\left(v_{i}, y_{i}\right)\right\}_{i=1}^{n} { (vi,yi)}i=1n数据的mini-batch,其中 v i v_i vi是目标节点, y i y_i yi是对应的ground-true 标签
  • 通过公式(9)的逐层采样方法,在给定 { v i } i = 1 n \left\{v_{i}\right\}_{i=1}^{n} { vi}i=1n的情况下采样前一层的节点。这个过程被递归地逐层调用,直达输入层
  • 然后执行自下而上的传播来计算隐藏特征并获得节点 v i v_i vi的估计激活值,也就是 μ ^ q ( v i ) \hat{\mu}_{q}\left(v_{i}\right) μ^q(vi)
  • μ ^ q ( v i ) \hat{\mu}_{q}\left(v_{i}\right) μ^q(vi)加上softmax函数生成预测 y ˉ ( μ ^ q ( v i ) ) ) \left.\bar{y}\left(\hat{\mu}_{q}\left(v_{i}\right)\right)\right) yˉ(μ^q(vi)))
  • 综合考虑分类损失和方差(式(6)),将混合损失表示为

L = 1 n ∑ i = 1 n L c ( y i , y ˉ ( μ ^ q ( v i ) ) ) + λ Var ⁡ q ( μ ^ q ( v i ) ) ) (10) \tag{10} \left.\mathcal{L}=\frac{1}{n} \sum_{i=1}^{n} \mathcal{L}_{c}\left(y_{i}, \bar{y}\left(\hat{\mu}_{q}\left(v_{i}\right)\right)\right)+\lambda \operatorname{Var}_{q}\left(\hat{\mu}_{q}\left(v_{i}\right)\right)\right) L=n1i=1nLc(yi,yˉ(μ^q(vi)))+λVarq(μ^q(vi)))(10)

  • L c \mathcal{L}_{c} Lc代表分类损失,例如交叉熵损失
  • λ \lambda λ是折中参数,在实验中是0.5
  • 在式(10)中,仅惩罚顶层(也就是输出层)的方差以获得有效的计算

为了使式(10)中的混合损失最小化,需要进行梯度计算。对于网络参数,如式(2)中的 W ( l ) W^{(l)} W(l),梯度计算是简单的,可以通过TensorFlow等平台计算。
对于采样器的参数,例如公式(9)中的 W g W_g Wg,由于采样过程(公式(5))是不可微的,因此计算梯度是非常不容易的。

5 Preserving Second-Order Proximities by Skip Connections 通过跳越连接保持二阶近似

GCN仅仅只聚合一阶邻居的信息,为了能让网络更好的利用距离较远的节点的信息,文中通过采样multi-hop的邻居(和Deepwalk: Online learning of social representations, Robust spatial filtering with graph convolutional neural networks中的随机游走相似的方法)对GCN进行更新。但是随机游走的方式为了获得较远的邻居的信息需要额外的采样,这在密集的图上计算的代价很大。文中通过 skip connections的方式将信息传播到远处的节点。

skip connection的思想就是重用第 l − 1 l-1 l1层的节点保持二阶近似(可参考LINE:Large-scale Information Network Embedding:2015):

h skip ( l + 1 ) ( v i ) = ∑ j = 1 n a ^ skip ( v i , s j ) h ( l − 1 ) ( s j ) W skip ( l − 1 ) , i = 1 , ⋯   , n (11) \tag{11} h_{\text {skip}}^{(l+1)}\left(v_{i}\right)=\sum_{j=1}^{n} \hat{a}_{\text {skip}}\left(v_{i}, s_{j}\right) h^{(l-1)}\left(s_{j}\right) W_{\text {skip}}^{(l-1)}, \quad i=1, \cdots, n hskip(l+1)(vi)=j=1na^skip(vi,sj)h(l1)(sj)Wskip(l1),i=1,,n(11)

  • l + 1 l+1 l+1层聚合了第 l l l层和第 l − 1 l-1 l1层的信息
  • s = { s j } j = 1 n s=\left\{s_{j}\right\}_{j=1}^{n} s={ sj}j=1n定义为第 l − 1 l-1 l1层的节点
  • v i v_i vi s j s_j sj之间有 2-hop 的距离,因此权重 a ^ skip ( v i , s j ) \hat{a}_{\text {skip}}\left(v_{i}, s_{j}\right) a^skip(vi,sj)可以看作是 A ^ 2 \hat{A}^{2} A^2中的元素

为了避免计算 A ^ 2 \hat{A}^{2} A^2,利用第 l l l层的采样节点估计权重:

a ^ s k i p ( v i , s j ) ≈ ∑ k = 1 n a ^ ( v i , u k ) a ^ ( u k , s j ) (12) \tag{12} \hat{a}_{s k i p}\left(v_{i}, s_{j}\right) \approx \sum_{k=1}^{n} \hat{a}\left(v_{i}, u_{k}\right) \hat{a}\left(u_{k}, s_{j}\right) a^skip(vi,sj)k=1na^(vi,uk)a^(uk,sj)(12)
没有学习公式(11)中的参数 W s k i p ( l − 1 ) W_{s k i p}^{(l-1)} Wskip(l1),而是将它进行分解:

W s k i p ( l − 1 ) = W ( l − 1 ) W ( l ) (13) \tag{13} W_{s k i p}^{(l-1)}=W^{(l-1)} W^{(l)} Wskip(l1)=W(l1)W(l)(13)

  • W ( l ) W^{(l)} W(l) W ( l − 1 ) W^{(l-1)} W(l1)分别是第 l l l层和第 l − 1 l-1 l1层的卷积核
  • 通过 skip connection,在不增加 额外的2-hop采样的情况下保持了二阶邻近,并且skip connection允许信息在两个较远的层之间传递,从而使反向传播和模型训练更加有效。

文中使用 skip connection 的目的和ResNets网络中不一样,ResNets网络中使用 skip connection 是为了通过增加网络深度提高准确率,而文中使用 skip connection 是为了保持二阶近似。

6 讨论

和其他采样方法的关系

和GraphSAGE、FastGCN相比,自适应采样的优点为
(1)逐层采样方法是新颖的

  • GraphSAGE通过随机采样节点的固定数量邻居然后进行信息聚合来学习节点的embedding
  • FastGCN的每一层都是独立的,FastGCN模型将图卷积解释为embedding函数的积分变换,并对每一层中的节点独立采样
  • 在逐层采样方法中,下层节点的采样是基于上层节点的,这样就能够获得各层之间的相关性

(2)这种自适应采样的框架是通用的

  • GraphSAGE和FastGCN都可以归类为这种框架的变体
  • 如果 p ( u j ∣ v i ) p(u_j |v_i ) p(ujvi)定义为均匀分布,那么在公式(3)中GraphSAGE可以看作是一个逐节点采样器
  • 在公式(5)中通过应用独立于节点 { v i } i = 1 n \left\{v_{i}\right\}_{i=1}^{n} { vi}i=1n的采样器 q ( u j ) q\left(u_{j}\right) q(uj),FastGCN可看作一种特殊的逐层采样方法

(3)这种自适应采样的采样器是参数化的,并且可以训练用于显式方差减少

  • GraphSAGE或FastGCN的采样器不涉及任何参数,不能自适应地最小化方差
  • 相反,这种自适应的采样器用一个自相关函数来修正最优的重要性采样分布。通过对网络和采样器进行微调,可以显式地减少产生的方差

考虑注意力机制

GAT模型将self-attention思想应用到了图表示学习中。简而言之,它用特定的注意力值代替了公式(1)中邻接矩阵的 re-normalization ,也就是

h ( l + 1 ) ( v i ) = σ ( ∑ j = 1 N a ( ( h ( l ) ( v i ) , ( h ( l ) ( u j ) ) h ( l ) ( v j ) W ( l ) ) h^{(l+1)}\left(v_{i}\right)=\sigma\left(\sum_{j=1}^{N} a\left(\left(h^{(l)}\left(v_{i}\right),\left(h^{(l)}\left(u_{j}\right)\right) h^{(l)}\left(v_{j}\right) W^{(l)}\right)\right.\right. h(l+1)(vi)=σ(j=1Na((h(l)(vi),(h(l)(uj))h(l)(vj)W(l))

a ( h ( l ) ( v i ) , h ( l ) ( u j ) ) a\left(h^{(l)}\left(v_{i}\right), h^{(l)}\left(u_{j}\right)\right) a(h(l)(vi),h(l)(uj))就是节点 v i v_i vi v j v_j vj之间的注意力值,可以通过LeakyReLU激活函数和 SoftMax 归一化进行计算

a ( h ( l ) ( v i ) , h ( l ) ( u j ) ) = SoftMax ⁡ (  LeakyReLU  ( W 1 h ( l ) ( v i ) , W 2 h ( l ) ( u j ) ) ) a\left(h^{(l)}\left(v_{i}\right), h^{(l)}\left(u_{j}\right)\right)=\operatorname{SoftMax}\left(\text { LeakyReLU }\left(W_{1} h^{(l)}\left(v_{i}\right), W_{2} h^{(l)}\left(u_{j}\right)\right)\right) a(h(l)(vi),h(l)(uj))=SoftMax( LeakyReLU (W1h(l)(vi),W2h(l)(uj)))

文中的框架不能简单的应用类似于GAT这样的注意力机制,因为式(9)中的概率 p ( u j ∣ v i ) p\left(u_{j} | v_{i}\right) p(ujvi)与由第 l l l层的隐藏特征决定的注意力值 a ( h ( l ) ( v i ) , h ( l ) ( u j ) ) a\left(h^{(l)}\left(v_{i}\right), h^{(l)}\left(u_{j}\right)\right) a(h(l)(vi),h(l)(uj))相关。因此,除非在采样之后已经建立了网络,否则无法计算下层的隐藏特征(见4.2节)。为了解决这一问题,可利用类似于式(9)的self-dependent function提出一种新的注意力机制:

a ( x ( v i ) , x ( u j ) ) = 1 n ReLu ⁡ ( W 1 g ( x ( v i ) ) + W 2 g ( x ( u j ) ) ) (14) \tag{14} a\left(x\left(v_{i}\right), x\left(u_{j}\right)\right)=\frac{1}{n} \operatorname{ReLu}\left(W_{1} g\left(x\left(v_{i}\right)\right)+W_{2} g\left(x\left(u_{j}\right)\right)\right) a(x(vi),x(uj))=n1ReLu(W1g(x(vi))+W2g(x(uj)))(14)

  • W 1 W_1 W1 W 2 W_2 W2是可训练的参数

7 实验

benchmarks:

  • 在引文网络数据集Cora, Citeseer 和 Pubmed上进行分类任务
  • 在Reddit数据集上预测不同的帖子属于哪个社区

实验设置

  • Cora, Citeseer数据集节点规模为 O ( n 3 ) O(n^3) O(n3),Pubmed和Reddit数据集节点规模分别为 O ( n 4 ) O(n^4) O(n4) O ( n 5 ) O(n^5) O(n5)
  • 和 FastGCN 中一样,使用所有带标签的样本进行训练
  • 实验过程是inductive的,因为明确地分离了训练集和测试集,可以推广到未见过的节点
  • 为了进行测试,可以使用完整的GCN体系结构来计算新节点的embedding,或者像在模型训练中那样通过采样来近似地计算
  • 文中使用完整的GCN结构来测试,因为更简单、更容易实现
  • 使用两个隐藏层
  • Cora, Citeseer,Pubmed数据集隐藏层维度为16
  • Reddit数据集隐藏层维度为256
  • 除顶层外,Cora, Citeseer所有层的采样节点数为128,Pubmed为256,Reddit为512
  • 对所有数据集,顶层的size(即随机的mini-batch的size)为256
  • 按照GCN中的建议,使用窗口大小为30来提前停止训练所有模型

7.1 Ablation Studies on the Adaptive Sampling

Baselines
  • graph kernel method KLED
  • Diffusion Convolutional Network (DCN)
  • 使用平均聚合,默认参数的GraphSAGE
  • FastGCN
  • Full表示完整的GCN架构
  • IDD:表示独立同分布采样,是FastGCN的重新实现,IDD是逐层采样的方法,但和Adapt中的逐层采样方法不同的是,IDD采样是通过每一层独立构建的,而Adapt的逐层采样方法下层和上层之间不是独立的,是条件概率采样的方式
  • Node-Wise:是GraphSAGE的重新实现,是逐节点采样的方法
  • Adapt (no vr) :no variance reduction

使用随机种子进行了20多次实验,并记录了平均精度和标准差。可以观察到效果和预期差不多,并且去除variance reduction会降低Adapt实验方法的性能(特别是在Cora和Reddit上)。

和其他采样方法的效果对比
  • Adapt采样方法比其他所有采样方法收敛更快
  • 在Cora and Reddit数据集上,Adapt采样方法比GCN更好
  • 由于条件采样,Adapt采样方法比IID方法获得了更稳定的收敛曲线。结果表明,考虑中间层信息有助于提高稳定性和准确性
  • 图3中可以看出,Adapt采样方法比GCN和Node-Wise模型训练得更快
方差降低的重要性

为了降低方差降低的重要性,实验设置将公式(10)中的trade-off参数 λ = 0 \lambda=0 λ=0,增加了一个对比的实验。这样可以使得self-dependent function的参数是随机初始化的没有预先进行训练。从图2中可以看出,移除了variance loss,Adapt采样方法在Coar和Reddit数据集上的准确率都有所下降。对于Citeseer数据集,影响不大。可能的原因是Citeseer(即1.4)的平均度比Cora(即2.0)和Reddit(即492)的平均度要小,由于Citeseer数据集中社区的多样性有限,惩罚这种差异并没有那么大的影响。

7.2 Skip Connection效果的评价

  • 在Cora数据集上做了Skip Connection的验证
  • 原始网络有两个隐藏层
  • 通过使用Eq.(12)和Eq.(13)中的计算,增加了输入层和顶层之间的跳跃连接
  • 图2显示了原始的Adapt方法和它的变体在跳跃连接下的收敛曲线,其中随机的种子是共享的,并且没有采用提前停止的方法
  • 虽然跳跃连接对最终精度的改进不是很大,但它确实显著地加快了收敛速度。这可以从图3 (b)中观察到,在图3 (b)中,添加跳跃连接可以减少所需的epoch,使其从大约150个减少到100个
  • 使用随机种子进行了20多次实验,并通过提前终止得到了实验的平均结果
  • Adapt+sc:表示添加了跳跃连接的Adapt采样方法。可以看出,跳跃连接稍微提高了性能
  • Adapt+2-hop:用二阶幂展开 A ^ + A ^ 2 \hat{A}+\hat{A}^{2} A^+A^2替换re-normalization矩阵 A ^ \hat{A} A^
  • 可以看出,如表2所示,使用显式2-hop采样进一步提高了分类精度
  • 虽然跳跃连接方法略低于显式2-hop采样,但它避免了计算(即对于大而稠密的图,产生的结果在计算上更有益处)

猜你喜欢

转载自blog.csdn.net/yyl424525/article/details/102493007
今日推荐