技术博客 A Gentle Introduction to Graph Neural Networks
该博客提供了一个playground(试炼场,就是一个给你自己去试试这个东西的环境)
这几张图的关系有点儿像卷积的层级结构。和卷积的区别在于,数据形状不规则。
图的简介
图是用来表示entity(实体)之间的关系
实体就是一个点(node,顶点)
关系就是一个边(edge)
U:代表整个图(全局信息)
图神经网络所关注的重点:
- 怎样把所想要的信息表示成向量
- 这些向量是不是能够通过数据来学到
数据如何表示为图
images as graphs
将每一个pixel当做一个node,用一个sparse matrix作为邻接矩阵表示edges(无向图所以是对称的)
texts as graphs
将每一个word当做一个node,用word books创建邻接矩阵表示edges(一般情况是有向路)
types of problems
Graph-level task
Node-level task
Edge-level task
总的来说就是三类问题:
- 对整个图进行识别
- 对顶点的属性进行判断
- 对边的属性进行判断
机器学习用在图上会有怎样的挑战?
将神经网路用在图上面最核心的问题是:如何表示图使得它能够和神经网络兼容
如果说既想要存储高效,又想要排序不影响最终结果的话,文中提出了一种存储方法,如下图所示:

图中一共有8个顶点,7条边
每个点的属性使用的是一个标量来表示(也可以换成向量,并不影响)
每一条边也是用一个标量来表示的(也可以换成向量,并不影响)
全局的信息也是用一个标量来进行表示的(也可以换成向量,并不影响)
邻接列表:长度和边数一样,第 i 项表示第 i 条边连接的两个顶点
存储高效:这样在存储上,只把边和所有属性存储下来
与顺序无关:可以把边的顺序任意打乱,只要把连接列表的顺序也进行相应的变化就可以了。同理。也可以将顶点的顺序全部打乱,只要将邻接列表中的数字做相应 的更新就可以了
所以这样存储即使存储高效的,也是与顺序无关的。
图神经网络 GNN
归根到底GNN就是一个提取特征的方法。
定义:
GNN是对图上所有的属性(包括顶点、边和全局上下文)进行的可以优化的变换 ,这个变换能够保持住图的对称信息 (对称信息指的是将顶点进行另外一种排序信息之后,整个结果不会发生改变)
message passing(信息传递神经网络,GNN也可以用别的神经网络来进行描述,这个地方用的是信息传递的框架)
GNN的输入是图,输出也是图,它会对顶点、边和全局的向量进行变换,但是不会改变图的连接性 (顶点和边的连接信息在进入图神经网络之后是不会改变的)
没太弄懂,为啥出来的结果图的结构没有发生变化?因为那个表示连接结构的Adjacency List没参与计算???。
pooling 汇聚
和CNN中的pooling其实没有太多本质上的区别
假设某个点没有自己的向量,如何得到它的向量并做预测?
缺少顶点信息,GNN block就没有顶点的MLP, 通过边和全局的MLP输出后做汇聚(属性向量相加)得到顶点向量
总结下:这里信息的汇聚是指把相邻节点的属性以相同权重的形式进行相加,使得该节点汇聚了其他节点的信息
信息传递
工作原理如下图所示:

- 首先将上图中橙色实心顶点的向量和它的邻居的两个顶点的向量加在一起得到一个汇聚的向量
- 再将这个汇聚的向量放进MLP得到该顶点向量的更新
- 其他顶点的操作同理(拿到每个顶点本身的向量以及它邻居的向量加到一起,最后得到进入MLP之前的汇聚向量)
- 聚合步
- 更新步
- 这是一个最简单形式的信息传递
- 这个跟标准的图片上的卷积有点类似,等价于在图片上做卷积,但是卷积核窗口里面每个窗口的权重是要相同的(因为在卷积里面其实是每一个顶点和它邻居顶点的向量会做加权和,权重来自于卷积窗口),这里没有加权和,只是加,所以权重应该是一样的,但是通道还是保留了(卷积中有多输入通道和多输出通道,对应信息传递过程中MLP还是保留了),所以和卷积操作有点类似,但是还是有区别
- GNN层也可以通过堆叠来完成整个图的长距离信息传递过程
全局信息相关
之前有一个问题:因为每次只去看自己的邻居,假设图比较大而且连接没那么紧密的时候,会导致信息从一个点传递到一个很远的点需要走很长的步
解决方案:加入master node(或者叫context vector),是虚拟的点,可以跟所有的顶点相连,也可以跟所有的边相连,它就是U,汇聚了所有的顶点信息和边的信息。
实验
总的来说,GNN对超参数还是比较敏感的,能调的超参数也很多
- GNN的层数
- 每一个属性的大小
- 汇聚的操作方式
- 信息的传递方式
上述因素都对参数传递造成了很大的影响
inductive biases
任何一个神经网络,或者说任何一个机器学习的模型中都存在假设:
卷积神经网络假设的是空间变换的不变性
循环神经网络假设的是时序的延续性
图神经网络假设的是:保持了图的对称性(不管怎样交换顶点的顺序,GNN对图的作用都是保持不变的)
GCN
本质:在平均法的基础上,扩增了针对每个节点的度做的对称归一化。

D^-1是一个度矩阵,
度矩阵是一个方阵,只有对角线上不为0,代表每个顶点有几条边

A~就是A的连接矩阵,为了结合本身的信息,在矩阵中的对角线位置上都+了1
D是A的度矩阵

H就是特征
对称归一化的拉普拉斯