GraphSAGE学习心得

最近在参加百度的图神经网络七日打卡营,然后就记录一下最近几天的一些学习心得。本来也是做Skeleton-Based Action Recognition这个方向,然而由于近两年GCN的火热,从而出现了一系列基于GCN方法来做这方面的研究,而且取得的效果远超CNN和RNN,然后看到了百度的这个课就参加了一下,收获颇多。虽然说一直做基于GCN的Skeleton-Based Action Recognition但是其实对于经典的GNN的方法我并没有太多的了解,只是单纯的知道有哪些比如说GraphSAGE,GAT,GIN,R-GCN等等,但是对于具体的实现并没有进行深入的了解。

今天就简单的介绍一下GraphSAGE,GraphSAGE其实是从两个方面对于GCN做了改动,一方面是通过采样邻居的策略将GCN由全图(full batch)的训练方式改造成以节点为中心的小批量(mini batch)训练方式,这使得大规模图数据的分布式训练成为可能;另一方面是该算法对聚合邻居的操作进行了拓展,提出了替换GCN操作的几种新的方式。接下来就从采样邻居和聚合邻居两个方面来讲解。

采样邻居

在之前的GCN模型中,训练方式是一种全图形式, 也就是一轮迭代,所有节点样本的损失只会贡献一次梯度数据,无法做到DNN中通常用到的小批量式更新,这从梯度更新的次数而言,效率是很低的。另外,对于很多实际的业务场景数据而言,图的规模往往是十分巨大的,单张显卡的显存容量很难达到一整张图训练时所 需的空间,为此采用小批量的训练方法对大规模图数据的训练进行分布式拓展是十分必要的。GraphSAGE 从聚合邻居的操作出发,对邻居进行随机采样来控制实际运算时节点k阶子图的数据规模,在此基础上对采样的子图进行随机组合来完成小批量式的训练。

在GCN模型中,我们知道节点在第(k+1)层的特征只与其邻居在k层的特征有关,这种局部性质使得节点在第k层的特征只与自己的k阶子图有关。对于下图中的中心节点(0号节点),假设GCN模型的层数为2,若要想得到其第2层特征,图中所有的节点都需要参与计算。

                                                                                 

但是对于一共大规模的图数据来说,我们之间将此思路迁移过来会存子图的节点数呈指数级增长的问题。假设平均邻居数为N,则k层GCN需要采样1+N+N^2+...+N^k个节点,会导致极大的计算复杂度。GraphSAGE采用的采样策略就是随机选择M个节点进行采样而不是用全部节点,这样需要采样的节点个数就变为1+M+M^2+...+M^k,这样就会使得M^K<<N^K,从而大大减小计算的复杂度,从而可以适用于大规模的图数据,同时因为没有采样全部的邻居节点,使得他的泛化性,会进一步的得到提高。

聚合邻居

GraphSAGE研究了聚合邻居操作所需要的性质,(1)聚合操作必须要对聚合节点的数量做到自适应。不管节点的邻居数量怎么变化,进行聚合操作后输出的维度必须是一致的。(2)聚合操作对聚合节点具有排列不变性。这就要求不管邻居节点的排列顺序如何,输出的结果必须是一样的,比如Agg(v1,v2) = Agg(v2,v1)。基于这些性质然后提出了几种新的聚合(aggregator)操作:

①平均/加和聚合算子

②池化聚合算子

GraphSAGE算法过程

其实论文中给出的这个算法只是聚合操作,其调用聚合操作完成对每个节点邻居特征的整合输出(第四行),然后将聚合后的邻居特征与中心节点上一层的特征进行拼接,送到一个单层网络中得到中心节点新的特征(第五行),最后对节点的特征向量进行归一化处理,将所有节点的向量都统一到单位尺度上(第七行)。

值得一提的是,GraphSAGE算法的计算过程中完全没有使用拉普拉斯矩阵L的参与,每个节点的特征学习过程只与其k阶邻居有关,而不需要考虑全图的结构信息,这样的方法适合用于归纳学习。总的来说,GraphSAGE是对空域视角下的GCN做了一次解构,提出了几种邻居的聚合操作算子,同时通过采样邻居,大大提升了算法的工程价值。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值