GNN(Graph Neural Network)

GNN是为了解决图(Graph)结构的数据,比如社交网络、分子结构、树
笔记:ML-LHY-10 补充: GNN(Graph Neural Network)
比如预测一个分子结构会不会发生突变
笔记:ML-LHY-10 补充: GNN(Graph Neural Network)
更形象的例子:
笔记:ML-LHY-10 补充: GNN(Graph Neural Network)
预测一个人是不是凶手,当然可以使用各种特征做分类。比如实验2 classification。但是还可以考虑的一个特征是人与人之间的联系
笔记:ML-LHY-10 补充: GNN(Graph Neural Network)
所以如何在预测一个人的类别时同时考虑和其他人关系,这就构成了图,GNN处理的就是这种结构,一种图结构

首先提出3个挑战:

  • 如何利用结构和关系来帮助模型?
  • 怎么处理大型图,比如有20k节点?
  • 如果图很大,有可能不能所有的节点都有label,怎么处理?

首先第3个问题,可以找最近节点近似

笔记:ML-LHY-10 补充: GNN(Graph Neural Network)
我们知道卷积可以作用在以矩阵形式分布的存储结构上,典型的例子就是图片,那么如何作用在图上?
笔记:ML-LHY-10 补充: GNN(Graph Neural Network)

有2种解决方法:

  • 将卷积(相关性)的概念推广到图>>基于空间的卷积(Spatial-based Convolution)
  • 回到信号处理中卷积的定义>>频谱卷积(类似图像处理中的频域滤波?)

Spatial-based Convolution

笔记:ML-LHY-10 补充: GNN(Graph Neural Network)
Aggregate: 用 neighbor feature update 下一層的 hidden state(当然包括自己的feature)
Readout: 把所有 nodes 的 feature 集合起來代表整個 graph

NN4G (Neural Networks for Graph)

输入:
笔记:ML-LHY-10 补充: GNN(Graph Neural Network)

以求顶点v3为例,转成hidden layer,首先有个w
笔记:ML-LHY-10 补充: GNN(Graph Neural Network)
然后做Aggregate:
笔记:ML-LHY-10 补充: GNN(Graph Neural Network)
注意:还要加原本的x

笔记:ML-LHY-10 补充: GNN(Graph Neural Network)
Readout
笔记:ML-LHY-10 补充: GNN(Graph Neural Network)
每层的节点加起来(求均值?),然后每层加起来

DCNN (Diffusion-Convolution Neural Network )

DCNN原理类似图像金字塔,叠加不同视野尺度,这里是叠加不同距离的邻居,个人理解

h30=w30MEAN(d(3,)=1)h_{3}^{0} \quad=w_{3}^{0} M E A N(d(3, \cdot)=1)笔记:ML-LHY-10 补充: GNN(Graph Neural Network)
h31=w31MEAN(d(3,)=2)h_{3}^{1}=w_{3}^{1} M E A N(d(3, \cdot)=2)
笔记:ML-LHY-10 补充: GNN(Graph Neural Network)
节点的特征表示:
笔记:ML-LHY-10 补充: GNN(Graph Neural Network)
类似的还有DGC (Diffusion Graph Convolution),是直接加起来就结束了
笔记:ML-LHY-10 补充: GNN(Graph Neural Network)

MoNET (Mixture Model Networks)

节点之间相加是可以加权重的,每个邻居的重要性是不一样。
比如:h31=w(u^3,0)×h00+w(u^3,2)×h20+w(u^3,2)×h40h_{3}^{1}=w\left(\hat{u}_{3,0}\right) \times h_{0}^{0}+w\left(\hat{u}_{3,2}\right) \times h_{2}^{0}+w\left(\hat{u}_{3,2}\right) \times h_{4}^{0}

GAT (Graph Attention Networks)

类似MoNET,但是这里权重也是学到的:
笔记:ML-LHY-10 补充: GNN(Graph Neural Network)

GIN (Graph Isomorphism Network)

结论:
hv(k)=MLP(k)((1+ϵ(k))hv(k1)+uN(v)hu(k1))h_{v}^{(k)}={\operatorname{MLP}^{(k)}}\left(\left(1+\epsilon^{(k)}\right) \cdot h_{v}^{(k-1)}+\sum_{u \in \mathcal{N}(v)} \mid h_{u}^{(k-1)}\right)

uN(v)\sum_{u \in \mathcal{N}(v)}说明节点直接应该相加,而不是均值或者求最大。因为:
笔记:ML-LHY-10 补充: GNN(Graph Neural Network)

相关文章:

  • 2021-06-06
  • 2021-06-03
  • 2022-01-13
  • 2021-04-20
  • 2021-09-19
  • 2021-11-11
  • 2021-12-14
  • 2021-07-07
猜你喜欢
  • 2022-01-05
  • 2021-12-26
  • 2021-10-24
  • 2021-12-19
  • 2021-04-18
  • 2021-11-01
  • 2021-11-17
相关资源
相似解决方案