[个人笔记](GraphSage)Inductive Representation Learning on Large Graphs

该笔记记录于2021.01.06,
于2022.03.08 从本人OneNote/CS笔记/GCN转移到CSDN。

GraphSage讲解

https://zhuanlan.zhihu.com/p/79637787
这篇解读基本完全解答了GraphSage是干啥的。
简单的说,一个图里有很多节点,每个节点之间可能有边。每个节点有自己的特征向量。
网络每一层把节点自己的特征向量和邻居的聚合一下,构成自己下一层的特征向量,特征向量维度不便。
这样,有新节点加入的话,就可以只修改或训练新节点及其邻居,而不用整个图一起修改。

在这里插入图片描述
GraphSAGE 是Graph SAmple and aggreGatE的缩写,其运行流程如上图所示,可以分为三个步骤

  • 1.对图中每个顶点邻居顶点进行采样:
    • 采样是为了计算效率,每个顶点只随机选k个邻居(邻居不到k个,就有放回的抽取)。当然不考虑效率,也可以用全部邻居
  • 2.根据聚合函数聚合邻居顶点蕴含的信息
    • 2.1前向传播
      • 下一层的节点embedding, 等于邻居的上一层的聚合拼接自己的上一层,再乘W再激活在这里插入图片描述
    • 2.2聚合函数的选择
      • mean aggregator:
        • 对每个邻居的特征按元素求平均
        • 或把自己的和邻居的放在一起求平均,这样就不用第五行的拼接了。这个方法类似卷积
      • LSTM aggregator
        • 比mean有更强的表达能力
        • 但不对称(并不是置换不便的。我们的邻居是等价的,但该方法认为不同邻居有先后关系),所以需要先把邻居顺序随机打乱一下
        • 没说具体是咋弄
      • Pooling aggregator
        • 全连接,激活,再max(理论上可以多用几层网络,但本文只弄了一层的)
        • 在这里插入图片描述
  • 3.得到图中各顶点的向量表示,供下游人物使用

来自 https://zhuanlan.zhihu.com/p/79637787

graphSage和GCN的区别

至于graphSage和GCN的区别,看这篇:
https://zhuanlan.zhihu.com/p/74242097

说白了都是聚合。
GCN是把整个图拿着一起训练的,所以显得GraphSage更灵活一些。
其实GCN的方法你想弄成单节点训练的话也未必没有办法鸭。

显得就是,GCN直接整个图训练,得到每个节点的embedding。
而GraphSage求的是聚合函数的参数,如果有个新节点的话,直接用这个聚合函数就能求出embedding了。
在这里插入图片描述

实现:

图神经网络入门实战GraphSAGE-Tensorflow 2.0实现
来自 https://zhuanlan.zhihu.com/p/149684079

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值