GNN
- 输入:邻接矩阵A➕点的特征X
- 优势:传统输入的格式是固定的,GNN可以接受更加复杂的数据结构
- 任务:
- graph级别的任务:对整个图进行分类或预测
- Node或edge级别的任务:对点或边进行预测
- GNN也可以做多层:图的结构始终不变,输入和输出是更新前后点的特征
GCN
-
Semi-supervised learning:不一定所有的点都有标签,计算损失时只用有标签的
-
点的特征更新方法:邻接矩阵A✖️特征矩阵X
聚合周围点的特征
-
问题1:邻接矩阵中自己和自己的邻接值为0,没考虑自己,所以给邻接矩阵A加上对角阵I,称为新邻接矩阵A~
构建新邻接矩阵A~
-
问题2:这样聚合特征会受邻居个数的影响(邻居越多数越大),因此再左乘一个度矩阵(D~)的倒数(D~-1),相当于上一步的加和值求平均
- 问题3:左乘D~-1相当于对行归一化,还要对列归一化,因此再右乘D~-1
-
问题4:这样对导致每个数被做了两遍归一化,因此改成-1/2次幂
GCN的最终公式
所以,最终GCN的节点特征更新公式就是:

其中:
- A波浪=A+I,I是单位矩阵
- D波浪是A波浪的度矩阵(degree matrix)
- H是每一层的特征,对于输入层的话,H0=X
- W是可学习的参数
- σ是非线性激活函数
参考
https://b23.tv/fmGbw4w
唐宇迪老师牛逼!
网友评论