0
点赞
收藏
分享

微信扫一扫

李宏毅老师-GNN Part1

慢慢来,会做到更好!

GNN(Graph Neural Networks) part1

让我们先了解一下什么是Graph?
如下图例子所示,有节点有边的图形可以粗略定义为Graph

在这里插入图片描述

那么,问题来了
我们为什么需要GNN呢?
怎么把一个Graph塞入一个neural network呢?

请添加图片描述

我们为什么需要GNN呢?
分类和生成

请添加图片描述请添加图片描述

请添加图片描述
请添加图片描述

仔细想想,我们是不是忽略了一点重要的情况呢?
没错,那就是人物之间的关系!

请添加图片描述

但是又有一些问题发生了

请添加图片描述

我们该怎么用node 的邻居来帮助model做训练呢?

请添加图片描述

下列有两种方法
基于空间的卷积(Spatial-based convolution)和基于频域的卷积(Spectral-based convolution)
part1 我们先用第一种方法-Spatial-based convolution

请添加图片描述
在这里插入图片描述

在这里插入图片描述

我们可以通过模拟CNN(convolution)的方法:用neighbor feature update来计算下一层
的node,最后通过readout把所有nodes的feature集合起来代表整个Graph

在这里插入图片描述

下面,我们就具体研究一下它的具体流程吧
input layer经过embedding之后到hidden layer 0,
更新的话是将其相邻的节点相加然后乘以权重再加上之前input layer层的输入。

在这里插入图片描述

整个图的表示是通过求出每一层整个图中的顶点间的特征均值,
然后各自乘以相应的权重再把每一层获取的结果相加。

在这里插入图片描述

每一层的更新方式:
第一层,更新某个节点首先找到与它距离为1的节点,然后用原始的输入相加取平均值再乘以权重。
第二层,更新更新某个节点首先找到与它距离为2的节点(也包括自身的),
然后用原始的输入相加取平均值再乘以权重。

在这里插入图片描述

在这里插入图片描述

还有种简单的处理方式:将每一层对应的节点相加。

在这里插入图片描述

前面的model只是简单的相加,并没有考虑邻居与邻居之间的权重
那么,下面的这个model主要考虑这个问题

在这里插入图片描述

下面又是一种厉害的模型,也是最广的模型之一
比如E3,0表示的是:对于h3 node来说,h0 node有多重要。

在这里插入图片描述

最后一种模型
emmm 没听懂

在这里插入图片描述

举报

相关推荐

0 条评论