图系列(一)图神经网络

    技术2025-08-04  25

    文章目录

    Spatial-based convolutionNN4G (Neural Networks for Graph)DCNN (Diffusion-Convolution Neural Network )MoNET (Mixture Model Networks)GraphSAGEGAT (Graph Attention Networks)GIN (Graph Isomorphism Network) Spectral-based convolution学习资源    Graph Neural Networks顾名思义由 Graph和 Neural Network组成。Graph由节点和边组成,节点有节点的性质,边有边的性质。

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

    GraphVAE用于药物研发。

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

      但是常用的算法是GAT和GCN。

    Spatial-based convolution

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

    NN4G (Neural Networks for Graph)

    Neural Network for Graphs: A Contextual Constructive Approach

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

      节点 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里面是将每一层的输出平均出来再加权。

    DCNN (Diffusion-Convolution Neural Network )

    Diffusion-Convolutional Neural Networks

      同样对于下面这个输入:

      第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输出:

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

    MoNET (Mixture Model Networks)

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

    GraphSAGE

    Inductive Representation Learning on Large Graphs

    GAT (Graph Attention Networks)

    Graph Attention Networks

    GIN (Graph Isomorphism Network)

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

    Spectral-based convolution

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

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

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

    学习资源

    Deep Graph Library

    Processed: 0.262, SQL: 9