GraphSAGE-Inductive Representation Learning on Large Graphs

2023-10-17 06:10

本文主要是介绍GraphSAGE-Inductive Representation Learning on Large Graphs,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

GraphSAGE-原文在摘要中这样介绍:we learn a function that generates embeddings by sampling and aggregating features from a node’s local neighborhood.我们学习一个函数,这个函数可以从一个节点的邻居节点中进行采样和聚合特征来生成embedding。
如何理解呢?简单来说,就是在当前节点中的邻居节点中,随机抽取N个节点(有放回),通过将这N个节点的特征进行聚合操作,来生成当前节点的表征。

节点采样

原理

我们以论文中的图进行展示:
在这里插入图片描述

我们假设取深度k=2的距离作为最终的长度:
k=1,选择3个节点:以1为中心,选取2、3、5三个节点;
k=2,选择2个节点:选取{2:8和8,3:9和11,5:14和15};
虽然当k=2时,节点2的邻居节点只有1个,因为采用的有放回的随机抽样,因此,用来表示2的节点仍然是两个8。
论文中采样以及聚合的伪代码如下:
在这里插入图片描述
其中, X v X_{v} Xv是特征矩阵, v v v是节点, B \Beta B是需要生成向量的节点,K是深度, σ \sigma σ是非线性激活函数, A G G R E G A T E k AGGREGATE_{k} AGGREGATEk是聚合函数, N k N_{k} Nk是采样函数, W k W^{k} Wk是一个随机权重矩阵。
代码中1-7行是对k层的节点进行采样抽取,而第1层需要依赖第2层的节点表征,第2层需要依赖第2层所采样的节点,因此计算顺序应该和聚合步骤相反
第11行是对每一层的节点进行聚合计算;
第12行是对聚合后的特征进行连接,并做一次激活;
第13行是对表征的好特征进行归一化。

优点

论文中随机采样的优点在哪里呢?
1、减少了训练量,我们可以人为控制深度以及节点个数;
假如我们有一个节点有100个邻居,那么我们可以从中选取40个节点作为数据,这样,无疑减少了计算量;
2、生成节点向量更加灵活;
不需要进行全图计算,只需要将该节点与之的部分相关节点的特征进行计算,就可以得到节点向量,这也就是GraphSAGE为什么是归纳式,而且不是直推式。

聚合算法

论文中给出了4中聚合算法,我们做以下解释:

Mean aggregator

平均聚合,此种操作是对所选择的节点特征求均值,公式如下:
h v k ← M e a n ( h u k − 1 , ∀ u ∈ N v ) h_{v}^{k}\larr{Mean({h_u^{k-1},\forall_{u}\isin{N_{v}}})} hvkMean(huk1,uNv)

GCN aggregator

gcn聚合,和平均聚合类似,就是将特征向量输入一个一层的网络,通过激活函数后使用,公式如下:
h v k ← σ ( W ⋅ M E A N ( h v k − 1 ∪ h u k − 1 , ∀ u ∈ N v ) ) h_{v}^{k}\larr\sigma(W·MEAN({h_{v}^{k-1}}\cup{h_{u}^{k-1},\forall_{u}\isin{N_{v}}})) hvkσ(WMEAN(hvk1huk1,uNv))

LSTM aggregator

LSTM聚合,作者考虑到lstm有较好的抽取特征能力,因此采用lstm做了实验,但是,lstm具有序列性,而节点之间是无序列的,因为做了随机排列

Pooling aggregator

池化聚合,作者认为pooling操作可以有效的捕获邻域特征的不同方面,更有利于表达节点,而作者对max pooling和mean pooling进行比较,并没有发现哪个更具优势,因此采用max pooling,公式如下:
A G G R E G A T E k p o o l = m a x ( σ ( W p o o l h u i k + b ) , ∀ u i ∈ N ( v ) ) AGGREGATE_{k}^{pool}=max({\sigma(W_{pool}h_{u_{i}}^{k}+b),\forall_{u_{i}}\isin{N_{(v)}}}) AGGREGATEkpool=max(σ(Wpoolhuik+b),uiN(v))

比较

在这里插入图片描述
作者分别在有监督和无监督的情况下,对这四种聚合操作进行了比较,整体来看,效果最好的应该是Pooling聚合,但是,在不同数据集上,有监督和无监督的聚合操作效果还是有略微差别的,大家可以在训练自己数据集的时候,多尝试一下不同的聚合方式。

代码

在这里插入图片描述
论文作者采用了TensorFlow框架做的,并且实现了6种聚合方式,分别是平均聚合、GCN聚合、最大池化聚合、平均池化聚合、2层最大池化聚合、lstm聚合,详细的代码大家可以在TensorFlow版看到,另外还有Torch版,不过torch版只实现了mean聚合和gcn聚合两种方式。

结语

以上,就是小编自己对GraphSAGE的理解,如果大家有问题或者需要补充的,请留言或者加QQ:1143948594
附:Inductive Representation Learning on Large Graphs

这篇关于GraphSAGE-Inductive Representation Learning on Large Graphs的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/223463

相关文章

Deep Learning复习笔记0

Key Concept: Embedding: learned dense, continuous, low-dimensional representations of object 【将难以表示的对象(如图片,文本等)用连续的低维度的方式表示】 RNN: Recurrent Neural Network -> for processing sequential data (time se

Retrieval-Augmented Generation for Large Language Models A Survey

Retrieval-Augmented Generation for Large Language Models: A Survey 文献综述 文章目录 Retrieval-Augmented Generation for Large Language Models: A Survey 文献综述 Abstract背景介绍 RAG概述原始RAG先进RAG预检索过程后检索过程 模块化RAGMo

GIM: Learning Generalizable Image Matcher From Internet Videos

【引用格式】:Shen X, Yin W, Müller M, et al. GIM: Learning Generalizable Image Matcher From Internet Videos[C]//The Twelfth International Conference on Learning Representations. 2023. 【网址】:https://arxiv.or

OSS报错The difference between the request time and the current time is too large

目录 一、问题描述二、问题原因三、解决方法 一、问题描述 文件上传阿里云 OSS 报错: The difference between the request time and the current time is too large 二、问题原因 请求发起的时间超过 OSS 服务器当前时间 15 分钟,OSS 判定该请求无效,返回报错。 三、解决方法 OSS

5.How Fast Should You Be When Learning?(你应该用多快的速度学习? (一))

Normally when I talk about learing quickly, I’m using speed as a synonym for efficiency.Use more effective methods and you’ll learn more in less time.All else being equal, that means you’re learing fa

阅读笔记——《Large Language Model guided Protocol Fuzzing》

【参考文献】Meng R, Mirchev M, Böhme M, et al. Large language model guided protocol fuzzing[C]//Proceedings of the 31st Annual Network and Distributed System Security Symposium (NDSS). 2024.(CCF A类会议)【注】本

【Deep Learning】Meta-Learning:训练训练神经网络的神经网络

元学习:训练训练神经网络的神经网络 本文基于清华大学《深度学习》第12节《Beyond Supervised Learning》的内容撰写,既是课堂笔记,亦是作者的一些理解。 1 Meta-Learning 在经典监督学习中,给定训练数据 { ( x i , y i ) } i \{(x_i,y_i)\}_i {(xi​,yi​)}i​,我们需要训练一个神经网络 f f f使得 f (

【Deep Learning】Self-Supervised Learning:自监督学习

自监督学习 本文基于清华大学《深度学习》第12节《Beyond Supervised Learning》的内容撰写,既是课堂笔记,亦是作者的一些理解。 在深度学习领域,传统的监督学习(Supervised Learning)的形式是给你输入 x x x和标签 y y y,你需要训练一个基于参数 θ \theta θ的神经网络 f θ ( x ) f_\theta(x) fθ​(x)使其能

Representation Learning on Network 网络表示学习笔记

Embedding Nodes Encoder-decoder ViewEncoding Methods 1 Factorization based2 Random Walk based3 Deep Learning based 网络表示学习(Representation Learning on Network),一般说的就是向量化(Embedding)技术,简单来说,就是

AI播客下载:Machine Learning Street Talk(AI机器学习)

该频道由 Tim Scarfe 博士、Yannic Kilcher 博士和 Keith Duggar 博士管理。 他们做了出色的工作,对每个节目进行了彻底的研究,并与机器学习行业中一些受过最高教育、最全面的嘉宾进行了双向对话。 每一集都会教授一些新内容,并且提供未经过滤、毫不掩饰的技术对话。 他们列出的人工智能研究人员名单令人印象深刻,他们总是能提供有趣的对话。 之前的一些嘉宾包括 Je