本文详细解读了蚂蚁金服发表于 KDD 2018 的论文 GeniePath,一种自适应感受路径的图神经网络(Graph Neural Networks, GNN)方法。其创新点在于能够根据具体任务自动选取有用的高阶邻域信息。6月3日21:00-22:00,本文作者王硕将在集智俱乐部 B 站直播间解读这篇论文。直播间地址见文末。

集智图网络线上读书会正式公开招募,如果你也对图网络感兴趣,想分享你最近读过的论文,欢迎填表报名。(详情见文末)

图(Graph),或者称为 网络 (Network),是一种由对象(节点,node)和关系(连边,edge)构成的数据结构。Graph Neural Networks: A Review of Methods and Applications [1]生活中很多数据或系统可以被建模成图,例如社交网络,蛋白质-蛋白质交互网络,疾病传播网络,知识图谱等。图强大的建模和表达能力也吸引了越来越多的学者的关注。与我们熟知的基于格点(2D gird)的图像数据不同,图是非欧数据(non-Euclidean data),为了能够用神经网络进行运算,我们需要先得到节点和连边的一种向量表示,这项技术被称为图表示学习(graph representation learning),或者叫网络嵌入(network embedding),下文不做区分。

受到自然语言处理中 word2vecEfficient Estimation of Word Representations in Vector Space[2]的启发,诞生了 DeepWalkDeepwalk: Online learning ofsocialrepresentations [3] 、node2vecnode2vec: Scalable feature learning for networks[4]、LINELINE: Large-scale Information Network Embedding [5]等网络嵌入算法,它们的思路是将节点类比为自然语言中的单词,在图上生成一些经过随机游走(Random Walk)产生的节点序列,把这些序列看成句子。类似于 word2vec 的思想,每个节点都可以用处于其上下文(context)的节点来表示,得到一个长度远小于图上节点数的低维稠密的实值向量。该向量编码了(encode) 图的结构信息,我们可以利用该向量做节点分类、链路预测等下游任务。

需要注意的是,很多人(尤其是做计算机视觉的人)可能对嵌入这项技术并不熟悉。因为图像天然就是用低维稠密的实值向量来表示的。图像上,每个像素点都对应一个 RGB 值,每个 RGB 通道都是 [0, 255] 的数。此外,颜色空间有多种,比如 RGB、HSV 等,我们会在不同的任务中选取更适合的颜色表示方式。(用 Photoshop 调过照片的朋友可能会更有体会。)

同样的道理,嵌入得到的向量化的节点和连边的表示也是为了图上的下游任务来服务的。而基于随机游走的方法得到的表示信息往往无法针对具体任务进行优化,此外,随机游走算法只能得到图上的结构信息,而无法融合节点的特征信息。因此,研究人员又提出了基于神经网络架构的图表示学习,称为图神经网络 Graph Neural Network (GNN)。感兴趣的朋友可以阅读相关的综述文章。A Gentle Introduction to Graph Neural Network [6] ,Graph Neural Networks: A Review of Methods and Applications[7],A Comprehensive Survey on Graph Neural Networks[8。这些算法的基本思路是,针对特定下游任务用端到端 (end-to-end) 的方式进行学习训练,并且可以融合节点的特征信息,比如cora [9]引文数据集中,节点的结构信息包含了文章的摘要,这对于做节点分类和链路预测会起到重要作用。我们知道,在 CNN 中,卷积核所定义的是对图像上每个像素点与其周围像素点进行信息交互的方式。同样,GNN中,每个节点也有邻域的概念(由图的结构信息所定义),图上的卷积核也是要进行节点和其邻居的信息交互。这里,卷积核的大小往往是固定的,受限于运算复杂度,我们一般使用一阶或者二阶邻域。

有代表性的 GNN 算法包括,GCNSemi-supervised classification with graph convolutional networks[10], GATGraph Attention Networks[11],GraphSAGEInductive Representation Learning on Large Graphs[12]。此外,开源社区也出现了一些 GNN 的开发框架,其中,PyTorch Geometric (PyG) [13]基于 PyTorch 实现,熟悉 PyTorch 的人可以很舒服地使用 PyG 进行 GNN 算法的开发。PyG 提供了一个基础组件,MessagePassing。它认为像 GCN、GAT、GraphSAGE 等算法可以抽象为如图所示的组件。每一层图卷积层要做的就是和相应领域 集智 内的节点进行信息的交互。不同的算法的区别在于其所定义的消息的映射方式和领域的选取不通。

这里提 到了一个概念 ,排列不变性(permutation invariant)。 这里DeepSets: Modeling Permutation Invariance给出了一个通俗的解释。[15]

f(a, b, c)=f(a, c, b)=f(b, a, c)=…同样的参数输入到函数中,它们的排列顺序并不影响结果。数据结构——集合(set)会用到这样的不变性,相应地,那些在建模中用到集合概念的问题都要遵循排列不变性,例如点云,多主体强化学习,图片场景中多个目标的集合等。在 DeepMind 文章Graph Matching Networks for Learning the Similarity of Graph Structured Objects [16]中也有提到排序不变性。”In the past few years graph neural networks (GNNs) have emerged as an effective class of models for learning representations of structured data and for solving various supervised prediction problems on graphs. Such models are invariant to permutations of graph elements by design and compute graph node representations through a propagation process which iteratively aggregates local structural information. These node representations are then used directly for node classification, or pooled into a graph vector for graph classification. “

本文在算法部分(Proposed Approaches)详细介绍了排列不变性。函数空间要满足图数据所需要的排列不变性。我们要学的是一个函数 f,将图 G 映射到嵌入 H。我们要假设的是该 f 具有排列不变性,学习任务与邻居节点的顺序是无关的。文中用下面公式来定义聚合(aggregator)函数 f 的这个性质,其中 sigma 表示的是任意的排列。

然后提到了一个定理,当且仅当函数 f 可以被分解为 集智 , 其中 phi 和 rho 是两个映射。那么 f 是具有排列不变形的。并且两个具有排列不变形的函数的复合函数 g∘ f 可以等价于 g(f(x))。也是满足排列不变性的,因此,我们可以将函数进行堆叠来设计神经网络。GraphSAGE 提供 LSTM 的聚合器,这种聚合器是不具有 Permutation In variant 的,因为 LSTM 接收的是遍历节点的隐变量序列,排序是敏感的。此外,这里的 Permutation Invariant 也指图是静态的,不随时间演化。 因为文章中提到 “This is in opposition to temporal graphs.”

Adaptive Path Layer 是文章的核心内容,相比其他算法中使用事先定义好的路径(pre-defined paths),例如一阶邻居等,Adaptive Path Layer 目标是自学习感受路径,信号在学到的路径上传播。这个问题可以等效于学习每个节点的一个合理的子图,该子图包括两部分,广度方向上给出一阶邻居中节点的权重,深度方向上 t 跳范围内重要的邻居。自适应广度函数定义为 集智 其中 theta 代表参数。H 代表的是节点的嵌入(或者叫隐状态表示)。自适应深度函数定义为, 集智 其中,Phi 代表参数。

我们可以将本文和 GAT 或者 GraphSAGE 等常用的非频域的 GNN 框架的区别认为是在它们的基础上加了 memory(通过 LSTM 实现)。存储通过一阶邻域进行的信息传递得到的高阶领域节点的信息。所谓的自适应,自学习,其实就是通过 LSTM 的门对 LSTM 的 memory 所存储的高阶领域信息的提取和过滤 (分别对应遗忘门和输出门)所体现的。而一阶邻域和高阶领域的信息交互体现在 LSTM 的输入门。

注意,广度函数的输出的 H 上标是 tmp,只有将 H_tmp 再输入到深度函数中,才达到一个 epoch 的训练。

下面是文章给出的实验结果,对比的算法包括 MLP,node2vec,以及几个经典的 GCN 算法。其中 MLP 输入的仅是节点的特征信息,无法利用图结构信息。而 node2vec 输入的仅是图结构信息,无法利用节点的特征信息。

我们能看到 GeniePath 在蛋白质交互网络数据 PPI 上的表现显著强于其他算法,我猜想其中的原因与 PPI 的数据特点有关。在文章Link Prediction Based on Graph Neural Networks[17] 有这样一段话。“the common neighbor heuristic assumes that two nodes are more likely to connect if they have many common neighbors. This assumption may be correct in social networks, but is shown to fail in protein-protein interaction (PPI) networks –two proteins sharing many common neighbors are actually less likely to interact” ,一般情况下,我们会假设两个节点有更多的共同邻居,它们会倾向于更加相似,但是在蛋白质中,如果两个蛋白质有越多的共同节点,它们更倾向于不发生反应。GeniePath 通过 LSTM 组件融合了图中的高阶邻居信息,使得得到更高的准确率。

GeniePath 的 PyTorch 复现,后续会发到 https://shawnwang.tech, https://github.com/shawnwang-tech/GeniePath-pytorch。 感兴趣的朋友可以关注。

引用文章链接

[1]: Graph Neural Networks: A Review of Methods and Applications

链接地址:https://arxiv.org/pdf/1812.08434.pdf

[2]: Efficient Estimation of Word Representations in Vector Space

链接地址: https://arxiv.org/abs/1301.3781

[3]: Deepwalk: Online learning of social representations

链接地址:https://arxiv.org/abs/1403.6652

[4]: node2vec: Scalable feature learning for networks

链接地址: https://arxiv.org/abs/1607.00653

[5]:LINE: Large-scale Information Network Embedding

链接地址: https://arxiv.org/abs/1503.03578)

[6]: A Gentle Introduction to Graph Neural Network

链接地址:https://towardsdatascience.com/a-gentle-introduction-to-graph-neural-network-basics-deepwalk-and-graphsage-db5d540d50b3

[7]: Graph Neural Networks: A Review of Methods and Applications

链接地址: https://arxiv.org/abs/1812.08434

[8]: A Comprehensive Survey on Graph Neural Networks

链接地址:https://arxiv.org/abs/1901.00596

[9]: cora

链接地址: https://relational.fit.cvut.cz/dataset/CORA

[10]: Semi-supervised classification with graph convolutional networks

链接地址: https://arxiv.org/abs/1609.02907

[11]: Graph Attention Networks

链接地址: https://arxiv.org/abs/1710.10903

[12]: Inductive Representation Learning on Large Graphs

链接地址: https://arxiv.org/abs/1706.02216

[13]: PyTorch Geometric (PyG):

链接地址:

https://rusty1s.github.io/pytorch_geometric/build/html/index.html

[14]:Deformable Convolutional Networks :

链接地址:https://arxiv.org/abs/1703.06211

[15]:DeepSets: Modeling Permutation Invariance:

链接地址:https://www.inference.vc/deepsets-modeling-permutation-invariance/

[16]: Graph Matching Networks for Learning the Similarity of Graph Structured Objects :

链接地址:https://arxiv.org/abs/1904.12787

[17]: Link Prediction Based on Graph Neural Networks :

链接地址:https://arxiv.org/abs/1802.09691

图神经网络是深度学习领域的前沿热点议题,尤其是图网络(Graph Networks)提出以来,深度学习有了实现因果推理的潜力。为了持续追踪相关领域的前沿进展,集智俱乐部联合北师大系统科学学院张江课题组,组织了以图网络为主题的线上读书会,研讨最新论文,孕育研究思路。

每一期线上读书会由一位成员主讲,形式为论文分享,时间为每周一 21:00-22:00。加入读书会群需报名审核,原则上参与者应有能力独立完成一次线上分享。如果你也正在从事图网络与深度学习方面的研究工作或技术实践,或者对该领域有强烈的学习意愿,欢迎填写报名表,申请加入“集智图网络论文分享小组”!

报名请点击下方小程序,填写报名表。填表之后会有入群方式。