论文:GeniePath: Graph Neural Networks with Adaptive Receptive Paths
一种自适应感知路径的GNN:GeniePath
作者:蚂蚁金服的刘子奇、陈超超、李龙飞、周俊、李小龙、宋乐等人
来源:KDD 2018
KDD的全称是ACM SIGKDD Conference on Knowledge Discovery and Data Mining
论文链接:https://arxiv.org/abs/1802.00910
github链接:无
GeniePath,一种可扩展的能够学习自适应感受路径的图神经网络框架。它定义在具有排列不变性的图数据上(permutation invariant graph data)。它的自适应路径层(adaptive path layer)包括两个互补的功能单元,分别用来进行广度与深度的探索,前者用来学习一阶邻居节点的权重,后者用来提取和过滤高阶邻居内汇聚的信息。在直推(transductive)和归纳(inductive)两种学习任务的实验中,在大型图上均达到了 state-of-the-art 的效果。
图数据是不规则的,非欧氏距离的,图中的每个顶点的感受野都不同。
这篇文中定义的感受野(receptive field):图中一个节点的感受野为包含从这个节点出发到目标节点的路径上的所有节点构成的子图。
考虑一个经典的GCN网络
H ( t + 1 ) = σ ( ϕ ( A ) H ( t ) W ( t ) ) H^{(t+1)}=\sigma\left(\phi(A) H^{(t)} W^{(t)}\right) H(t+1)=σ(ϕ(A)H(t)W(t))
其中
上述两种定义方式都限制了在图中找到一种有意义的自适应的感受野。例如简单堆叠多层GCN(Kipf
and Welling 2016)使得感受野变大或路径变深,但是性能会急剧下降。(一些论文中使用残差连接使得性能稍有提升)
此文解决了下面两个没有解决的问题:
(1)构造了排列不变性的图数据的函数空间,其中任何符合条件的聚合函数都应该满足这个空间
(2)提出了由两部分构成的能自适应的路径层:
(3)在Pubmed、BlogCatalog、Alipay dataset数据集上进行实验,实验结果表明GeniePath算法的有效性,在大图上有state-of-the-art的效果。此外,GeniePath对卷积层的深度不是很敏感,可以考虑GCN的加深。
文中提出了一个自适应路径层,可以指导感受野的深度和广度的探索,并把这种自适应学习的感受野命名为感受路径。
将卷积推广到图上的目的是用感受野中的信号编码节点。输出编码的embedding,然后可以进一步用于端到端的半监督学习(Semi-supervised classification with graph convolutional networks)或者非监督学习任务(Deepwalk: Online learning of social representations)
下面分别介绍了:
Kipf and Welling (2016)的GCN,可以参考:
论文详解:Semi-Supervised Classification with Graph Convolutional Networks用图卷积进行半监督分类
介绍了GraphSAGE,可以参考:
论文详解:GraphSAGE:Inductive Representation Learning on Large Graphs
介绍了Graph Attention Networks (GAT),可以参考:
论文详解:Graph Attention Network (GAT) 图注意力网络 论文详解 ICLR2018
上面的这些网络的主要工作都是设计有效的聚合器函数,使得可以在每个节点的T-th邻居周围传播信号。但是很少有人试图研究指导传播有意义的路径问题。
为什么感受路径是重要的?
现在,需要做的是广度/深度的探索和过滤有用的/有噪声的信号。广度的探索决定了哪些邻居是重要的,即引导探索的方向,而深度的探索决定了距离目标节点多少hop的邻居仍然有用。子图上的这种信号过滤本质上就是学习感受路径。
核心内容
排列不变性就是,输入参数顺序不影响输出结果的函数,如 f ( a , b , c ) = f ( a , c , b ) = f ( b , a , c ) f(a, b, c)=f(a, c, b)=f(b, a, c) f(a,b,c)=f(a,c,b)=f(b,a,c)
函数空间要满足图数据所需要的排列不变性。要学的是一个函数 f f f,将图 G 映射到embedding H。
假设作用在邻居上的(聚合)函数 f f f具有排列不变性,学习任务与邻居节点的顺序是无关的,则在任何随机的排列 σ \sigma σ下,下式都成立
f ( { h 1 , … , h j , … } ∣ j ∈ N ( i ) ) = f ( { h σ ( 1 ) , … , h σ ( j ) , … } ∣ j ∈ N ( i ) ) , (4) \tag{4} f\left(\left\{h_{1}, \ldots, h_{j}, \ldots\right\} | j \in \mathcal{N}(i)\right) =f\left(\left\{h_{\sigma(1)}, \ldots, h_{\sigma(j)}, \ldots\right\} | j \in \mathcal{N}(i)\right), f({h1,…,hj,…}∣j∈N(i))=f({hσ(1),…,hσ(j),…}∣j∈N(i)),(4)
另一描述: 作用在节点 i i i的邻居节点上的函数 f f f满足排列不变性当且仅当 f f f可以用映射 ϕ \phi ϕ和 ρ \rho ρ分解成 ρ ( ∑ j ∈ N ( i ) ϕ ( h j ) ) \rho\left(\sum_{j \in \mathcal{N}(i)} \phi\left(h_{j}\right)\right) ρ(∑j∈N(i)ϕ(hj))。
定理1可以根据对称函数的基本定理(Zaheer et al. 2017)证明。
两个具有排列不变形的函数的复合函数 g ∘ f g \circ f g∘f 可以等价于 g ( f ( x ) ) g(f(x)) g(f(x)),也是满足排列不变性的。
GraphSAGE 提供 LSTM 的聚合器,这种聚合器是不具有 Permutation Invariant 的,因为 LSTM 接收的是遍历节点的隐变量序列,排序是敏感的。此外,这里的 Permutation Invariant 也指图是静态的,不随时间演化。 因为文章中提到 “This is in opposition to temporal graphs.”
接下来,文中使用排列不变性的条件和结合律来设计传播层。
GeniePath算法的核心:当沿着已经学过的路径传播信号时学习感受路径,而不是根据预先定义的路径。这个问题就等价于对每一个节点通过广度(哪个one-hop邻居是重要的)和深度(邻居的重要性被忽略了)扩展检测一个子图。
Adaptive Path Layer 由Adaptive Breadth和Adaptive Depth 两个模块构成:
GeniePath算法如下
接下来需要具体化自适应的广度和深度函数,也就是 ϕ ( ⋅ ) \phi(\cdot) ϕ(⋅)和 φ ( . ) \varphi( .) φ(.)。
自适应路径层可以更具体的写为
h i ( t m p ) = tanh ( W ( t ) ⊤ ∑ j ∈ N ( i ) ∪ { i } α ( h i ( t ) , h j ( t ) ) ⋅ h j ( t ) ) (5) \tag{5} h_{i}^{(\mathbf{t m p})}=\tanh \left({W^{(t)}}^{\top} \sum_{j \in \mathcal{N}(i) \cup\{i\}} \alpha\left(h_{i}^{(t)}, h_{j}^{(t)}\right) \cdot h_{j}^{(t)}\right) hi(tmp)=tanh⎝⎛W(t)⊤j∈N(i)∪{i}∑α(hi(t),hj(t))⋅hj(t)⎠⎞(5)
其中
那么
新 增 信 号 : C ~ = tanh ( W c ( t ) ⊤ h i ( t m p ) ) 新增信号:\tilde{C}=\tanh \left({W_{c}^{(t)}}^{\top} \quad h_{i}^{(\mathbf{tmp})}\right) 新增信号:C~=tanh(Wc(t)⊤hi(tmp))
更 新 门 : i i = σ ( W i ( t ) ⊤ h i ( t m p ) ) 更新门: i_{i}=\sigma\left({W_{i}^{(t)}}^{\top} \quad h_{i}^{(\mathbf{t m p})}\right) 更新门:ii=σ(Wi(t)⊤hi(tmp))
遗 忘 门 : f i = σ ( W f ( t ) ⊤ h i ( t m p ) ) 遗忘门: f_{i}=\sigma\left({W_{f}^{(t)}}^{\top} h_{i}^{(\mathbf{tmp})}\right) 遗忘门:fi=σ(Wf(t)⊤hi(tmp))
记 忆 更 新 : C i ( t + 1 ) = f i ⊙ C i ⊤ + i i ⊙ C ~ 记忆更新: C_{i}^{(t+1)}=f_{i} \odot C_{i}^{\top}+i_{i} \odot \tilde{C} 记忆更新:Ci(t+1)=fi⊙Ci⊤+ii⊙C~
O i = σ ( W o ( t ) ⊤ h i ( t m p ) ) O_{i}=\sigma\left({W_{o}^{(t)}}^{\top} \quad h_{i}^{(\mathbf{tmp})}\right) Oi=σ(Wo(t)⊤hi(tmp))
输 出 : h i ( t + 1 ) = o i ⊙ tanh ( C i ( t + 1 ) ) (6) 输出: \tag{6} h_{i}^{(t+1)}=o_{i} \odot \tanh \left(C_{i}^{(t+1)}\right) 输出:hi(t+1)=oi⊙tanh(Ci(t+1))(6)
在第 l + 1 l+1 l+1层,也就是在探索在 { j ∣ d ( i , j ) ≤ t + 1 } \{j|d(i, j) ≤ t + 1\} {j∣d(i,j)≤t+1}范围内的邻居时,有下面两个互补函数。
公式(5)通过线性attention操作 α ( ⋅ , ⋅ ) \alpha(\cdot,\cdot) α(⋅,⋅)对所有one-hop邻居的embedding h j ( t ) h_j^{(t)} hj(t)分配重要性
α ( x , y ) = softmax y ( v ⊤ tanh ( W s ⊤ x + W d ⊤ y ) ) , (7) \tag{7} \alpha(x, y)=\operatorname{softmax}_{y}\left(v^{\top} \tanh \left(W_{s}^{\top} x+W_{d}^{\top} y\right)\right), α(x,y)=softmaxy(v⊤tanh(Ws⊤x+Wd⊤y)),(7)
其中
softmax y f ( ⋅ , y ) = exp f ( ⋅ , y ) ∑ y ′ exp f ( ⋅ , y ′ ) \operatorname{softmax}_{y} f(\cdot, y)=\frac{\exp f(\cdot, y)}{\sum_{y^{\prime}} \exp f\left(\cdot, y^{\prime}\right)} softmaxyf(⋅,y)=∑y′expf(⋅,y′)expf(⋅,y)
先通过叠加Adaptive Breadth 函数传播T阶内的邻居信息,得到 { h i ( 0 ) , h i ( 1 ) , … , h i ( T ) } \left\{h_{i}^{(0)}, h_{i}^{(1)}, \ldots, h_{i}^{(T)}\right\} {hi(0),hi(1),…,hi(T)},再通过adaptive depth函数作用在它们上面进一步提取和过滤在不同深度层的信号。
初始化 μ i ( 0 ) = W x ⊤ X i \mu_{i}^{(0)}=W_{x}^{\top} X_{i} μi(0)=Wx⊤Xi,并且 μ i ( T ) \mu_{i}^{(T)} μi(T)放入最终的损失函数中。
输出 { h i ( t ) } \left\{h_{i}^{(t)}\right\} {hi(t)}:
i i = σ ( W i ( t ) ⊤ CONCAT ( h i ( t ) , μ i ( t ) ) ) f i = σ ( W f ( t ) ⊤ CONCAT ( h i ( t ) , μ i ( t ) ) ) o i = σ ( W o ( t ) ⊤ CONCAT ( h i ( t ) , μ i ( t ) ) ) C ~ = tanh ( W c ( t ) ⊤ CONCAT ( h i ( t ) , μ i ( t ) ) ) C i ( t + 1 ) = f i ⊙ C i ( t ) + i i ⊙ C ~ μ i ( t + 1 ) = o i ⊙ tanh ( C i ( t + 1 ) ) \begin{aligned} & i_{i} =\sigma \left( {W_{i}^{(t)}}^{\top} \operatorname{CONCAT}\left(h_{i}^{(t)}, \mu_{i}^{(t)}\right)\right) \\ & f_{i} =\sigma\left( {W_{f}^{(t)}}^{\top} \operatorname{CONCAT}\left(h_{i}^{(t)}, \mu_{i}^{(t)}\right)\right) \\ & o_{i} =\sigma\left( {W_{o}^{(t)}}^{\top} \operatorname{CONCAT}\left(h_{i}^{(t)}, \mu_{i}^{(t)}\right)\right) \\ & \tilde{C}=\tanh \left( {W_{c}^{(t)}}^{\top} \operatorname{CONCAT}\left(h_{i}^{(t)}, \mu_{i}^{(t)}\right)\right) \\ & C_{i}^{(t+1)} =f_{i} \odot C_{i}^{(t)}+i_{i} \odot \tilde{C} \\ & \mu_{i}^{(t+1)} =o_{i} \odot \tanh \left(C_{i}^{(t+1)}\right)\\ \end{aligned} ii=σ(Wi(t)⊤CONCAT(hi(t),μi(t)))fi=σ(Wf(t)⊤CONCAT(hi(t),μi(t)))oi=σ(Wo(t)⊤CONCAT(hi(t),μi(t)))C~=tanh(Wc(t)⊤CONCAT(hi(t),μi(t)))Ci(t+1)=fi⊙Ci(t)+ii⊙C~μi(t+1)=oi⊙tanh(Ci(t+1))
自适应广度函数 ϕ ( ⋅ ) \phi(\cdot) ϕ(⋅)作用在邻居的一个线性转换,因此满足Theorem 1的排列不变性要求。
自适应深度函数 φ ( . ) \varphi( .) φ(.)作用在不同深度的层上,和任何一阶邻居的顺序无关。
因此, ϕ ∘ φ \phi \circ \varphi ϕ∘φ复合函数也是排列不变的。
GeniePath∗表示文中GeniePath或GeniePath-lazy中效果最好的。实验中还发现,各种不同方法使用残差连接(跳跃连接)对堆叠多层卷积都是有益的。