[Graph Classification] GraphSAGE 论文笔记

[Graph Classification] GraphSAGE

GraphSAGE是一个经典的GNN模型,GraphSAGE在很多paper中都作为graph classification的baselines之一,因为他在图分类问题上有着很好的效果。

GraphSAGE是一种inductive representation learning,即可以利用已知节点的信息为未知节点生成embeddings。而GCN是一种transductive learning,即它必须在一个确定的图中进行embeddings的学习,无法直接泛化到未出现过的节点。

Introduction

在这里插入图片描述

GraphSAGE的方法如上图所示:

  1. 从顶点开始采样一定数量的邻居节点
  2. 将邻居节点的feature information 进行聚合,并和节点当前层的feature进行连接,并通过非线性函数得到新的feature
  3. 迭代1-2,最后一层的feature,即为节点的embeddings

Sample method

出于对计算效率的考虑,对每个顶点采样一定数量的邻居顶点作为待聚合信息的顶点。设采样数量为k,若顶点邻居数少于k,则采用有放回的抽样方法,直到采样出k个顶点。若顶点邻居数大于k,则采用无放回的抽样。

当然,若不考虑计算效率,我们完全可以对每个顶点利用其所有的邻居顶点进行信息聚合,这样是信息无损的。

Embedding generation algorithm

在这里插入图片描述

K K K为深度,即GraphSage能够聚合到的邻居节点的最远深度。

算法看起来很简单,4-5行为关键,即对邻居节点的特征进行聚合,然后和自己的特征进行连接并且通过非线性函数得到新的特征。

Learning parameters

  1. 无监督学习:
    基于整个图的损失函数,希望临近的节点有相似的表示,让离的远的节点的表示高度不同。损失函数如下:
    在这里插入图片描述
    最小化上面的损失函数,其中节点v是节点u通过固定长度的random walk产生的节点序列中的"邻居节点", P n P_n Pn是负采样的概率分布,Q决定负采样的样本数量。这里的顶点表示向量是通过聚合顶点的邻接点特征产生的,而不是简单的进行一个embedding lookup操作得到。
  2. 监督学习:
    监督学习形式根据任务的不同直接设置目标函数即可,如最常用的节点分类任务使用交叉熵损失函数。

Aggregator Architectures

聚合函数必须满足的是,对于无序的节点序列,聚合函数的输出与其输入节点的序列是无关的,即聚合函数必须是symmetric的。

作者提出了3个聚合函数:

  • Mean aggregator

    在这里插入图片描述

  • LSTM aggregator

    LSTM的表达能力更强,但是它不是symmetric的,所以在输入的时候,需要对节点进行一次random operation

  • Pooling aggregator

    Pooling aggregator 先对目标顶点的邻接点表示向量进行一次非线性变换,之后进行一次pooling操作(maxpooling or meanpooling),将得到结果与目标顶点的表示向量拼接,最后再经过一次非线性变换得到目标顶点的第k层表示向量。

    在这里插入图片描述


论文原文Inductive Representation Learning on Large Graphs

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值