GNN学习—综述

第0篇—GNN综述

  • 一 GNN产生原因
  • 二 GNN发展
  • 三 GNN分类
    • 3.1 RecGNNs(Recurrent Graph Neural Networks)
    • 3.2 ConvGNNs(Convolutional Graph Neural Networks)
      • 3.2.1 基于频谱和基于空间的方法
      • 3.2.2 用于图分类的ConvGNN
      • 3.2.3 用于节点分类的ConvGNN
    • 3.3 GAEs(Graph Autoencoders)
      • 3.3.1 网络嵌入
      • 3.2.2 图生成分布
    • 3.4 STGNNs(Spatial-temporal Graph Neural Networks)
  • 四 GNN框架
  • 五 GNN未来研究方向
  • 六 概念区分
    • 图神经网络 VS 网络嵌入
    • 图神经网络 VS 图核方法

主要基于下面这篇综述的文章,对GNN有一个大概的总结
A Comprehensive Survey on Graph NeuralNetworks

GNN学习—综述_第1张图片

一 GNN产生原因

一方面,深度学习可从欧氏空间数据中提取潜在表示,使得神经网络成功推动了模式识别和数据挖掘的研究,但在许多实际应用场景中的数据是从非欧式空间生成的,例如图数据。另一方面,机器学习算法的核心假设是实例彼此独立,而图数据是不规则的,图中每个节点通过一些复杂的链接信息与其邻居相关,这些信息可用于捕获节点间的相互依赖关系。因此,为了将深度学习方法应用到图数据领域,产生了图神经网络——GNN。

欧式空间就是二维空间、三维空间以及继承三维空间定理的N维空间。是一个有「内积」的线性空间,包括文本、音频、图像、视频等数据。这些数据有一个特点就是排列整齐。
非欧几里德结构排列不整齐,具体体现在:对于数据中的某个点,难以定义出其邻居节点,或者是不同节点的邻居节点的数量是不同的。

二 GNN发展

GNN学习—综述_第2张图片

早期的研究属于递归图神经网络(RecGNN)类别。他们通过迭代传播邻居信息直到到达稳定的固定点来学习目标节点的表示。
之后受到CNN在计算机视觉领域成功的鼓舞,并行开发了许多重新定义图数据卷积概念的方法,这些方法以卷积图神经网络(ConvGNN)为基础。 ConvGNN分为两个主要流,基于频谱的方法和基于空间的方法。

三 GNN分类

综述中将GNN分为以下四类:

  • RecGNNs(递归图神经网络 )
  • ConvGNNs(卷积图神经网络)
  • GAEs(图自编码器)
  • STGNNs(时空图神经网络)
    GNN学习—综述_第3张图片

3.1 RecGNNs(Recurrent Graph Neural Networks)

递归图神经网络旨在学习具有递归神经体系结构的节点表示。 假设图中的节点不断与其邻居交换信息,直到达到稳定的平衡。这种消息传递的思想被基于空间的卷积图神经网络所继承。

3.2 ConvGNNs(Convolutional Graph Neural Networks)

卷积图神经网络通过聚合节点v自身特征及其邻居节点的特征来生成节点v的表示。
下图展示了ConvGNNs与RecGNNs的不同:ConvGNNs通过堆叠多个卷积层提取高级节点的表示,而RecGNNs循环使用相同的隐层参数来更新节点的表示。
GNN学习—综述_第4张图片

3.2.1 基于频谱和基于空间的方法

  • 基于频谱的方法:通过从图信号处理的角度引入滤波器来定义图卷积,其中图卷积运算可解释为从图信号中去除噪声。
  • 基于空间的方法:通过信息传播的方式来定义图卷积:通过聚集近邻节点的信息,直接在图结构上执行卷积。
基于频谱 基于空间
在图信号处理中具有理论依据 在每个节点上本地执行图卷积
可以通过设计不同的 Filter 得到不同的 GCNs 可在不同的位置和结构之间共享权值
频谱模型在效率、通用性、灵活性上不如空间模型,频谱模型仅限用于无向图,空间模型可以用于多源图

3.2.2 用于图分类的ConvGNN

  • Input:图Graph的邻接矩阵和特征矩阵(X:由每个节点的特征向量组成)
  • Gconv:图卷积层负责提取高级节点表示(通过聚合来自其邻居的特征信息);
  • Pooling:图池化层负责充当下采样的角色,用于将图粗化为子图;
  • Readout层:将所有节点特征集合起来代表整张图。
  • Softmax:输出该图属于每个类别的概率向量
    GNN学习—综述_第5张图片

3.2.3 用于节点分类的ConvGNN

  • Input:图Graph的邻接矩阵和特征矩阵(X:由每个节点的特征向量组成)
  • Gconv:图卷积层通过聚合来自其邻居的特征信息来封装每个节点的表示
  • ReLu:特征聚合之后,应用非线性变换

通过堆叠多层,每个节点的最终隐表示可汇聚更远邻居的消息

  • Outputs:输出每个节点的类别
    GNN学习—综述_第6张图片

3.3 GAEs(Graph Autoencoders)

图自编码器是无监督学习框架,它将节点/图编码到潜在的矢量空间中,再从编码的信息中重建图数据。
目的:学习网络嵌入和图生成分布

3.3.1 网络嵌入

  • model:通过重建图结构信息(如图邻接矩阵)来学习潜在节点表示。
  • Input:图Graph的邻接矩阵A和特征矩阵(X:由每个节点的特征向量组成)
  • Encoder:编码器使用图卷积层获得每个节点的网络嵌入,组成整个网络的嵌入矩阵Z。
  • Decoder:解码器根据得到的网络嵌入矩阵计算节点对间的距离Z*ZT(Z的每一行代表一个节点的嵌入向量,所以Z与Z的转置相乘是计算每两个节点之间的距离)。 在应用非线性激活函数之后,解码器得到重构的图邻接矩阵(该矩阵中的每一个值是Z的某一行与ZT的某一列相乘得到的结果,因此代表了两个节点之间的距离)。 通过最小化实际邻接矩阵和重构的邻接矩阵之间的差异来训练网络。
    GNN学习—综述_第7张图片

3.2.2 图生成分布

  • 意义:深入探索图形成的过程;异常检测;预测——从过去预测未来;新网络的仿真;图填充。
  • 难度:大的且多变的输出空间 o(n^2);非唯一的表达,因为如果输出是邻接矩阵,那么根据节点的顺序不同,矩阵也是不同的;复杂的依赖→边的形成有远程的依赖关系。
  • 方法:逐步生成图形的节点和边,或一次全部输出图形。
  • 任务:真实图的生成;目标导向图的生成,例如分子生成。
    GNN学习—综述_第8张图片
    GNN学习—综述_第9张图片

3.4 STGNNs(Spatial-temporal Graph Neural Networks)

时空图神经网络同时考虑空间依赖性和时间依赖性,目前的方法:聚合图卷积与RNNs/CNNs进而得到空间依赖性,然后对时间依赖性进行建模。
应用:预测交通网络中的速度/交通量/道路密度。
下图展示了一个整体的模型框架:

  • Input:图Graph的邻接矩阵A(带时间维度)和特征矩阵(带时间维度)。
  • Gconv:图卷积层作用在A和X(t)上,通过聚合来自其邻居的特征信息来封装每个节点的表示,得到空间依赖性。
  • 1D-CNN(一维卷积神经网络):层沿时间轴在X上滑动以捕获时间相关性。
  • Output:线性变换,为每个节点生成预测,例如在下一时间的未来值。
    GNN学习—综述_第10张图片

四 GNN框架

GNN框架的整体框架如下图所示:

  • Input:图结构以及节点信息
  • Output:节点级(节点分类、节点回归任务)
    边级(边分类、链接预测任务)
    图级(图分类任务)
    GNN学习—综述_第11张图片

五 GNN未来研究方向

  • 如何有效地提升模型复杂度:因为 convolution 层变多时,各个节点的特征将会变得越来越接近,加多层数最后会使得所有的点上的特征都变成一样的,因此不能单独靠把模型做深来提高模型复杂度。
  • 如何提高模型的拓展性:当图的规模变得特别大时,就需要考虑如何来对图进行聚合并且尽量不要丢失图上的信息。有两种思路:sampling 可能会使得节点丢失一些很关键的邻居;clustering 可能会使得图丢失一些比较特别的结构模式。
  • 如何融合异源数据:真实应用场景中,图可能会有不同类型的节点、连边,如何处理这些数据也将成为一个研究方向。
  • 如何处理动态的图。

六 概念区分

图神经网络 VS 网络嵌入

  • 网络嵌入:目的是将网络节点表示为低维向量,同时保留网络的拓扑结构和节点内容信息。
  • 图神经网络:目的是以端到端的方式解决与图相关的任务,并提取其高级表示。

两者的本质区别:

  • GNN 是一组用来为各种任务而设计的神经网络模型通过AE框架解决网络嵌入问题。
  • 网络嵌入主要是针对同一任务的各种方法网络嵌入中包含非深度学习方法 【SVD 和 Random Walk】。

图神经网络 VS 图核方法

  • 图核方法:用于解决图分类的方法,这些方法通过核函数来计算图对之间的相似度 【用于图的监督学习】;其可以通过映射函数将图或者节点嵌入向量空间。

两者的区别:

  • 图核方法的映射方法是确定的而不是学习得到的,图核方法计算图对之间的相似度计算力太大。
  • GNN 直接基于提取的图形表示执行图形分类。

你可能感兴趣的:(GNN,神经网络,1024程序员节)