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

相关文章

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

简单的Q-learning|小明的一维世界(3)

简单的Q-learning|小明的一维世界(1) 简单的Q-learning|小明的一维世界(2) 一维的加速度世界 这个世界,小明只能控制自己的加速度,并且只能对加速度进行如下三种操作:增加1、减少1、或者不变。所以行动空间为: { u 1 = − 1 , u 2 = 0 , u 3 = 1 } \{u_1=-1, u_2=0, u_3=1\} {u1​=−1,u2​=0,u3​=1}

简单的Q-learning|小明的一维世界(2)

上篇介绍了小明的一维世界模型 、Q-learning的状态空间、行动空间、奖励函数、Q-table、Q table更新公式、以及从Q值导出策略的公式等。最后给出最简单的一维位置世界的Q-learning例子,从给出其状态空间、行动空间、以及稠密与稀疏两种奖励函数的设置方式。下面将继续深入,GO! 一维的速度世界 这个世界,小明只能控制自己的速度,并且只能对速度进行如下三种操作:增加1、减

高精度打表-Factoring Large Numbers

求斐波那契数,不打表的话会超时,打表的话普通的高精度开不出来那么大的数组,不如一个int存8位,特殊处理一下,具体看代码 #include<stdio.h>#include<string.h>#define MAX_SIZE 5005#define LEN 150#define to 100000000/*一个int存8位*/int num[MAX_SIZE][LEN];void

访问controller404:The origin server did not find a current representation for the target resource

ider build->rebuild project。Rebuild:对选定的目标(Project),进行强制性编译,不管目标是否是被修改过。由于 Rebuild 的目标只有 Project,所以 Rebuild 每次花的时间会比较长。 参考:资料

[论文笔记]Making Large Language Models A Better Foundation For Dense Retrieval

引言 今天带来北京智源研究院(BAAI)团队带来的一篇关于如何微调LLM变成密集检索器的论文笔记——Making Large Language Models A Better Foundation For Dense Retrieval。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 密集检索需要学习具有区分性的文本嵌入,以表示查询和文档之间的语义关系。考虑到大语言模

Learning Memory-guided Normality for Anomaly Detection——学习记忆引导的常态异常检测

又是一篇在自编码器框架中研究使用记忆模块的论文,可以看做19年的iccv的论文的衍生,在我的博客中对19年iccv这篇论文也做了简单介绍。韩国人写的,应该是吧,这名字听起来就像。 摘要abstract 我们解决异常检测的问题,即检测视频序列中的异常事件。基于卷积神经网络的异常检测方法通常利用代理任务(如重建输入视频帧)来学习描述正常情况的模型,而在训练时看不到异常样本,并在测试时使用重建误

Learning Temporal Regularity in Video Sequences——视频序列的时间规则性学习

Learning Temporal Regularity in Video Sequences CVPR2016 无监督视频异常事件检测早期工作 摘要 由于对“有意义”的定义不明确以及场景混乱,因此在较长的视频序列中感知有意义的活动是一个具有挑战性的问题。我们通过在非常有限的监督下使用多种来源学习常规运动模式的生成模型(称为规律性)来解决此问题。体来说,我们提出了两种基于自动编码器的方法,以

COD论文笔记 Adaptive Guidance Learning for Camouflaged Object Detection

论文的主要动机、现有方法的不足、拟解决的问题、主要贡献和创新点如下: 动机: 论文的核心动机是解决伪装目标检测(COD)中的挑战性任务。伪装目标检测旨在识别和分割那些在视觉上与周围环境高度相似的目标,这对于计算机视觉来说是非常困难的任务。尽管深度学习方法在该领域取得了一定进展,但现有方法仍面临有效分离目标和背景的难题,尤其是在伪装目标与背景特征高度相似的情况下。 现有方法的不足之处: 过于

One-Shot Imitation Learning

发表时间:NIPS2017 论文链接:https://readpaper.com/pdf-annotate/note?pdfId=4557560538297540609&noteId=2424799047081637376 作者单位:Berkeley AI Research Lab, Work done while at OpenAI Yan Duan†§ , Marcin Andrychow