Graph Neural Networks (GNN)(四):Spectral-GNN 与 Spatial-GNN 对比

概述

前三篇详细介绍了 Spatial-GNN 和 Spectral-GNN 的内容,这一篇博客简单的对比一下。
Graph Neural Networks (GNN)(一):Spatial-GNN
Graph Neural Networks (GNN)(二):Spectral-GNN 引言和导入
Graph Neural Networks (GNN)(三):Spectral-GNN 之 GCN

总结

其实两者是殊途同归的,所有的 GNN 都可以看成一个热传导模型/信息扩散模型。不管是 Spectral-GNN 还是 Spatial-GNN 最后都是收集领域节点的特征信息来更新自己的节点信息。只是出发点不同。

  • Spatial-GNN:是直接推广 CNN 的加权求和思想,使用不同的领域节点采样方法和不同加权求和方法来更新节点特征。
  • Spectral-GNN:是从 CNN 的卷积定理,f 和 g 的卷积是 f 和 g 傅里叶变换之后乘积的傅里叶逆变换。然后通过拉普拉斯矩阵来实现傅里叶变换和逆傅里叶变换。

虽然看上去差别较大,但是都是殊途同归的,最后发现 Spectral-GNN 最后也可以看成一个采样领域节点和加权求和的方式,可以把 GCN 看成很多 Spatial-GNN 的特例,例如 Monet 和 GraphSAGE 等。

Spectral-GNN:

第一二代频谱 GNN

  1. 卷积的频谱定义取决于傅里叶基(拉普拉斯特征基),也就是说是域相关的,即频谱 filter 的系数取决于基,因此在一个 Graph 中的学到地频谱 GCN 不能很容易地转移到另一个具有不同傅里叶基的图。
  2. 正向和逆向傅里叶变换需要 O(n^2) 的乘法。(后面被切比雪夫多项式处理)
  3. 不能保证频域上的 filter 位于空间域。
  4. 第一代频谱 GNN 是全局的,不是局部的。第二代频谱 GNN 是局部的。K 个多项式的和就是就是节点的 K 领域。

契比雪夫 GNN

  1. 不需要显式地计算拉普拉斯特征向量,复杂度 O(Kn),K 为使用拉普拉斯的次数
  2. 拉普拉斯算子仅是影响顶点一跳邻居的算子,K 次方影响 K 跳邻居。 --> 局部化

共有问题

  1. 虽然可以给不同跳的领域节点不同的权重,但是不能给同一跳领域的节点赋予不同的权重。(这一点被 GAT 所解决)
  2. 本质上都是 Transductive 的,因为 Spectral-GNN 都是基于某一个图的拉普拉斯矩阵的,因此在某一 Graph 上学到的 GNN 不能用于别的图和新的节点。此外由于这种方式,导致训练的时候是 full-batch 的。

优点

有很好的理论基础(图谱理论)。

Spatial-GNN

这一类就丰富多彩了,可以多种不同的采样方式,多种不同的加权求和方式。

共有问题

想法很直觉,没有很好的理论支持。这一点 GIN 有所理论支持

优点

  1. GraphSAGE 和 GAT 等都可以 Inductive learning,扩展到新的节点和新的图,因为这一类方法直接学习的采样过程和加权求和方式,并没有利用图的拉普拉斯矩阵。
  2. 另外 GraphSAGE 还支持 mini-batch 的训练方式。
  3. Spectral-GNN 如果看成采样和加权求和的方式,虽然可以给不同跳的领域节点不同的权重,但是不能给同一跳领域的节点赋予不同的权重,这一问题被 GAT 中的 attention 机制解决。

总结

虽然看上去 GAT 和 GraphSAGE 等效果和模型比 GCN 好,但是这是由于时间线的原因,它们都是根据 GCN 的缺点相应做的提升。

Spectral-GNN 与 Spatial-GNN 都有各自的优劣,我相信最新的模型也都有自己的新颖之处,比如 GCN 无法加深的问题而产生的很多 GNN 网络。此系列博客后面会讲更老的一些经典的模型(DeepWalk,Node2Vec 等),最新的论文会在后续阅读之后再进行补充,另外在论文中读到这两种方式的优缺点时也会更新到这篇博客中。

你可能感兴趣的:(Graph,GNN,GCN,GAT,GraphSAGE,图神经网络)