【图神经网络】GraphSage - Inductive Representation Learning on Large Graphs

GraphSAGE

GraphSage算法是17年在NIPS上提出的一个图卷积网络的算法,这篇文章到现在就有了5090的引用次数,证明这篇文章在图神经网络领域有很重要的作用。作者想要解决的问题主要是大多数之前的算法都是直推式的,没有归纳式的能力,也就是对于未见过的节点表示能力不好。因此,本文作者提出了一种通用的归纳式学习框架-GraphSage,不向之前的网络直接学习节点的嵌入向量,而是学习到从邻居节点采样和聚合的函数(因为GCN算法的通用框架就是采样+聚合),使得网络具有归纳式学习的能力。算法中SAGE其实是 SAmple and aggreGatE 的缩写,这也说明了算法的两个核心就是采样和聚集操作。

引言&相关工作

节点嵌入就是使用降维技术(例如PCA等),将高维信息嵌入在低维向量中,给下游系统进行分类、预测等任务。现在大多数的方法是基于矩阵分解的,这样对于未见过的样本不会有对应的嵌入向量。除了矩阵分解之外,其他因子分解的嵌入方法如随机游走等,也都是直接为单个节点训练嵌入,在预测时还需要额外的训练。另外,图上的监督学习算法还有基于核的方法,或基于神经网络的方法,都是最终生成图嵌入。而图卷积网络(GCN)需要完整的拉普拉斯矩阵或邻接表,对于现实情况中的大矩阵来说,通常是很难是实现的。而GraphSage可以视作是GCN的归纳式版本,可以构建出局部计算图。

提出的算法

嵌入向量生成算法

网络有K层,首先假定当前已经学习到K个聚集函数的参数(这个聚集函数的学习方式后面介绍),用来聚集节点的邻居信息。
在这里插入图片描述

此外,还有K个权重矩阵W的集合,这个参数也是需要学习的,用来在模型的不同层之间传播信息。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在这里插入图片描述
在这里插入图片描述

提出的算法就图上面所示,首先输入参数有图,输入特征(也就是图中每个节点的特征向量),深度K(网络的层数),权重矩阵 W k W^k Wk ,非线性激活函数 σ \sigma σ ,聚集函数还有获取邻居的函数。算法输出就是每个节点的向量表示 Z v Z_v Zv 。主要步骤就是上面的45两行,对所有邻居节点的隐向量进行聚合,生成一个隐向量,然后将邻居节点隐向量和自身隐向量进行拼接,乘参数矩阵W在使用非线性激活函数,得到新的隐向量。最后对所有节点进行归一化,依次传播K层,使用最后一层的隐向量作为节点的最终隐向量表示。

MiniBatch的推广

本文还提出了一个重要的概念,就是对图进行批量学习,作者也给出了上面算法的MiniBatch版本。

在这里插入图片描述

重点内容就是前几行,因为一个Batch样本里面只给出了需要生成嵌入向量的样本点,但是因为使用算法聚合的话需要节点对应的邻居向量,前几行主要解决的问题就是,将这些邻居节点的抽出。

邻居的定义

本文还对每一个节点采样了固定大小的邻居节点,而不是是用全部邻居节点,这一点作者解释是可以提高算法的性能。

聚合器

本文作者提出了三种聚合器:Mean、LSTM、Pooling。算法中AGGREGATE函数。

首先最简单的就是Mean的聚合方式,就是将全部邻居节点以及自身的特征向量做平均,乘权重矩阵W后通过非线性激活函数生成聚合后的向量。

在这里插入图片描述

第二种方式作者使用了LSTM进行聚合,并且指出了LSTM具有更强的表示能力。但是我们知道,LSTM是一种序列模型,对于输入的序列关系是由很强的依赖的,因此为了消除这种随机性,在输入LSTM时将所有输入打乱,随机输入。

最后一种就是Pooling的方式,操作步骤就是,将每一个邻居输入一个全连接网络,这个网络可以是任意深度的,但是本文只用了一层,将网络的输出做逐元素的max操作(相当于元素级的最大池化吧~~),池化后的向量作为聚合的输出。作者在文中说明了,使用max操作和mean操作没有显著差异。

在这里插入图片描述

最后实验部分说明,三种聚合器mean的性能是最差的,LSTM和Pooling的性能相似,但是Pooling的时间消耗更少。

算法参数的学习

损失函数定义如下,其中由两部分组成,前面部分是正样本的损失,意思就是让正样本的相似性尽可能大;后面是负采样得到的负样本的损失,差别主要是里面多了个负号,意思就是数据和负样本之间的相似性尽可能的小。
在这里插入图片描述

实验

最后介绍一下作者试验部分的设置,作者使用不同数据集说明了算法的归纳式特性。在一张图的数据集上,评估算法对于未见过点的归纳式学习能力;在多张图的数据集上,评估算法对于未见过图的归纳式学习能力,最终结果表明算法效果好~~~

代码部分还没有整理,有时间整理一下,再把代码放上来~

参考文献

[1] Inductive representation learning on large graphs

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值