GNNs入门(三)GraphSAGE

什么是 GraphSAGE?

GraphSAGE(Graph Sample and Aggregation) 是一种专注于图数据的归纳表示学习(inductive representation learning)方法,由 William L. Hamilton, Rex Ying 和 Jure Leskovec 于 2017 年在 NeurIPS 上提出。传统的图表示学习(如 DeepWalk、node2vec、GCN 等)大多属于直推式(transductive)框架,即只能在训练集出现过的节点上生成嵌入。而 GraphSAGE 通过引入“采样与聚合”的策略,能够从原始节点特征出发,以归纳式(inductive)的方式高效生成新节点的表示,从而有效突破只能在固定图结构和已知节点上工作的瓶颈。


GraphSAGE 的动机

在 GraphSAGE 出现之前,许多基于随机游走、矩阵分解或卷积网络的图表示学习算法只能在固定的图上进行嵌入学习。换言之,当给定一张包含特定节点和边的图时,这类方法可以得到这些节点的向量表示,但如果有新节点加入,或者需要迁移到完全新的图上,则必须对整个图进行重新训练。这种局限在动态图、快速扩展的大规模图场景中难以满足实际需求。

GraphSAGE 的核心动机在于:不只对已见过的节点进行嵌入学习,而是学习一个从节点特征及邻域结构到节点嵌入的通用映射函数。 这样,当有新节点加入时,无需重新训练整体模型,只需将新节点的特征和局部邻域信息输入该映射函数,即可快速得到该节点的表示。


GraphSAGE 的基本原理

GraphSAGE 的思想可以概括为三个步骤:采样(Sample)→ 聚合(Aggregate)→ 更新(Update)。

  1. 采样(Sample):对于目标节点 ( v ),从其邻居集中随机采样一定数量的邻居节点(可多阶采样,如一阶邻居、二阶邻居等)。采样是关键,因为对大规模图进行全邻域计算不仅昂贵,而且不利于并行和分批(mini-batch)训练。

  2. 聚合(Aggregate):对采样到的邻居节点嵌入进行聚合。此处的聚合函数(Aggregator)非常灵活,可以是简单的均值,也可以是更复杂的池化(Pooling)或者基于 LSTM 的聚合操作。

  3. 更新(Update):将目标节点自身的特征向量与聚合后的邻居信息通过某种形式(如拼接后通过全连接层,或与邻域表示进行非线性变换)加权组合,从而获得目标节点新的嵌入表示。通过多层迭代,可获取更高阶邻域信息的整合,从而丰富节点的语义表示。

在训练时,GraphSAGE 通过随机批(mini-batch)的方式对采样和聚合过程进行参数学习,从而保证在大规模图上仍可保持较高的训练速度和可扩展性。


采样策略

GraphSAGE 在训练过程中利用分批采样(mini-batch sampling)对节点的邻域进行处理。其好处有:

  • 可扩展性:无须对整个图一次性处理,而是分小批梯度更新,适合超大规模图数据。
  • 灵活性:对不同节点可采用不同的采样率和层数,减少无效计算。
  • 并行性:采样操作易于并行化,可以充分利用硬件资源。

在论文的附录(Appendix A)中有详细介绍,实际实现时可以根据图的稀疏度、节点度分布与计算资源灵活设置采样参数(如每一阶采样多少个邻居节点)。


聚合函数的设计与选择

聚合函数在 GraphSAGE 中起着关键作用。以下是论文中常用的聚合器类型:

  1. Mean Aggregator:对邻居节点的嵌入求平均值,然后与中心节点嵌入合并并通过神经网络更新。简单高效,能提供稳定的性能。

  2. Pooling Aggregator:对每个邻居节点的嵌入先通过一个非线性激活(如 ReLU)作用的 MLP,然后对所有邻居节点的嵌入进行最大池化(max-pooling)或者平均池化。该方法能捕捉非线性特征组合,更具表达力。

  3. LSTM Aggregator:将邻居节点嵌入序列输入一个 LSTM 网络进行编码。虽然在理论上更有表达能力,但实际提升有赖于邻居排序的策略与数据分布。

选择聚合器时需要权衡复杂度和性能表现。一般而言,从 Mean Aggregator 开始进行调参是较为稳妥的策略,然后根据任务需求尝试更复杂的聚合器。


参数学习和泛化能力

GraphSAGE 模型的训练目标与传统表征学习方法类似,可以采用无监督或半监督策略。以无监督为例,论文中采用了一种基于负采样(negative sampling)的目标函数:希望相似(连接)节点的表示相近,不相连的节点表示则距离较远。这种训练方式本身不依赖于特定节点集,而是依赖于“映射函数”的参数。

因为最终训练得到的是参数化的映射函数(而非特定节点的最终嵌入),GraphSAGE 可以很轻松地泛化到新节点上:只要输入该新节点的特征及其邻居信息,即可生成新的嵌入表示。


GraphSAGE 的应用场景

GraphSAGE 的归纳学习属性,使得它在以下场景大有用武之地:

  • 社交网络分析:对用户进行表示学习,用于好友推荐、社区检测、网络演化研究,能够快速适应新用户的加入。
  • 电商和推荐系统:将用户、商品嵌入到同一个向量空间,用于个性化推荐、客户细分和搜索排序,解决上线后新增商品、用户的实时计算问题。
  • 生物信息学与药物发现:对分子图、蛋白质交互网络进行嵌入学习,以分析图结构与分子性质之间的关系,并对新分子快速进行嵌入表征。
  • 知识图谱与语义网络:对概念、实体进行表示,并在新实体出现时保持快速适应。

实践经验与建议

  1. 选择合适的聚合器:从简单的 Mean Aggregator 入手,根据验证集性能和任务需求逐步尝试更复杂的聚合器(Pooling、LSTM)。

  2. 调整采样比例与层数:过大的采样规模会增加计算成本,过小的采样率又可能导致表示质量不佳。建议在实际任务中多试验不同参数组合,以达到速度与精度的平衡。

  3. 利用预训练模型:在相似领域的图数据上预训练 GraphSAGE 模型,然后将参数迁移到新数据集进行微调,有助于加快收敛速度并提升模型性能。

  4. 配合其他特征与模型:在实践中可将 GraphSAGE 生成的嵌入与手工特征(如节点度、标签信息)或下游任务特征工程结果相结合,以构建更稳健的特征输入给下游分类、回归或推荐系统。


总结

GraphSAGE 提出了一种面向大规模图数据的归纳式表示学习框架。通过将随机采样和聚合操作嵌入到模型训练中,GraphSAGE 能够高效扩展至新节点与新数据集,为动态场景和实时决策提供灵活而高效的解决方案。其强大的泛化能力与可扩展性,使得 GraphSAGE 在社交网络、推荐系统、生物信息学等众多领域得以广泛应用。随着大规模图数据的快速增长和更加复杂的下游任务需求,GraphSAGE 及其衍生方法在未来必将发挥越来越重要的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我也秃了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值