摘要
上一篇文章介绍了卷积神经网络,一个多维列向量作为卷积神经网络的输入,经过卷积、池化与全连接网络后会对图像等识别工作取得较好结果,而不能处理数据结构中“图”的概念。本文介绍的Spatial-based GNN,受到卷积层计算的启发,考虑图的节点与边等结构,设计出符合图结构的Model。文章介绍了五种Spatial-based GNN及其有效性的判别结论。
1 引入图神经网络
Graph如何输入进神经网络里面?如何输入图的结构、节点和边的feature? 如果Graph有20k个节点如何处理? 如果Training Set中数据量很大,不能将全部数据Labeled,如何训练model? GNN如何捕捉邻居关系来训练model?
如何将图的节点嵌入到feature space中做卷积? 方法一:借鉴CNN,用邻居更新Feature Map,Spatial-based convolution方法。 Aggregate:用邻居的特征更新Feature Map、也就是更新下一层的hidden state,示意图如图1所示。 Readout:把所有节点的特征集合起来代表整个graph
方法二:使用Signal Processing理论,经过一系列步骤得到经过Filter的输出,Spectral-based convolution方法
2 Spatial-based GNN
NN4G(Neural Networks for Graph)
NN4G这个model是采用方法一Spatial-based convolution,Model的Input layer输入节点、边和特征,Hidden layer 0使用特征矩阵提取每一个节点特征,这两个步骤的示意图如图2所示。 接下来Aggregate,NN4G把算法设计成将邻居的特征相加、经过一次Transform、再加上原本的Input layer的特征。示意图如图3所示。 最后Readout,叠的各层分别对特征取平均、经过一次Transform、再相加变成一个Feature,代表整个Graph的特征。示意图如图4所示。
DCNN(Diffusion-Convolution Neural Network)
以相同的输入图为例,Hidden layer 0设计成将所有与被计算节点距离为1的节点求平均、再微分,每一个节点做相同的事情,示意图如图5所示。 再叠加的层更新Feature时,所用特征的数据来源于Hidden layer 0,将Hidden layer 1中所有与被计算节点距离为2的节点求平均、再微分,每一个节点做相同的事情,示意图如图6所示。 Output layer的节点特征计算: 图7假设叠了K层,将某个节点在K层矩阵中对应数值取出来,经过一次Transform,即得到节点特征。
DGC(Diffusion Graph Convolution)
在Input layer、Hidden layer与DCNN相同,在Output layer采取相加,而非Transform,如图8所示。
MoNET(Mixture Model Networks)
Aggregate时,被计算节点的邻居之间应该考虑权重。定义节点之间的距离,即每条边都计算
u
x
,
y
u_{x,y}
ux,y?来表示节点x与节点y之间的距离,将距离Transform后作为权重。如图9所示。
GAT(Graph Attention Networks)
不仅要考虑权重,还让权重是机器自己学的。定义目标节点与其邻居的energy,如图10所示。 GAT目前使用很广泛。
GIN(Graph Isomorphism Network)
基于图相对复杂的结构,使用Max和Mean可能会导致失败,有效地更新特征的式子应该为
h
v
(
k
)
=
M
L
P
(
k
)
(
(
1
+
?
(
k
)
)
?
h
v
k
?
1
+
∑
h
u
k
?
1
)
h_v^{(k)}=MLP^{(k)}\big((1+\epsilon^{(k)})\cdot h_v^{k-1}+\sum h_u^{k-1}\big)
hv(k)?=MLP(k)((1+?(k))?hvk?1?+∑huk?1?),求和是较好的处理。
3 总结与展望
本文介绍的Spatial-based GNN,受到卷积层计算的启发,考虑图的节点与边等结构,设计出符合图结构的Model。文章介绍了五种Spatial-based GNN及其有效性的判别结论。接下来将介绍Graph Signal Processing and Spectral-based GNN以及衡量GNN效果的Benchmark。
|