图神经网络GNN简介
GNN
-
1.DL库及数据集
-
- 1.1 GNN通用DL库
- 1.2 图数据集
-
2. GCN
-
3. GAT
-
- 3.1 GAT注意力机制
-
4. GIN
-
参考文献

如果对于图的基础知识以及图神经网络所要解决的任务还不够了解的话,则可以通过阅读 A Gentle Introduction to Graph Neural Networks这篇文章来快速上手。
请提供参考的两篇GNN综述论文:A Comprehensive Survey on Graph Neural Networks 和 Graph neural networks: A review of methods and applications
图形是第二个综述中所涉及的ConvGNN模型的分类情况。该模型的具体表现形式包括基于谱域(spectral-based)和空间域(spatial-based)的方法。其中谱域(spectral-based)方法尤其适合那些熟悉谱聚类等领域的研究者。

1.DL库及数据集
1.1 GNN通用DL库
PyTorch Geometric与DGL是当前非常受欢迎的两个主要图神经网络框架,并且它们都是公开源代码库。
然而存在一些局限性 例如在现有的流行图数据集中操作相对便捷 但若需自定义特定的数据集 则需对该数据集构建方式有充分的了解 这对于希望引入新数据集的新手用户而言并不友好
1.2 图数据集
2. GCN
该网页上关于GCN的相关内容表现得非常出色...其中一张图的主要来源是该网页
另外也可以参阅GCN直观解析及代码实现。

我整理了一份GCN图分类的代码。当图中nodes与features的数量相同时,并且邻接矩阵一致时即可实现批量处理。
3. GAT
Github:gordicaleksa/pytorch-GAT,是一份广受欢迎的GAT仓库。在cora数据集可视化的方面同样令人 impressions. 仓库中给出了GAT的三个实现实例.
如代码所示, 实施例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
代码解读
因此,对于初学者,接受起来有点困难,不太推荐。
该平台提供一个名为pyGAT的GitHub仓库(链接:https://github.com/Diego999/pyGAT),其适用于Cora数据集,并且目前不支持批量处理功能。若希望将其用于图分类任务,则需要进行相应的优化调整。
3.1 GAT注意力机制

基于GitHub开源项目Diego999/pyGAT及其对应的论文资源,在深入分析GAT(Graph Attention Network)机制的基础上进行详细阐述。该过程主要包含两个步骤:首先,在节点表示学习阶段通过自适应加权聚合邻居信息来生成节点表示向量;其次,在注意力机制应用阶段利用Softmax函数对各条边的权重进行归一化处理并生成最终的注意力权重矩阵。
- 单个头注意力机制:通过左侧图的信息,并忽略没有连接边的节点(即mask),计算出每个节点的自注意力系数;
- 多头注意力机制:对各个头注意力的结果进行拼接或平均处理,并通过一个非线性变换得到最终输出向量。
4. GIN
GIN(Graph Isomorphism Network)体系源自ICLR 2019论文[HOW POWERFUL ARE GRAPH NEURAL NETWORKS?](https://arxiv.org/pdf/1810.00826.pdf),并对其与其他GNN架构在多个图分类基准数据集上的性能表现进行了比较分析。
该GitHub仓库具有较高的友好程度,并具备高效的批量训练与测试功能。参考其代码中的数据集构建方法这一策略同样表现出色。
参考文献
[1] ★★★★A Comprehensive Survey on Graph Neural Networks
[2] GCN PyTorch实现: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] 书:Deep Learning on Graphs
[8] A Comprehensive Introduction to Graph Neural Networks (GNNs)
[9] A Gentle Introduction to Graph Neural Networks
[10] Keyulu Xu论文: Modeling Intelligence via Graph Neural Networks
[11] ★★★★★Understanding Convolutions on Graphs
[12] ★★★Yao Ma课程:Graph Neural Networks: Models and Applications
[13] DataCamp教程:simple GNN demo with torch_geometric
