GraphSAGE【文献阅读笔记】

GraphSAGE是一种归纳学习的图神经网络模型,能够在未见过的节点上进行预测。它通过采样和聚合邻居节点信息来生成节点的嵌入表示。与之前的图卷积网络GCN不同,GraphSAGE适用于不断变化的图数据,并在节点分类任务上展示了优秀的性能。论文提出了三种可学习的聚合器架构,包括平均聚合、LSTM聚合和池化聚合。实验结果显示,GraphSAGE在引文网络和Reddit数据集上的归纳学习任务中表现出色,并且在蛋白质-蛋白质相互作用数据集上相比其他模型有优势。
摘要由CSDN通过智能技术生成

GraphSAGE模型

paper:《Inductive Representation Learning on Large Graphs》。

Hamilton W, Ying Z, Leskovec J. Inductive representation learning on large graphs[C]//Advances in neural information processing systems. 2017: 1024-1034.

因为要进行实验,所以重点关注的模型和实验部分。


Abstract

两个比较重要的概念:

  1. transductive:直推式学习,训练时所有节点(数据)均可见
  2. inductive:归纳学习,用于测试的节点(数据)在训练时不可见(unseen)。

之前的一些模型基本都是transductive的,而本文提出的GraphSAGE模型是inductive的——通过采样+聚合邻居来学习节点嵌入表示,最终的测试是对于3个数据集的节点分类任务。

知乎:如何理解 inductive learning 与 transductive learning?

1 Introduction

废话就不多说了。
本文的工作:将Kipf等人的GCN模型扩展到inductive unsupervised learning,并且提出使用可学习聚合器的通用模型框架GraphSAGE。

Present work
核心思想:采样+聚合+更新
(测试时,用训练好的model为unseen节点生成嵌入表示)

在这里插入图片描述

2 Related work

之前的相关工作和GraphSAGE模型息息相关:

Factorization-based embedding approaches
基于因子分解的方法,主要是随机游走和矩阵分解。
和它们不同,GraphSAGE利用特征信息来为unseen节点训练模型。

Supervised learning over graphs
和图级任务不同,本次工作主要是面向单个节点的嵌入表示(node-level)。

Graph convolutional networks
GraphSAGE模型和Kipf等人的GCN模型密切相关。

3 Proposed method: GraphSAGE

重点来了!!!

3.1 Embedding generation (i.e., forward propagation) algorithm

前向传播算法,假设模型的参数已知(随机初始化,之后再使用SGD更新)。
其中模型的参数主要是:每一层的聚合函数 A g g r e g a t e k Aggregate_k Aggregatek中的参数和每一层的权重 W k W^k Wk
算法1是full-batch的算法,算法2(附录A)是mini-batch的算法,实验中肯定要使用minibatch,因此算法2是事实上的前向传播算法。

算法1
注意:算法1中用到的是全节点集 V \mathcal V V,并且 N ( v ) N(v) N(v)一开始是全邻居集,后面重载定义为每层采样固定数量的邻居。算法1符合消息传递框架,也是比较好理解的。

算法2

算法2理解起来就有一些绕了,特别是采样阶段“倒推”求解的骚操作,让人直呼好家伙。
相比之下,算法2增加了采样阶段,也是因为采样,后面的聚合阶段也有小小的改动(不过基本和算法1一致)。
下面主要来讲一讲如何进行采样。这里的采样和邻居采样有关,但其实又不太一样。初始给出一个小批量节点集 β \beta β(可以理解为shuffle后dataloader提取的一个batch),记住,这个集合很重要,在这个batch当中,我们最终只去学习 β \beta β内节点的嵌入表示,而非全部节点。因此,最后一层(第K层)需要采样的节点集 β K \beta^K βK就是 β \beta β
但是,随之而来的一个问题是,我虽然只学习 β \beta β内的节点,但是我在聚合阶段需要它们的邻居啊,因此第k-1层采样的节点集一定要包含第k层计算所用到的所有节点(邻居)。基于这种思想,采样阶段才会搞出“倒推”计算的骚操作——从最后一层K开始推,依次将本层计算所需要的(邻居)节点加入到集合中,生成前一层的节点集,直到 β 0 \beta^0 β0为止。因此,有如下的关系: ∣ β 0 ∣ ⊇ . . . ⊇ ∣ β K ∣ |\beta^0|\supseteq...\supseteq|\beta^K| β0...βK
还有一点需要注意,就是邻居采样函数 N k ( u ) N_k(u) Nk(u)。它是一个决策函数,用来确定节点邻居的随机样本。每一层的 N k ( u ) N_k(u) Nk(u)相互独立,它为每个节点u采样固定大小(数量)的邻居,第k层每个节点采样的邻居数量用 S k S_k Sk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值