A Comprehensive Survey on GNN

Intro

A Comprehensive Survey on Graph Neural Networks 论文笔记

Abstract

数据在诸如CV和NLP领域用Euclidean来表示, 但是还有很多数据如用户关系等non-Euclidean可以用图来表示.

本篇论文将GNN大体分为Recurrent Graph Neural Networks, Convolutional Graph Neural Networks, Graph Autoencoders, Spatial-Temporal Graph Neural Networks四类.

并在之后会讲述SOTA模型, benchmark数据集, 实际应用, 以及未来方向.

Background & Definition

GNN vs Network embedding

Network embedding 是用低维向量来表示网络节点, 保留了网络的拓扑结构以及节点信息. 随后可以使用传统的机器学习方法来进行classification等任务.

GNN 是深度学习模型, 旨在处理图相关的端到端任务.

区别在于Network embedding 包括一些非深度模型.

GNN vs Graph kernel methods

Graph kernel 可以将图或节点通过映射嵌入到向量.

Graph kernel 是直接定义的, 而不是通过网络学习.

Categorization & Framework

RecGNN

图中的节点不断与邻居交换信息, 直到稳定.

ConvGNN

通过多个卷积层提取高阶节点表示

GAE

是一种无监督的框架. 将节点encode导隐空间, 然后在重建.

STGNN

同时考虑空间及时间.

框架

任务

  • Node-level
  • Edge-level
  • Graph-level

训练

  • Semi-supervised learning for node-level classification 只给部分节点打标签, 让网络学习去给unlabeled node打标签
  • Supervised learning for graph-level classification 对整个图预测
  • Unsupervised learning for graph embedding 探索edge-level的信息, 一种方式是用Autoencoder, 另一种方式是使用negative sampling, 取一些negative pairs, 图中出现的连接节点对是positive pairs.

Recurrent Graph Neural Network

对节点循环应用相同的参数去提取特征.

一个节点的隐层状态由这个式子循环更新.
$$
h_v^{(t)} = \sum_{u\in N(v)}f(x_v, x^e_{(v, u)}, x_u, h_u^{(t-1)})\
f = (Wx + b)
$$
传统的RNN

每一次计算包含, 当前节点, 邻居节点, 边的信息, 上一个隐层状态信息. 遍历完一个节点的所有邻居相加.

此时学到的h可作为当前节点的特征.

Gated Graph Neural Network
$$
h_v^{(t)} = GRU(h_v^{(t-1)}, \sum_{u\in N(v)}Wh_u^{(t-1)})
$$
RecGNN和ConvGNN的区别

Convolutional Graph Neural Network

Spectral-based ConvGNN

$$
L = I_n - D^{-{1\over2}}AD^{-{1\over2}}\
D_{ii}=\sum_j(A_{ij})
$$

D是对角矩阵

Spatial-based ConvGNN

NN4G

直接相加节点的所有邻居信息, 还应用了residual connections 和 skip connections.

NN4G的下一层节点状态
$$
h_v^{(k)}=f(W^{(k)^T}x_v+\sum_{i=1}^{k-1}\sum_{u\in N(v)}\Theta^{(k)^T}h_u^{(k-1)})
$$
NN4G与GCN的区别是没有用正则化的邻接矩阵.

DCNN(Diffussion CNN)

这个模型认为信息的传递有特定的概率, 几轮后会平衡.

PGC-DGCNN

增加了远邻居的贡献, 定一个一个最短路径邻接矩阵S.
$$
H^{(k)}=\Vert^r_{j=0}f((\tilde D^{(j)})^{-1}S^{(j)H^{(k-1)}}W^{(j,k)})\
$$

MPNN(Message Passing NN)

它将Conv视作一个信息传递的过程, 将信息从一个节点通过边传递到另一个节点.
$$
h_v^{(k)}=U_k(h_v^{(k-1)}, \sum_{u\in N(v)}M_k(h_v^{(k-1)}, h_u^{(k-1)}, x_{vu}^e))
$$

GIN(Graph Isomorphism )

MPNN不能分别不同的图结构, 基于此GIN改进了一下.

GAT(Graph Attention Network)

引入了Attention 在两个连接的节点

Comparison Spectral and Spatial models

  • Spectral 低效
  • Spectral 需要图的傅立叶变换
  • Spectral 只能用于无向图

Pooling Modules

  • 通过下采样去减少参数去生成低维的特征, 避免过拟合, 排列不变形以及计算复杂度的问题
  • readout计算用于生成graph-level representation

mean/max/sum池化是比较常用的

Graph Autoencoders

将图映射到隐空间然后再重建图结构

Network Embedding

目标是隐空间信息.

这是一个低维的节点向量表示, 保留了节点的拓扑信息.
$$
L_1=\sum_{(v,u)\in E}A_{v,u}\Vert enc(x_v)-enc(x_u)\Vert^2\
L_2=\sum_{v\in V}\Vert(dec(enc(x_v))-x_v)\odot b_v\Vert^2
$$

Graph Generation

目标是生成图.

学习图的生成, 通过encode到隐空间然后再decode. 主要用于解决分子生成问题.

Spatial-Temporal GNN

时空信息会被同时考虑.

Application

  • CV
  • NLP
  • Traffic
  • Recommender System
  • Chemistry

Future Directions

Model depth

深度越大效果反而不好

oversmoothing

Scalability trade-off

通过采样, 节点可能丢失邻居信息.

Heterogenity

当前的GNN无法直接应用到不同的图

异质图 节点不同类

Dynamicity

考虑动态的空间关系

问题

  • spectral
  • spatial-temporal

研究

  • GGNN(GRU GNN)
  • GCN
  • PGC-DGCNN
  • DNGR
  • GIN
  • GAT

References

https://www.jiqizhixin.com/articles/2018-12-14-4