GNN-learning-notes
GNN 学习笔记
Datetime: 2023-04-01T16:28+08:00
Categories: MachineLearning
初学者一定要看:【GNN 入门】综述篇 - 知乎用户 MxLVSX 的文章 - zhihu.com,包括频域和空域、任务类型、经典模型。
最早的 GNN,介于迭代不动点:https://zhuanlan.zhihu.com/p/76290138
GCN
- GCN 的运行过程
- GCN 训练的参数
- GCN 的局限性:Transductive
简单的理解可以参考 何时能懂你的心——图卷积神经网络(GCN)
复杂的理论可以参考:
- 如何理解 Graph Convolutional Network(GCN)? - superbrother 的回答 - zhihu.com
- 【GNN】万字长文带你入门 GCN - 阿泽的文章 - zhihu.com
GCN 核心是那一行公式,我比较关心怎么使用这个东西。。。因为理论实在是过于复杂。
notation:
- A: 邻接矩阵(Adjacent Matrix),节点如果没有自己指向自己的边(自环),对角线就是 0。一般来说,分子、人与人之间的社交网络,都没有自环的。
- D: 度矩阵(Degree Matrix),,对角矩阵
- H:隐藏层,对于输入层,H 就是 X
- N: 样本个数
- h: 隐藏层 H 矩阵大小为 N * h
将 记为
表示了图本身的结构,一旦图的结构确定, 也就确定。
然后可以在想象一下 GCN 是怎样跑起来的,一个表示节点隐藏特征的 H 矩阵,N * h,被 左乘,然后有一个对应的 W 右乘。过一个 ReLU 或者 Softmax,就结束了。
GCN 训练的参数什么是?就是 W
GCN 网络中就只有一个模型参数 W 需要定义。
GCN 的官方样例是「半监督」图节点预测。就是说:
在一个图上面,有的节点有 label,有的节点没有,
对 labeled 的节点划分训练集和测试集,对训练集的节点,聚合信息,这个过程中,使用到了 unlabelled 的节点。
下面是一些个人看法:
我觉得 GCN 是在训练每一层的权重矩阵 W,
这个 W 还依赖于图的结构,也就是邻接矩阵 A,因为 W 是跟在 A 的后面的乘起来的,不同的 A,或许 W 的表示不一样。
的大小为 ,在 DGL 等模型中定义一个卷积层,使用的参数估计就是 W 的大小。
所以有说法:为什么 GCN 是 Transductive 的?
GraphSAGE
【Graph Neural Network】GraphSAGE: 算法原理,实现和应用
- 通过聚合函数 得到邻居节点的隐藏层信息
- 拼接 和 ,左乘 ,过一个 ,得到当前节点的
- 重复上述 1、2、3 步
需要挑选好聚合函数 ,然后模型就是在训练多个 ,每一层聚合,都要指定 的大小。
Graph Attention Network
- 使用 embedding
- multi-head 机制
本应该叫做「GAN」,但是「GAN」已经是别的模型的名字,所以叫做「GAT」。
对于一层 GAT,我觉得重点是学习一个 , 表示把当前节点特征隐藏状态 embed 到一个其他维度的空间,两个节点映射后的特征 concat 后,是一个 vector,和 点乘即可得到标量,记为 。
然后就很稀疏平常,
- 加上 Softmax 求邻居节点对当前节点的权重,
- 加权求和得到新的
最后使用 multi-head 机制,在一个 layer 里,复制粘贴多个 1、2 步骤,训练多个 ,记为 ,把这些 拼起来,过一个激活函数,做一个最后的 output。
对了,在 DGL 这个机器学习库里,用 GAT 要加自环,千万不要忘记了。
---- 完 ----
如果您有任何关于文章的建议,欢迎评论或在 GitHub 提 PR
作者:dutrmp19
本文为作者原创,转载请在 文章开头 注明出处:https://www.cnblogs.com/dutrmp19/p/17298001.html
遵循 CC 4.0 BY-SA 版权协议
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本