【神经网络】GNN与GCN | 图神经网络 | 图卷积网络
【神经网络】GNN与GCN | 图神经网络 | 图卷积网络
近期读一篇论文,里面用到GNN和GCN,看文献觉得很繁杂,这里通俗性地记录一下。
GNN主要参考:
【简单粗暴带你快速理解GNN】https://www.bilibili.com/video/BV1Tf4y1i7Go
GCN主要参考:
【简单粗暴带你理解GCN图卷积神经网络】https://www.bilibili.com/video/BV1Xy4y1i7sq/
【GCN中的拉普拉斯矩阵如何归一化?】https://www.zhihu.com/question/426784258
1. GNN
1.1 GNN 概述
Graph Neural Networks (GNN)
- 归根到底,GNN是一种特征提取的方法
- 主要包含三个步骤
- 聚合、更新、迭代
- 假设:
- 节点之间有关系
- 图中向量代表节点的特征

1.2 GNN的步骤:聚合、更新、迭代
1.2.1 聚合
比如,现在要对节点进行分类
有时候,仅靠节点自己的特征,难以完成分类
1.2.2 更新
下图是一次GNN聚合+更新操作
1.2.3 迭代

1.3 GNN的用处
- 节点分类
- 根据最终的节点特征进行分类
- 关联预测
- 基于特征,判断两个节点是否有关联
1.4 GNN的公式化表示

-
左侧的公式:
A矩阵是邻接矩阵
下面:在A矩阵中加上了一个对角矩阵(单位矩阵) -
右侧的公式:说简单点就是归一化
-
第一行:
 是邻接矩阵+单位矩阵
D̂ 是 Â 的度矩阵 -
度矩阵: 也就是描述每个节点有多少条边的矩阵,是一个对角矩阵

比如下图中,左边的Ã是邻接矩阵,右边的D̃就是对应的度矩阵
-
- 右侧的公式(续):
- 最后一行:
Aij是Xj到Xi的系数
加和Aik是所有的Xn到Xi的系数的加和
- 最后一行:
1.5 GNN的总结

2. GCN
2.1 GCN 概述
Graph Convolution Networks (GCN)
- GCN也是一种特征提取的方法,是对GNN的改进
- GNN的不足之处:会导致B节点的特征,大幅度影响A节点

比如A是一名员工,B是员工的老板
A确实认识B,B也确实很富有,但是A其实并不富,他只是认识B而已,类似A这样的人有很多
GNN会因为A与B有关联而判定A很富有,这是不准确的
2.2 GCN 的改进之处
GNN有聚合、更新、迭代三个步骤
GCN主要是在聚合这一步骤,和GNN有所不同
GCN的改进:
一篇论文(SANER23-RGDroid)中如下描述:
其中重点是这个公式:
 是邻接矩阵+单位矩阵
D̂ 是 Â 的度矩阵
W(l)是learnable parameters可学习参数
这些参数是模型在训练过程中能够自动调整和优化的变量,其值会根据训练数据和损失函数不断更新
这个公式很难理解,但是我们只需要看到它展开后的形式,就能懂了:

以上图右侧的图为例:
假设i节点代表A节点,j节点代表B节点
Dii是1(A只有1条边)
Djj很大,是11(B有11条边)
所以分母很大,最后聚合过去的信息比较小
这样就可以削弱B对A的影响
更多推荐
所有评论(0)