0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GNN教程:GraghSAGE算法细节详解!

深度学习自然语言处理 来源:深度学习自然语言处理 作者:深度学习自然语言 2020-11-24 09:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

引言

本文为GNN教程的第三篇文章 【GraghSAGE算法】,在GCN的博文中我们重点讨论了图神经网络的逐层传播公式是如何推导的,然而,GCN的训练方式需要将邻接矩阵和特征矩阵一起放到内存或者显存里,在大规模图数据上是不可取的。 其次,GCN在训练时需要知道整个图的结构信息(包括待预测的节点), 这在现实某些任务中也不能实现(比如用今天训练的图模型预测明天的数据,那么明天的节点是拿不到的)。GraphSAGE的出现就是为了解决这样的问题,这篇博文中我们将会详细得讨论它。

一、Inductive learning v.s. Transductive learning

首先我们介绍一下什么是inductive learning。与其他类型的数据不同,图数据中的每一个节点可以通过边的关系利用其他节点的信息,这样就产生了一个问题,如果训练集上的节点通过边关联到了预测集或者验证集的节点,那么在训练的时候能否用它们的信息呢? 如果训练时用到了测试集或验证集样本的信息(或者说,测试集和验证集在训练的时候是可见的), 我们把这种学习方式叫做transductive learning, 反之,称为inductive learning。

显然,我们所处理的大多数机器学习问题都是inductive learning, 因为我们刻意的将样本集分为训练/验证/测试,并且训练的时候只用训练样本。然而,在GCN中,训练节点收集邻居信息的时候,用到了测试或者验证样本,所以它是transductive的。

二、概述

GraphSAGE是一个inductive框架,在具体实现中,训练时它仅仅保留训练样本到训练样本的边。inductive learning 的优点是可以利用已知节点的信息为未知节点生成Embedding. GraphSAGE 取自 Graph SAmple and aggreGatE, SAmple指如何对邻居个数进行采样。aggreGatE指拿到邻居的embedding之后如何汇聚这些embedding以更新自己的embedding信息。下图展示了GraphSAGE学习的一个过程:

对邻居采样

采样后的邻居embedding传到节点上来,并使用一个聚合函数聚合这些邻居信息以更新节点的embedding

根据更新后的embedding预测节点的标签

三、算法细节

3.1 节点 Embedding 生成(即:前向传播)算法

这一节讨论的是如何给图中的节点生成(或者说更新)embedding, 假设我们已经完成了GraphSAGE的训练,因此模型所有的参数(parameters)都已知了。具体来说,这些参数包括个聚合器(见下图算法第4行)中的参数, 这些聚合器被用来将邻居embedding信息聚合到节点上,以及一系列的权重矩阵(下图算法第5行), 这些权值矩阵被用作在模型层与层之间传播embedding的时候做非线性变换。

下面的算法描述了我们是怎么做前向传播的:

算法的主要部分为:

(line 1)初始化每个节点embedding为节点的特征向量

(line 3)对于每一个节点

(line 4)拿到它采样后的邻居的embedding并将其聚合,这里表示对邻居采样

(line 5)根据聚合后的邻居embedding()和自身embedding()通过一个非线性变换()更新自身embedding.

算法里的这个比较难理解,下面单独来说他,之前提到过,它既是聚合器的数量,也是权重矩阵的数量,还是网络的层数,这是因为每一层网络中聚合器和权重矩阵是共享的。

网络的层数可以理解为需要最大访问到的邻居的跳数(hops),比如在figure 1中,红色节点的更新拿到了它一、二跳邻居的信息,那么网络层数就是2。

为了更新红色节点,首先在第一层()我们会将蓝色节点的信息聚合到红色节点上,将绿色节点的信息聚合到蓝色节点上。在第二层()红色节点的embedding被再次更新,不过这次用的是更新后的蓝色节点embedding,这样就保证了红色节点更新后的embedding包括蓝色和绿色节点的信息。

3.2 采样 (SAmple) 算法

GraphSAGE采用了定长抽样的方法,具体来说,定义需要的邻居个数, 然后采用有放回的重采样/负采样方法达到,。保证每个节点(采样后的)邻居个数一致是为了把多个节点以及他们的邻居拼成Tensor送到GPU中进行批训练。

3.3 聚合器 (Aggregator) 架构

GraphSAGE 提供了多种聚合器,实验中效果最好的平均聚合器(mean aggregator),平均聚合器的思虑很简单,每个维度取对邻居embedding相应维度的均值,这个和GCN的做法基本一致(GCN实际上用的是求和):

举个简单例子,比如一个节点的3个邻居的embedding分别为 ,按照每一维分别求均值就得到了聚合后的邻居embedding为.

论文中还阐述了另外两种aggregator:LSTM aggregator和Pooling aggregator, 有兴趣的可以去论文中看下。

3.4 参数学习

到此为止,整个模型的架构就讲完了,那么GraphSAGE是如何学习聚合器的参数以及权重变量的呢? 在有监督的情况下,可以使用每个节点的预测label和真实label的交叉熵作为损失函数。在无监督的情况下,可以假设相邻的节点的输出embeding应当尽可能相近,因此可以设计出如下的损失函数:

其中是节点的输出embedding,是节点的邻居(这里邻居是广义的,比如说如果和在一个定长的随机游走中可达,那么我们也认为他们相邻),是负采样分布,是负采样的样本数量,所谓负采样指我们还需要一批不是邻居的节点作为负样本,那么上面这个式子的意思是相邻节点的embedding的相似度尽量大的情况下保证不相邻节点的embedding的期望相似度尽可能小。

四、后话

GraphSAGE采用了采样的机制,克服了GCN训练时内存和显存上的限制,使得图模型可以应用到大规模的图结构数据中,是目前几乎所有工业上图模型的雏形。然而,每个节点这么多邻居,采样能否考虑到邻居的相对重要性呢,或者我们在聚合计算中能否考虑到邻居的相对重要性? 这个问题在我们的下一篇博文Graph Attentioin Networks中做了详细的讨论。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4830

    浏览量

    106907
  • 算法
    +关注

    关注

    23

    文章

    4763

    浏览量

    97266
  • 模型
    +关注

    关注

    1

    文章

    3656

    浏览量

    51768

原文标题:GNN教程:GraghSAGE算法细节详解!

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SM4算法实现分享(一)算法原理

    SM4分组加密算法采用的是非线性迭代结构,以字为单位进行加密、解密运算,每次迭代称为一轮变换,每轮变换包括S盒变换、非线性变换、线性变换、合成变换。加解密算法与密钥扩展都是采用32轮非线性迭代结构
    发表于 10-30 08:10

    复杂的软件算法硬件IP核的实现

    的实现的技术细节,知道这些技术细节将有利于在使用 C 语言编写算法时实现一些有针对性的优化。 2.1 C to HASM HASM 是一种在 C 语言编译到HDL 时、经过严格定义的专用的语言
    发表于 10-30 07:02

    国密系列算法简介及SM4算法原理介绍

    一、 国密系列算法简介 国家商用密码算法(简称国密/商密算法),是由我国国家密码管理局制定并公布的密码算法标准。其分类1所示: 图1 国家商用密码
    发表于 10-24 08:25

    数据滤波算法的具体实现步骤是怎样的?

    (高频电磁、瞬时脉冲等),选择适配的滤波算法并落地。以下以电能质量监测中最常用的 IIR 低通滤波(抗高频干扰)、滑动平均滤波(抗瞬时脉冲)、卡尔曼滤波(抗动态波动) 为例,详解具体实现步骤: 一、前置准备:明确滤波目标与硬件基
    的头像 发表于 10-10 16:45 478次阅读

    DFT算法与FFT算法的优劣分析

    一概述 在谐波分析仪中,我们常常提到的两个词语,就是DFT算法与FFT算法,那么一款功率分析仪/谐波分析仪采用DFT算法或者FFT算法,用户往往关注的是能否达到所要分析谐波次数的目的,
    的头像 发表于 08-04 09:30 942次阅读

    SVPWM的原理及法则推导和控制算法详解

    小,使得电机转矩脉动降低,旋转磁场更逼近圆形,而且使直流母线电压的利用率有了很大提高,且更易于实现数字化。下面将对该算法进行详细分析阐述。 1.1 SVPWM 基本原理 SVPWM 的理论基础
    发表于 06-16 17:11

    SSH常用命令详解

    SSH常用命令详解
    的头像 发表于 06-04 11:30 1745次阅读

    芯片新关税涉及的品牌/标签/产地—详解

    芯片新关税涉及的品牌/标签/产地—详解
    的头像 发表于 04-16 17:44 870次阅读
    芯片新关税涉及的品牌/标签/产地—<b class='flag-5'>详解</b>

    三维扫描仪新品 NimbleTrack-CR 极致细节,灵动无线!

    搭载高性能工业相机与智能优化算法,精准还原表面细小纹理与复杂结构,赋能工业精密零部件、艺术文博等领域三维数字化革新,从工业产线质量控制到千年文脉的数字化重生,让每一处细节成为解锁智造标准与文明密码的全能密钥。 细节捕捉 纤毫毕现
    的头像 发表于 03-20 15:54 564次阅读
    三维扫描仪新品  NimbleTrack-CR 极致<b class='flag-5'>细节</b>,灵动无线!

    SVPWM的原理及法则推导和控制算法详解

    ,而且使直流母线电压的利用率有了很大提高,且更易于实现数字化。下面将对该算法进行详细分析阐述。 文章过长,请点击下方可查阅*附件:SVPWM的原理及法则推导和控制算法详解.pdf
    发表于 03-14 14:51

    电力电子中的坐标变换详解

    电力电子中的坐标变换详解 clark变换&park变换
    发表于 02-17 15:28 1次下载

    Kubernetes Pod常用管理命令详解

    Kubernetes Pod常用管理命令详解
    的头像 发表于 02-17 14:06 1010次阅读
    Kubernetes Pod常用管理命令<b class='flag-5'>详解</b>

    详解温度传感器校准方法

    温度测量是现代科技的基础,而校准则是确保测量准确的关键。让我们深入探讨温度传感器校准的技术细节,揭开这项精密科学的神秘面纱。 校准方法详解 定点法校准 这是最精确的校准方法之一,利用纯物质的相变点
    的头像 发表于 02-11 14:35 2812次阅读

    精密空调操作使用方法详解

    精密空调操作使用方法详解
    的头像 发表于 02-10 14:44 1950次阅读
    精密空调操作使用方法<b class='flag-5'>详解</b>

    详解RF端口如何选择TVS启动电压

    AMAZINGIC晶焱科技技术应用:详解RF端口如何选择TVS启动电压
    的头像 发表于 02-05 16:19 1417次阅读
    <b class='flag-5'>详解</b>RF端口如何选择TVS启动电压