图表示学习入门3——图神经网络

本文深入介绍了图神经网络(GNN)的基础知识,从卷积神经网络的启示出发,探讨了GNN的核心思想、传播机制及其在无监督和有监督训练中的应用。通过实例解析了图卷积网络(GCN)和GraphSAGE的传播过程,为初学者提供了清晰的理解路径。
摘要由CSDN通过智能技术生成

图神经网络(Graph Neural Network)在社交网络、推荐系统、知识图谱上的效果初见端倪,成为近2年大热的一个研究热点。然而,什么是图神经网络?图和神经网络为什么要关联?怎么关联?

本文将以浅显直觉的方式,介绍GNN的灵感来源,构造方法,训练方式等,参考《Representation Learning on Networks》中GNN部分,做了具体的解读和诠释,并增补了一些代码中才有的实现细节,帮助初学者理解。

代码实现:(https://github.com/leichaocn/graph_representation_learning)

卷积神经网络的启示

回顾对图像的简单卷积:

在这里插入图片描述

图1.卷积网络的基本操作 ( source)

如图1所示:一幅图(image)所抽取的特征图(features map)里每个元素,可以理解为图(image)上的对应点的像素及周边点的像素的加权和(还需要再激活一下)。

同样可以设想:一个图(graph)所抽取的特征图(也就是特征向量)里的每个元素,也可以理解为图(graph)上对应节点的向量与周边节点的向量的加权和

这种迁移联想值得好好体会。

体会明白后,那具体怎么做呢?

核心想法

正如上面讨论的,归纳为一句话:用周围点的向量传播出自己的Embedding

一个非常简单的例子就能搞明白。

在这里插入图片描述

图2.一个图(graph)的例子 ( source)

对于图2来说,要求节点A的Embedding,我们有以下的两条想法:

  • 节点A的Embedding,是它的邻接节点B、C、D的Embedding的前向传播的结果
  • 而节点B、C、D的Embedding,又是由它们各自的邻接节点的Embedding传播的结果。

但是你可能会说,这样不断追溯,何时能结束?所以为了避免无穷无尽,我们就搞上面这两层就行了。

根据上面的讨论,我们可以构造图3的传播关系。

在这里插入图片描述

图3.由两层传播生成节点A的Embedding ( source)

第0层即输入层,为每个节点的初始向量(根据所处领域里特征数据进行构建),不妨称为初始Embedding。

  • 第一层

    节点B的Embedding来自它的邻接点A、C的Embedding的传播。

    节点C的Embedding来自它的邻接点A、B、C、D的Embedding的传播。

    节点D的Embedding来自它的邻接点A的Embedding的传播。

  • 第二层

    节点A的Embedding来自它的邻接点B、C、D的Embedding的传播。

好了,大概可能有点感觉了,可是传播到底是什么?图中的小方块里到底在什么什么?

(注意:图中所有的方块代表的操作均相同,大小、颜色的差异没有任何含义)

传播机制

小方块里做的就两件事:

  • 收集(Aggregation)

    简言之,就是对上一层的所有邻接节点的Embedding,如何进行汇总,获得一个Embedding,供本层进行更新。

  • 更新(Update)

    即对本层已“收集完毕”的邻接点数据,是否添加自身节点的上一层Embedding,如果是如何添加,如何激活,等等方式,最终输出本层的Embedding。

表达成数学公式,即下面这个式子:

在这里插入图片描述

先解释其中的符号含义: h h h表示节点的Embedding,下标 v v v u u u表示节点的索引,上标 k k k表示第几层的意思, σ \sigma σ表示激活函数, W k W_k Wk B k B_k Bk表示矩阵, N ( v ) N(v) N(v

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值