Introduction-GNN

Introduction to Graph Neural Networks

Note of book 《Introduction to Graph Neural Networks》

Introduction

所谓的图graph就是一种数据结构,由节点集合与边集合组成。具有图结构的数据存在于众多的领域中,包括社交网络、化学分子、知识图谱等。最近图神经网络的出现使得在图上的深度学习成为了可能,图神经网络也受到了大量的研究关注。

图神经网络起源于两大部分,卷积神经网络(Convolutional Neural Network)与图嵌入(Graph Embedding)。

CNN在图像(image)上的成功在于它能够导出多尺度(multi-scale)局部化(localized)的空间特征。应用CNN的三个关键点在于局部连接(local connection)、共享参数(shared weight)以及多层结构(multi-layer)。这三个点对于图同样是很重要的,首先图中的绝大多数结构都是局部连接的;其次,共享参数能够帮助减少传统的基于谱图理论的图算法计算复杂度;最后,多层的结构能够用来捕获图中的层级结构信息。但是,由于图像是规则的欧几里得域(Euclidean domian)下的数据结构,而图是非欧几里得数据的(non-Euclidean),因此我们无法直接将传统的CNN应用到图上。我们需要一种新的模型,在保留CNN的三个关键特征的同时,能够处理非欧式空间下的图结构。

简单辨析下欧几里得的数据以及非欧几里得下的数据:

在机器学习中处理的数据可以分为欧几里得和非欧几里得两类。两者的核心区别在于是否“排列整齐”,前者对于数据,可以使用\(\mathbb{R}^n\)的空间进行描述,不丢失任何的原始信息。这一类数据的代表是图像、文字、一般的数值数据等。非欧几里得的数据实际广泛存在,主要有图(graph)和流型(mainfold)两类。对于这一类的数据,比如graph中的每个节点的邻居节点、邻居边都各不相同,数量不一,无法使用一个\(n\)维的空间来完全描述此类数据。

图嵌入的发展收到词嵌入(word embedding),Deepwalk被认为是首个学习图嵌入的方法,它将图中的每个节点都表示为了\(n\)维的嵌入向量。Deepwalk首先在图上进行随机游走采样,之后应用SkipGram方法学习到合适的嵌入表示。在Deepwalk后,node2Vec,LINE,TADW这些方法逐步发展。但是这些方法存在两方面的缺点,一个是由于需要随机游走,学习到的方法很难直接用到新数据上,泛化性较差;另一方面是没有参数共享,导致随着图节点增多,模型参数也不断增加。

图神经网络在前两者的基础上,首先尝试将整个图都嵌入到欧式空间中,之后应用CNN的思想增强模型的表达能力,让嵌入能够表示更多的原始信息。

在这本书中,对于GNN的分类为:

  • 循环图神经网络(recurrent graph neural networks)
  • 卷积图神经网络(convolutional graph neural networks)
  • 图自编码器(graph auto-encoders)
  • 时空图神经网络(spatial-temporal graph neural networks)

Vanilla Graph Neural Networks

关于图神经网络GNN的概念实际上在2005年前后就已经有对应概念的提出[The graph neural network model; Graphical-based learning environments for pattern recognition]。

接下来介绍一个原始的模型vanilla GNN。它针对的是无向同质的图。

核心包括两个函数,局部转移函数(local transition function)以及局部输出函数(local output function)。 \[ \mathbf{h}_v = f(\mathbf{x}_v,\mathbf{x}_{co[v]}, \mathbf{x}_{ne[v]}, \mathbf{h}_{ne[v]},) \\ \mathbf{o}_v = g(\mathbf{h}_v, \mathbf{x}_v) \] 其中,\(\mathbf{x}_{co[v]}\)是邻居边的特征,\(\mathbf{x}_{ne[v]}\)是邻居节点的特征,\(\mathbf{h}_{ne[v]}\)是邻居节点的隐藏状态。

vanilla GNN不断迭代更新函数\(h\) \(T\)步,直到到达固定点,使得\(\mathbf{h}_v^T\approx \mathbf{h}_v^{T-1}\)。这一操作的原理是Banach’s fixed point theorem[An Introduction to Metric Spaces and Fixed Point Theory]。到达不动点之后,再进行梯度下降。

vanilla GNN的几个缺点:

  • 计算不够有效,每次都需要不断迭代T步之后才能进行梯度下降,实际上一般的神经网络是直接产生一个输出后就可进行梯度更新。
  • 在T步的迭代中,vanilla GNN一直使用的是一样的参数,这就导致图的层级结构信息没有能够被显式的学习。实际上我们可以让模型的每次迭代都学习不同的参数。
  • vanilla GNN没有有效的建模边的信息。
  • 如果图中的节点数量很多,使用不动点这种原理,可能会导致各个节点过平滑,差异性不够

Graph Convolutional Networks

主要有两类在图上进行卷积操作的GNN,一类是谱空间下卷积操作,一类是空间领域下的卷积操作。

Spectral Methods

Spectral GNN

2014年。Spectral networks and locally connected networks on graphs

通过对图拉普拉斯矩阵进行特征分解,定义了在傅里叶域下的卷积操作。 \[ \mathbf{g}_\theta \star \mathbf{x} = \mathbf{U} \mathbf{g}_\theta \mathbf{U}^T \mathbf{x} \] 详细的可以看之前的GCN笔记。

ChebNet

2011年。Convolutional neural networks on graphs with fast localized spectral filtering.

对上面公式中的\(\mathbf{g}_\theta\)使用切比雪夫多项式进行估计,从而无需计算特征向量\(\mathbf{U}\)

GCN

2017年。Semi-supervised classification with graph convolutional networks.

出现了著名的图卷积算子,它实际是在CheNet进一步的简化,约定了切比雪夫多项式只包括前两步。 \[ \mathbf{Z}=\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} \mathbf{X} \Theta \]

AGCN

2018年,Adaptive graph convolutional neural networks.

AGCN假设除了图的结构能够表现图中节点的关系外,它们之间应该还存在某种隐式的联系。

Spatial Methods

基于空间域的方法是直接在graph上进行操作,不需要计算特征向量。

Spatial methods 和 Spectral methods的对比:

由于效率、通用性和灵活性问题,空间模型优于光谱模型。首先,光谱模型的效率低于空间模型。谱模型要么需要进行特征向量计算,要么需要同时处理整个图。由于空间模型通过信息传播直接在图域中执行卷积,因此空间模型更适合于大图形。计算可以在一批节点中进行,而不是整个图。其次,依赖于图Fourier基的谱模型很难推广到新的图。它们假设一个固定的图。对图的任何扰动都会导致特征基的变化。另一方面,基于空间的模型在每个节点上执行局部的图形卷积,在这些节点上可以很容易地在不同的位置和结构之间共享权重。第三,基于谱的模型仅适用于无向图。基于空间的模型更灵活地处理多源图形输入

Neural FPS

2015年,Convolutional networks on graphs for learning molecular fingerprints

核心思想是对于具有不同度数的节点学习不同的权值矩阵。缺点是很难直接应用到大规模的图上。

PATCHY-SAN

2016年,Learning convolutional neural networks for graphs.

核心思想是对于图中的每个节点,基于广度优先搜索选择固定\(k\)个邻居作为接受域,这样就将图处理问题转化为了传统的欧几里得数据问题,最后输入到CNN中进行处理。

DCNN

2016年,Diffusion-convolutional neural networks.

扩散卷积神经网络

DGCN

2018年,Dual graph convolutional networks for graph-based semisupervised classification

重点读:双向卷积神经网络,既考虑了局部一致性,也考虑了全局一致性

LGCN

2018年,Large-scale learnable graph convolutional networks.

MONET

2017年,Geometric deep learning on graphs and manifolds using mixture model CNNs.

GraphSAGE

2017年

Graph Attention Network

GAT

2018年,Graph attention networks

使用多头注意力机制。

GaAN

2018年,GaAN: Gated attention networks for learning on large and spatiotemporal graphs.

同样使用多头注意力机制,但是使用了key-value的机制。

Graph Recurrent Networks

融合了gate机制的模型,核心思想是提升图信息long term聚和的效果。

GGNN

2016年,Gated graph sequence neural networks.

利用GRU,每次聚合\(T-1\)步下的邻居信息,输入GRU,得到最后的输出

Tree-LSTM

2015年,Improved semantic representations from treestructured long short-term memory networks.

利用LSTM

Graph LSTM

2017年,Cross-sentence N-ary relation extraction with graph LSTMs.

Sentence-LSTM

2018年,Sentence-state LSTM for text representation.

将文本直接转换为graph,然后使用GNN进行学习,在很多NLP任务上表现出了很好的性能。

Graph Redidual Networks

使用残差链接,为了缓解在GCN中聚合多层信息效果反而下降的情况。

Highway GCN

2018年,Semi-supervised user geolocation via graph convolutional networks.

在更新节点状态时,使用了门机制。

Jump Knowledge Network

2018年,Representation learning on graphs with jumping knowledge networks.

每一层都会直接连接向最后一层。

DEEPGCNS

2019年,DeepGCNs: Can GCNs go as deep as CNNs?

使用skip connection和dense connection解决两个问题:GNN中的梯度消失以及过度平滑。

Heterogeneous Graph

  • HAN:
  • PP-GCN:Fine-grained event categorization with heterogeneous graph convolutional networks.
  • ActiveHNE:Activehne: Active heterogeneous network embedding.

Multi-Dimensional Graph

  • Multi-dimensional graph convolutional networks

Sampling

  • GraphSAGE(2017): 邻居节点随机采样
  • PinSage(2018): 基于邻居节点重要性采样,Graph convolutional neural networks for web-scale recommender systems.
  • FastGCN:FastGCN: Fast learning with graph convolutional networks via importance sampling
  • Adaptive sampling towards fast graph representation learning:参数化,可训练的采样器
  • SSE:Learning steady-states of iterative algorithms over graphs.

Graph Auto Encoder

  • GAE: Variational graph auto-encoders.
  • ARGA: Adversarially regularized graph autoencoder for graph embedding.
  • DGI: Deep graph infomax.

General Framework

  • MPNN:
  • NLNN:Non-local neural networks.
  • GN:Relational inductive biases, deep learning, and graph networks.