目录
roadmap
Tasks、dataset and benchmark
Spatial-based GNN
NN4G(Neural Networks for Graph)
DCNN(Diffusion-Convolution Neural Network)
GraphSage
GAT (Graph Attention Networks)
GIN(Graph Isomorphism Network)
Graph Signal Processing and Spectral-based GNN
边代表两个节点有关系,节点有节点的性质,边有边的性质。
考虑entity本身的feature,也要考虑entity与其他entity之间的关系——GNN
类比CNN,是有一个kernel在滑动做计算,得到feature map(用它的邻居来update feature map),那么如何将方法使用在GNN上呢?
fourier domain\ filter response\ inter fourier transition. (一堆听不懂的名词)
spatial-based目前是主流,spectral比较难。
回顾一下CNN的计算
再来看Sptial-based Convolution
H03, 第3个node,在第0层的特征。如何从H03 update 到H13呢?
当计算H03时,利用邻居来update。
将所有的节点结合起来——Readout,变成代表这个graph的feature。
输入的是5个节点的图——> embedding(h03)——> 隐层节点update。
如何update?将邻居的东西都加起来,再加上原本input的feature x3
readout
每一层先加起来,全部加起来后再经过transform,变成一个feature y。
w13这一层,计算:跟3这个节点,距离是2的节点,全部加起来,都是加的输入层;
w03这一层,计算:跟3这个节点,距离是1的节点,全部加起来,都是加的输入层;
都是加的输入层!!!如果叠k层,就可以看到k nerborhood里的东西;
第一个节点的特征拉出来,
MoNET(Mixture Model Networks)
利用节点的度去衡量边的权重关系,而不仅仅是简单sum;
weight矩阵是根据节点的度计算出的。
对邻居的feature全部sum做mean or max-pooling。利用lstm将邻居的feature喂到lstm里,当隐藏层输出结果当作是output,用output来做update。
邻居不应该有任何顺序可言,lstm有顺序,所以可以随便产生顺序,希望可以学到没有任何顺序可言or忽略顺序的表达。
重点:不仅要做weight sum,weight边的权重自己学习。对邻居做attention。
证明上述理论可行的原因,以及什么情况work。
MLP(邻居+自己)就可以达到很好的效果。
(二)
主要来自:
https://www.bilibili.com/video/BV1G54y1971S?from=search&seid=6765103033419424943
GCN GAT GraphSage是最重要的3个。