datawhale 图神经学习
目录
前言
本人为一名小白,此处的学习仅为自我提升以及提供给需要的朋友一些小小的帮助,错误在所难免,感谢大家的阅读。
Task00:学习目标与规则
0:什么是图神经网络?
图是由节点和边组成的,如下图所示,数学中常使用邻接矩阵表示图,邻接矩阵中值为1表明两节点具有连接关系。
这里的“图”是图论中的图数据结构,“神经网络”是我们熟悉的深度学习NN结构,如MLP,CNN,RNN等。
图神经网络就是将图数据和神经网络进行结合,在图数据上面进行端对端的计算。
直接在图上进行计算,整个计算的过程,沿着图的结构进行,这样处理的好处是能够很好的保留图的结构信息。
1:为什么要关注图深度学习?
- 来自现实世界的数据大部分为图的结构,因此可以作为图上的计算任务解决。
- 将深度学习与图连接起来,利用神经网络学习图特征。
- 将神经网络应用于图仍具有巨大挑战
2:学习要求:
- 掌握一定的深度学习基础、具备使用PyTorch实现深度学习项目能力
- 掌握理论部分、动手操作实践部分
- 但不要求掌握图论知识基础、过程中多调试代码、发现问题、解决问题
3:学习目标与内容:
- 图论与程序中图的操作:
(1) 学习简单图论知识、了解常规图预测任务
(2) 学习基于PyG包的图数据表示与使用 - 实现图神经网络的消息传递范式
(1) 学习图神经网络消息传递范式
(2) 学习PyG中消息传递的属性、方法、流程
(3) 学习如何自定义一个消息传递图神经网络 - 节点表征学习与节点预测和边预测
(1) 节点表征(Node Representation)学习
(2) 学习基于图神经网络节点表征学习的一般过程 基于GCN与GAT,学习他们之间的差别
(3) 构建一个数据全部存于内存的数据集类
(4) 学习基于节点表征学习的图节点预测任务和边预测任务实践 - 超大图上节点表征学习
(1) 在超大图上进行节点表征学习面临的挑战
(2) 应对挑战的解决方法
(3) 实践学习超大图节点预测任务 - 图表征学习与图预测
(1) 学习基于图神经网络的图表征学习一般过程
(2) 样本按需获取的数据集类的构造方法
(3) 基于图表征学习图预测任务实践
Task01:简单图论与环境配置
本章详细参考了来自Datawhale 6月份学习的图神经网络2-简单图论
同时也参考 “Chapter2-Foundations of Graphs,Deep learning on Graphs”
具体细节可查看GitHub
01.1:图的表示及属性
1:首先明确图的规范定义与图的表示方法主要为:节点、边
节点和边的信息分为两类:类别型(label)、数值型(attribute)????
2:图的邻接矩阵:规定0,1。两节点关系为0则认为没有关系,为1则认为有关系。
定义无向图,无向图的邻接矩阵是对称的
定义无权图,各条边的权重等价,默认为1
定义有权图,各条边有权重 范围0~1,边不存在时为0
3:图的属性
节点的度(degree):vi节点的出度为从此节点出发的边的权重之和
邻接节点(neighbors):邻接节点和K跳远的节点(指倒vi节点需要走k步的节点)
行走(walk):walk(v1,v2)=(v1,e6,e5,e4…,v2),称为一次行走。行走时节点允许重复
4:路径(path) :为节点不允许重复的“行走”
5:子图(subgraph): subgraph中的节点和边均属于graph,并且子图中的节点不包含新图中边未连接的节点。
6:连通分量(connected component):无向图的极大连通子图称为的连通分量( Connected Component)。任何连通图的连通分量只有一个,即是其自身,非连通的无向图有多个连通分量。
不连通的图G有两个或多个不相交的连通分量
7:连通图:一个图只包含一个连通分量,即为自身,那么该图为一个连通图
8:最短路径:两节点路径中长度最短的路径
9:直径:所有节点对之间的最短路径的最大值
10:拉普拉斯矩阵:D是对角矩阵,对角线以外的元素为0。对角线上的元素是该节点的度,有权图的度为:所有与该节点相关联的边的权重之和;无权图的度为:与该节点相连的节点个数。
有权图的拉普拉斯矩阵定义为:L=D-W。其中,D为对角矩阵,对角线上的元素为节点的权重之和;W为权重矩阵。
无权图的拉普拉斯矩阵定义为:L=D-A。其中,D为对角矩阵,对角线上的元素为节点的邻居数;A为邻接矩阵。
W在无向图中是对称矩阵,在有向图中是非对称矩阵。有向图的对角矩阵分为 出度矩阵 和 入度矩阵。
举个栗子:无向无权图及拉普拉斯矩阵
11:对称归一化拉普拉斯矩阵
01.2:图的种类
1:同质图(Homogeneous Garaph):只有一种类型的节点和一种类型的边的图
2:异质图(Heterogeneous Garaph):存在多种节点和边