GraphSAGE详解

算法思想

作者提出一种信息传递框架:节点的(结构和特征)信息在点与点之间传递。通过聚合函数,一个节点能够聚合邻居的信息,并通过更新函数(神经网络)更新当前节点的信息,这就是一次迭代的信息传递过程。随着迭代次数的增加,一个节点就能够聚合到更高阶邻居的信息。
补充知识:
inductive和transductive learning的区别:
transductive 传统的图嵌入算法(基于矩阵分解的算法,基于随机游走的算法)在迭代的过程中需要用到所有节点的信息,学习得到所有节点的向量表示,但是对于新加入的节点需要对所有的节点重新计算。泛化性差。
inductive learning,本文作者汉密尔顿提出一种新的学习模式,学习的结果不再是每个节点的嵌入,而是“聚合函数”。根据已知各个节点的特征和邻居关系,我们就可以很方便地得到一个新节点的表示。因此,graphSAGE泛化性好,对新加入的节点,可以根据其邻居聚合直接给出其表示学习,而不必对整个网络重新迭代。

算法流程:
算法流程
算法分为三个部分:1)对节点进行采样;2)对节点的邻居进行聚合;3)根据聚合的信息对节点进行学习

嵌入生成算法

嵌入生成算法
嵌入生成算法(向前传播算法):假设所有需要用到的节点已经完成采样,并且聚合函数已经被训练好了,就可以用该算法生成任一节点的嵌入表示。

采样算法(minibatch)

给定一个输入节点的集合,采样它们的邻居节点(一阶邻居),对于一阶邻居,采样他们的邻居(二阶邻居),直到K阶邻居采样完成。
带minibatch的嵌入生成算法
随着层数的增加,采样的邻居数量会呈指数增加,一般定义S-k表示每一层固定的邻居采样数量。当某一节点的邻居小于S-k时,采用重复采样。作者发现,取K=2,S-1*S-2<=500,就可以得到很好的性能表现。

邻居聚合函数

MEAN AGGREGATOR
MEAN AGGREGATIR
对当前节点及其邻居节点进行MEAN操作,这里mean可以看作GCN中的卷积操作,是对节点及其邻居向量的局部谱卷积的线性相似。
需要注意,这里的MEAN操作和下面其他两种的平均池化的区别:Mean aggregater 不执行串联操作 即“跳跃连接” 。

LSTM AGGREGATOR
考虑到LSTM是针对序列的模型,不具备排列不变性,因此,这里在对邻居节点进行聚合之前,对所有邻居进行随机排列。

Pooling AGGREGATOR
池化聚合
现将所有邻居的向量放进一个全连接网络,后接上一个最大池化层,或者平均池化层。理论上,池化层之前可以接任意层的神经网络,但是为了简化模型,本论文中使用的是单层的神经网络。作者发现,不管是平均池化或者最大池化,得到的结果都差不多。

适用场景

i. 通过对节点邻居的信息进行聚合,学习节点的表示
ii. 可以加上节点的属性特征,也可以不加 (***问题,如果没有加属性特征的话,节点向量的初始化是怎么设置的?***)
iii. 可以用于有监督学习,也可以是无监督学习(无监督模型用交叉熵做目标函数)
iv. 同构网络

不足和改进

不能对边的信息进行建模,不同的权重或者不同的关系都不能作为有效的信息被学习。
为了捕捉节点和节点间不同的权重,GAT提出了注意力模型
为了捕捉异质网络中边的关系HAT提出了基于注意力机制的异质图神经网络模型

  • 17
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值