0
点赞
收藏
分享

微信扫一扫

【图神经网络】李宏毅


GNN 引入

假如要预测一个人是否是凶手。可以通过每个角色的特征训练出一个分类器。

【图神经网络】李宏毅_深度学习

有没有我们忽略的信息,或者我们可以利用但没有完全利用的信息。就是角色的关系。

【图神经网络】李宏毅_Graph_02

这些角色关系可以让我们在做分类的时候获得一些额外的信息,可以帮助我们做更好的model。怎样同时考虑角色的特征和角色之间的关系,这个时候就要用GNN。

CNN 扩展到 GNN

【图神经网络】李宏毅_Graph_03


对于CNN,通过卷积核,将一个点周围的邻居和卷积核对应相乘相加,得到下一层 feature map 的结果。这件事情能否 generalize 到 graph 上?

对于GNN,能否有一个类似卷积核的东西?

【图神经网络】李宏毅_深度学习_04

方法一:通过邻居 update ferture map。
方法二:信号处理的方法。先把信号转到 fourier domain 里面,再把转到 fourier domain 的信号和转到 fourier domain 的 filter response 做相乘,相乘之后再做 inverse fourier transform,就可以得到最后经过 filter 的信号。

如何在 graph 上做 convolution

有两种方式,就是上面讲的两个方法,一种是 Spatial-based 方法,一种是 Spectral-based 方法。

【图神经网络】李宏毅_Graph_05

Spatial-based GNN

回顾 CNN 的做法

【图神经网络】李宏毅_sed_06


Spatial-based GNN 的做法

【图神经网络】李宏毅_深度学习_07

NN4G

看一下具体的 GNN 是如何做的

先做 embedding

embedding 是一个将离散变量转为连续向量表示的一个方式。

【图神经网络】李宏毅_sed_08


更新一个节点的做法

将邻居节点的特征相加,经过一个 transform,再加上该节点原本的特征。

【图神经网络】李宏毅_权重_09


Readout 的做法

【图神经网络】李宏毅_Graph_10

DCNN

【图神经网络】李宏毅_Graph_11


第一层是将跟节点3距离为1的节点取平均,第二层是将跟节点3距离为2的节点取平均。如果叠 k 层,就能看到 k 邻居的信息。

【图神经网络】李宏毅_sed_12


把每一层节点的特征叠起来。

【图神经网络】李宏毅_权重_13


得到最终某个节点的特征。

DGC

和 DCNN 的区别

【图神经网络】李宏毅_Graph_14

MoNET

NN4G 是将每个节点相加,没有考虑邻居的权重。MoNET 考虑了邻居的权重。

【图神经网络】李宏毅_权重_15

GAT

MoNET 是定义了权重的计算方式,GAT 让网络自己去学这个权重。

【图神经网络】李宏毅_深度学习_16

做法是对邻居做 attention

【图神经网络】李宏毅_权重_17

GIN

【图神经网络】李宏毅_sed_18


结论是对邻居做 sum 而不是 mean 或 max

Spectral-based GNN

还是想像 CNN 一样做卷积

【图神经网络】李宏毅_权重_19

上图原理是时域卷积等于频域乘积

后面就听不懂了。。。
可以去看原视频
P43(选修)To Learn More - Graph Neural Netwo(2_2)

参考

P42 (选修)To Learn More - Graph Neural Network(1_2)P43(选修)To Learn More - Graph Neural Netwo(2_2)


举报

相关推荐

0 条评论