Deep Learning on Graphs: A Survey,一篇关于图深度学习的综述,总结了多种图神经网络,及前者在这个领域的一些杰出的工作和结论。
图深度学习的面临的主要问题
作者在开头提出了现在图深度学习面临的四个挑战:
- Irregular structures of graphs. 图的不规则结构,总的来说就是之前使用于机器学习的一些操作如CNN,池化等操作无法照搬到图上来用。
- Heterogeneity and diversity of graphs. 图的异构和多样性。这个部分主要是关于图分类的问题,当一个图通过神经网络处理后,如何通过这个处理结果来判断图的结构等信息。Large-
- Large-scale graphs. 大图。顾名思义,当图有大量节点和边时,算法复杂度的问题就至关重要。
- Incorporating interdisciplinary knowledge. 跨学科的应用。作者给出了一个具体的例子,当生成分子图时,目标函数和化学约束通常时不可微的,这会导致梯度下降的方法难以实现。总的来说就是跨学科时,图中的节点和边被赋予了不同的性质,不能简单地用原来处理图的方法来处理。
图神经网络的分类
作者把图神经网络分为五类:RNNs,GCNs, GAEs, Graph RL, Graph Adversarial。分别是图循环神经网络,图卷积神经网络,图自动编码器,图强化学习,图对抗训练。下面就逐一来介绍这五种图神经网络,关于用到的符号,笔者将在下文对应解释,就不在这里统一标记出来。
GRNNs
图循环神经网络这一部分,作者把GRNN分为节点级(Node level)和图级(Graph level),对应的介绍了三种图神经网络。
RNN(GNN)
作者提到,RNN其实就是最早的GNN。RNN的主要思想其实就是对图的节点进行“编码”,这里的编码不是指GAE那种,而是理解为我把一个节点包含的信息(自身的信息,邻居的信息,相关的边信息)整合后赋给节点。最后每个节点都有一个对应的信息向量。然后把这个节点的信息向量通过一个输出函数(或网络)得出最后的结果。
上述公示的第一个就是对节点进行“信息编码”,第二公式则是最后的输出公式,第一个公式是这个方法的核心部分,其中s就是节点的低维向量表示,是节点本身的向量表示,
则表示边的向量表示。累加符号中N(i)是节点i的邻居的集合,简而言之就是把节点i自己和他的邻居信息进行了简单的整合,赋给si,然后用si来表示节点i的信息。例如下图的例子。每个顶点都有自己的低维信息向量表示
。如图中s1的计算就应该为: