图神经网络GNN简介

GNN

图神经网络GNN简介
如果对图的基础知识,以及对图神经网络要解决的任务还不太熟悉,可以通过 A Gentle Introduction to Graph Neural Networks快速入门。

接下来推荐两篇GNN综述性的文章:A Comprehensive Survey on Graph NeuralNetworks以及Graph neural networks: A review of methods and applications

下图是第2个综述里提到的ConvGNN的分类,即基于spectral-based 方法和基于spatial-based的方法。spectral-based(谱)方法,如果对谱聚类之类比较熟悉的话会容易上手点。

图神经网络GNN简介

; 1.DL库及数据集

1.1 GNN通用DL库

pygdgl是比较火的两个图神经网络仓库。

但是用起来也有缺陷,比如使用比较流行的图数据集很方便,但是如果要自定义数据集,那就要对其数据集构建风格足够了解。因此对要使用新数据集的初学者并不是很友好。

1.2 图数据集

graph-convolutional-networks-gcn这个网页介绍的GCN很不错,下图主要来自这里。

另外也可以参阅GCN直观解析及代码实现

图神经网络GNN简介

这里我总结了一份GCN 图分类的代码,如果图nodes、features个数相同,邻接矩阵一致,可以直接支持batch操作。

; 3. GAT

Github:gordicaleksa/pytorch-GAT,是一份比较流行的GAT仓库,它关于cora数据集可视化的部分也是很精彩的。仓库中给出了GAT的3个实施例。

正如代码中所说,实施例1和2几乎一致且比较易懂,而且参考了官方实现;实施例3比较难懂但是效率高。

I've added 3 GAT implementations - some are conceptually easier to understand some are more efficient.

The most interesting and hardest one to understand is implementation #3.

Imp1 and imp2 differ in subtle details but are basically the same thing.

Implementation2 was inspired by the official GAT implementation: https://github.com/PetarV-/GAT

因此,对于初学者,接受起来有点困难,不太推荐。

这里推荐Diego999/pyGAT这个github,针对的数据集也是Cora,而且也不支持batch操作。如果要应用于图分类,还要改造下。

3.1 GAT注意力机制

图神经网络GNN简介

结合Diego999/pyGAT代码,以及原论文,将GAT注意力机制的过程更清晰总结下,主要分为两步:

  • 各head attention:利用左图的过程,获取带mask(忽略无连接边的node)的self-attention系数;
  • multi-head attention:在各head-attention基础上进行concat/avg等操作,最后通过非线性层输出。

; 4. GIN

GIN(Graph Isomorphism Network)模型出自ICLR 2019论文HOW POWERFUL ARE GRAPH NEURAL NETWORKS?,对比了GIN与其他GNN模型在多个图分类数据集上的效果。

对应github/powerful-gnns也是比较友好的,同时支持batch训练、测试。参照其代码中构建图数据集的方法,也是不错的。

参考文献

[1] ★★★★A Comprehensive Survey on Graph NeuralNetworks
[2] GCN pytotch 实现:graph intro ai summer.ipynb
[3] ★★★★Best Graph Neural Network architectures: GCN, GAT, MPNN and more
[4] HOW POWERFUL ARE GRAPH NEURAL NETWORKS?
[5] Deep Graph Convolutional Neural Network (DGCNN)
[6] ★★★★Graph neural networks: A review of methods and applications
[7] book:Deep Learning on Graphs
[8] A Comprehensive Introduction to Graph Neural Networks (GNNs)
[9] A Gentle Introduction to Graph Neural Networks
[10] Keyulu Xu slides: Modeling Intelligence via Graph Neural Networks
[11] ★★★★★Understanding Convolutions on Graphs
[12] ★★★Yao Ma Slides:Graph Neural Networks: Models and Applications
[13] datacamp:simple GNN demo using torch_geometric

Original: https://blog.csdn.net/WANGWUSHAN/article/details/126639241
Author: L1_Zhang
Title: 图神经网络GNN简介

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/688072/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球