GraphSAGE

啥是GraphSAGE呢?
是一种用于图嵌入的无监督学习方法。
通过采样和聚合邻居节点的信息来生成节点的嵌入表示。
这使得呢,能够在大规模图上运行,并且能够生成未见过的节点的嵌入。

节点采样:

对于每个节点,采样固定数量的邻居节点。
作用:减少计算复杂度,避免了遍历整个图的需求。

聚合(Aggregation):

对采样到的邻居节点的特征进行聚合、
常见的聚合方法: mean,max,Lstm等

更新(update):

将当前节点的特征与聚合后的邻居节点特征进行结合,更新当前节点的嵌入表示。

例子:

   A
  / \
 B   C
  \ /
   D

每个节点的特征向量:
A: [1.0, 0.5]
B: [0.5, 1.0]
C: [0.8, 0.8]
D: [1.0, 1.0]

1、 节点采样:

例如我们要生成 节点A 的嵌入,并且每层采样1个邻居节点。
对于节点A 来说,邻居节点是B 和 C
我们将会随机采样其中的一个,假设我们采样的是B

2、聚合:

聚合节点A 的邻居节点B的特征,假设 我们使用的是均值(mean)聚合:
hagg = 聚合特征 = mean(特征(B)) = mean ([0.5, 1.0]) = [0.5, 1.0],不理解吗?因为这里就采样了一个邻居节点哇。
假设我们采样两个邻居节点,例如我们采样了B和C
那么:
聚合特征= mean(特征(B) +特征(C) = 1/2 *[ [0.5, 1.0], [0.8, 0.8]]=[0.65,0.9]

3、更新:

使用A 的原始特征和聚合特征来更新节点特征。
例如我们这里使用了一个简单的线性变换和激活函数。
hA 指A的原始特征,hagg是A节点的邻居节点的聚合特征。W是自定义权重
h’A = σ(W · concat(hA,hagg))
concat(hA,hagg) = [1.0, 0.5, 0.5, 1.0]
ok!!!到此就结束了一次更新过程,对于邻居节点C进行相同的操作即可。

总结:

GraphSAGE 通过采样邻居节点并聚合他们的特征来更新每个节点的特征,得以实现在大规模数据上的使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值