作者: 纪厚业,北京邮电大学博士生,主要关注异质图神经网络及其应用.

Geom-GCN: Geometric Graph Convolutional Networks

Geom-GCN: Geometric Graph Convolutional Networks

知乎专栏对公式支持较好, 见 https://zhuanlan.zhihu.com/c_1158788280744173568

个人公众号 图与推荐

Geom-GCN: Geometric Graph Convolutional Networks

Introduction

图神经网络(Graph Neural Network)已经成为深度学习领域最热门的方向之一。作为经典的Message-passing模型,图神经网络通常包含两步:从邻居节点收集消息message,然后利用神经网络来更新节点表示。但是Message-passing模型有两个基础性的问题:

  • 丢失了节点与其邻居间的结构信息。

    • 主要指拓扑模式相关的信息。

    • GNN的结构捕获能力已经有了相关论文。下图来自19ICLR GIN How Powerful are Graph Neural Networks

      Geom-GCN: Geometric Graph Convolutional Networks

  • 无法捕获节点之间的长距离依赖关系。

    • 大多数MPNNs仅仅聚合k跳内的节点邻居消息来更新节点表示。但是,图上两个节点可能具有相似的结构(社区中心、桥节点),即使他们的距离很远。
    • 可能的解法是将现有的GNN堆叠多层,但是这可能带来过平滑问题。

针对上述问题,本文提出了一种geometric aggregation scheme,其核心思想是:将节点映射为连续空间的一个向量(graph embedding),在隐空间查找邻居并进行聚合。

本文的主要贡献:

  • 提出了一种geometric aggregation scheme,其可以同时在真实图结构/隐空间来聚合信息来克服MPNNs两个基础性缺陷。
  • 提出了一种基于geometric aggregation scheme的图神经网络Geom-GCN。
  • 实验验证了模型的效果。

Model

Geometric aggregation scheme

如下图所示,Geometric aggregation scheme主要包含3个部分:node embedding (panel A1-A3),structural neighborhood (panel B) 和 bi-level aggregation (panel C)。

Geom-GCN: Geometric Graph Convolutional Networks

A1->A2: 利用graph embedding技术将图上的节点(如节点vv)映射为隐空间一个向量表示zv\boldsymbol{z}_{v}

A2->B1:针对某一个节点vv(参看B2中的红色节点)周围的一个子图,我们可以找到该节点的一些邻居N(v)=({Ng(v),Ns(v)},τ)\mathcal{N}(v)=\left(\left\{N_{g}(v), N_{s}(v)\right\}, \tau\right)

B2:圆形虚线(半径为ρ\rho)内的节点代表了红色节点vv在隐空间的邻居Ns(v)={uuV,d(zu,zv)<ρ}N_{s}(v)=\left\{u | u \in V, d\left(\boldsymbol{z}_{u}, \boldsymbol{z}_{v}\right)<\rho\right\};圆形虚线外的节点代表了节点在原始图上的真实邻居Ng(v)={uuV,(u,v)E}N_{g}(v)=\{u | u \in V,(u, v) \in E\}。既然节点已经表示为向量,那么不同节点之间就有相对关系。在B2的3x3网格内,不同节点相对于红色节点有9种相对位置关系r1,...,r9r_1,...,r_9,关系映射函数为τ:(zv,zu)rR\tau:\left(\boldsymbol{z}_{v}, \boldsymbol{z}_{u}\right) \rightarrow r \in R

B3:基于Bi-level aggregation来聚合邻居N(v)\mathcal{N}(v)的信息并更新节点vv的表示。

  • Low-level aggregation pp: 聚合节点vv在某个关系rr下的邻居的信息.这里用一个虚拟节点的概念来表示.

e(i,r)v,l1=p({huluNi(v),τ(zv,zu)=r}),i{g,s},rR e_{(i, r)}^{v, l 1}=p\left(\left\{\boldsymbol{h}_{u}^{l} | u \in N_{i}(v), \tau\left(\boldsymbol{z}_{v}, \boldsymbol{z}_{u}\right)=r\right\}\right), \forall i \in\{g, s\}, \forall r \in R

  • High-level aggregation qq: 聚合节点vv在多种关系RR下的邻居的信息.
    mvl1=qi{g,s},rR((e(i,r)v,l1,(i,r))) \boldsymbol{m}_{v}^{l 1}=\underset{i \in\{g, s\}, r \in R}{q}\left(\left(\boldsymbol{e}_{(i, r)}^{v, l 1},(i, r)\right)\right)

  • Non-linear transform: 非线性变化一下
    hvl1=σ(Wlmvl1) \boldsymbol{h}_{v}^{l 1}=\sigma\left(\boldsymbol{W}_{l} \cdot \boldsymbol{m}_{v}^{l 1}\right)
    其中,hvl\boldsymbol{h}_{v}^{l}是节点vv在第l层GNN的表示.

这里本质上:先针对一种关系rr来学习节点表示,然后再对多个关系下的表示进行融合.

Geom-GCN: An implementation of the scheme

这里将上一节中很抽象的Low-level aggregation pp和High-level aggregation qq以及关系映射函数τ\tau。给出了具体的形式:

关系映射函数τ\tau考虑了4种不同的位置关系.

Geom-GCN: Geometric Graph Convolutional Networks

Low-level aggregation pp其实就是GCN中的平均操作.
e(i,r)v,l1=uNi(v)δ(τ(zv,zu),r)(deg(v)deg(u))12hul,i{g,s},rR e_{(i, r)}^{v, l 1}=\sum_{u \in N_{i}(v)} \delta\left(\tau\left(\boldsymbol{z}_{v}, \boldsymbol{z}_{u}\right), r\right)(\operatorname{deg}(v) \operatorname{deg}(u))^{\frac{1}{2}} \boldsymbol{h}_{u}^{l}, \forall i \in\{g, s\}, \forall r \in R
High-level aggregation qq本质就是拼接操作.
hvl1=σ(Wli{g,p}llrRe(i,r)v,l1) \boldsymbol{h}_{v}^{l 1}=\sigma\left(W_{l} \cdot \underset{i \in\{g, p\}}{\|} \operatorname{ll}_{r \in R} \boldsymbol{e}_{(i, r)}^{v, l 1}\right)

How to distinguish the non-isomorphic graphs once structural neighborhood

本文argue之前的工作没能较好的对结构信息进行描述.这里给了一个case study来说明Geom-GCN的优越性.

Geom-GCN: Geometric Graph Convolutional Networks

假设所有节点的特征都是aa.针对节点V1V_1来说,其邻居分别为{V2,V3}\{V_2, V_3\}{V2,V3,V4}\{V_2, V_3, V_4\}. 假设采用mean或者maximum的aggregator.

  • 之前的映射函数ff, Agg{f(a),f(a)}=Agg{f(a),f(a),f(a)}Agg\{f(a),f(a)\}=Agg\{f(a),f(a),f(a)\}.则两种结构无法区分.
  • 本文的映射函数fif_i, Agg{f2(a),f8(a)}Agg{f2(a),f7(a),f9(a)}Agg\{f_{2}(a), f_{8}(a)\}\neq Agg\{f_{2}(a), f_{7}(a), f_{9}(a)\}, 则两种结构可以区分.

更多关于GNN表示能力的论文参见:19ICLR GIN How Powerful are Graph Neural Networks

Experiments

本文主要对比了GCN和GAT,数据集见下表:

Geom-GCN: Geometric Graph Convolutional Networks

不同数据集的homophily可以用下式衡量.
Geom-GCN: Geometric Graph Convolutional Networks

本文为Geom-GCN选取了3种graph embedding方法

  • Isomap (Geom-GCN-I),
  • Poincare embedding (Geom-GCN-P)
  • struc2vec (GeomGCN-S).

实验结果见下表:

Geom-GCN: Geometric Graph Convolutional Networks

作者又进一步测试了两个变种:

  • 只用原始图上邻居,加上后缀-g. 如Geom-GCN-I-g
  • 只用隐空间邻居,加上后缀-s. 如Geom-GCN-I-s

结果见下图:

Geom-GCN: Geometric Graph Convolutional Networks

可以看出:隐空间邻居对β\beta较小的图贡献更大.

然后,作者测试了不同embedding方法在选取邻居上对实验结果的影响.

Geom-GCN: Geometric Graph Convolutional Networks

可以看出:这里并没有一个通用的较好embedding方法.需要根据数据集来设置,如何自动的找到最合适的embedding方法是一个feature work.

最后是时间复杂度分析.本文考虑了多种不同的关系,因此,Geom-GCN的时间复杂度是GCN的2R2|R|倍.另外,和GAT的实际运行时间相差无几,因为attention的计算通常很耗时.

Geom-GCN: Geometric Graph Convolutional Networks

Conclusion

本文针对MPNNs的两个基础性缺陷设计了Geom-GCN来更好的捕获结构信息和长距离依赖.实验结果验证了Geom-GCN的有效性.但是本文并不是一个end-to-end的框架.有很多地方需要手动选择设计.

相关文章:

  • 2021-09-24
  • 2021-12-04
  • 2021-11-30
  • 2021-12-27
  • 2021-04-01
  • 2021-07-27
  • 2022-01-19
  • 2021-04-09
猜你喜欢
  • 2022-03-03
  • 2021-10-10
  • 2021-10-09
  • 2021-09-09
  • 2021-11-29
  • 2021-10-10
相关资源
相似解决方案