图系列(一)图神经网络

文章目录

    • Spatial-based convolution
      • NN4G (Neural Networks for Graph)
      • DCNN (Diffusion-Convolution Neural Network )
      • MoNET (Mixture Model Networks)
      • GraphSAGE
      • GAT (Graph Attention Networks)
      • GIN (Graph Isomorphism Network)
    • Spectral-based convolution
    • 学习资源

   Graph Neural Networks顾名思义由 GraphNeural Network组成。Graph由节点和边组成,节点有节点的性质,边有边的性质。

  09Franco Scarselli提出The Graph Neural Network Model,能够将其用于化学分子会不会突变。

图系列(一)图神经网络_第1张图片

  • GraphVAE用于药物研发。

  如何把graph输入到NN中?这就是GNN需要处理的最大的问题。GNN想要做的事情就是抽取与周围节点之间的关系。通常有两种做法:

图系列(一)图神经网络_第2张图片

  但是常用的算法是GATGCN

Spatial-based convolution

图系列(一)图神经网络_第3张图片

  用neighbor feature更新下一代的hidden state,我们乘这个操作叫做Aggregate。: 把所有 nodesfeature集合起来代表整个 graph的操作称之为Readout。那具体怎么做呢?

NN4G (Neural Networks for Graph)

  • Neural Network for Graphs: A Contextual Constructive Approach

  假设我们的输入如下图所示:

图系列(一)图神经网络_第4张图片

  节点 v 0 , ⋯   , v 4 v_{0},\cdots,v_{4} v0,,v4分别有 x 0 , ⋯   , x 4 x_{0},\cdots,x_{4} x0,,x4个特征,特征代表的是节点的一些特殊属性,比如在化学分子里面,就表示不同的原子所具有的属性。

  对于节点 v 3 v_{3} v3,先经过一个编码得到第0层隐藏层的输出 h 3 0 = W ˉ 0 ⋅ x 3 h_{3}^{0}=\bar{W}_{0} \cdot x_{3} h30=Wˉ0x3,之后在第一层隐藏层,需要考虑与节点 v 3 v_{3} v3相邻的三个节点,得到第1层隐藏层的输出 h 3 1 = W ^ 1 , 0 ( h 0 0 + h 2 0 + h 4 0 ) + W ˉ 1 x 3 h_{3}^{1}=\hat{W}_{1,0}(h_{0}^{0}+h_{2}^{0}+h_{4}^{0})+\bar{W}_{1}x_{3} h31=W^1,0(h00+h20+h40)+Wˉ1x3,上述就是Aggregate所做的事情。

  那Readout怎么考虑整张图的node feature呢?NN4G里面是将每一层的输出平均出来再加权。

图系列(一)图神经网络_第5张图片

DCNN (Diffusion-Convolution Neural Network )

  • Diffusion-Convolutional Neural Networks

  同样对于下面这个输入:

图系列(一)图神经网络_第6张图片

  第0层隐藏层的输出 h 3 0 = W 3 0 MEAN ( d ( 3 , ⋅ ) = 1 ) h_{3}^{0}=W_{3}^{0}\text{MEAN}(d(3,\cdot)=1) h30=W30MEAN(d(3,)=1),其中 d ( 3 , ⋅ ) = 1 d(3,\cdot)=1 d(3,)=1表示距离 v 3 v_{3} v3这个节点距离为1的节点,将其平均再乘上一个权重。

  第1层隐藏层的输出 h 3 0 = W 3 1 MEAN ( d ( 3 , ⋅ ) = 2 ) h_{3}^{0}=W_{3}^{1}\text{MEAN}(d(3,\cdot)=2) h30=W31MEAN(d(3,)=2)。可以看出它同样是基于输入图所做一些计算,并不是在第0层的输出上接着算的。

  之后将每个隐藏层计算得到的结果排成一个矩阵,每个节点乘上一个权重就能得到Node features输出:

图系列(一)图神经网络_第7张图片

  如果是将每个隐藏层计算得到的结果排成一个矩阵再加起来直接得到输出,而不是乘上权重矩阵的话,就是DGC (Diffusion Graph Convolution)这篇文章的工作。

MoNET (Mixture Model Networks)

  Geometric deep learning on graphs and manifolds using mixture model CNNs在处理neighbor node的时候不是将其平均起来,而是考虑邻居节点的加权。

图系列(一)图神经网络_第8张图片

GraphSAGE

图系列(一)图神经网络_第9张图片

  • Inductive Representation Learning on Large Graphs

GAT (Graph Attention Networks)

图系列(一)图神经网络_第10张图片

  • Graph Attention Networks

GIN (Graph Isomorphism Network)

  这篇文章主要是在理论上分析了什么样的做法会work,在处理邻居节点时,不希望去取max或者mean

图系列(一)图神经网络_第11张图片

Spectral-based convolution

  卷积操作在频域里面就是相乘,因此对输入图和Filter做傅里叶变换,然后相乘再做反变换可以得到相同的结果:

图系列(一)图神经网络_第12张图片

  这里老板给任务了,先做去了,后面还有一部分,也比较深入了,未完,以后有看到更好的资料再来把这里补上吧:

  • https://www.youtube.com/watch?v=M9ht8vsVEw8

学习资源

  • Deep Graph Library

图系列(一)图神经网络_第13张图片

你可能感兴趣的:(DL基础原理)