Notes | 图神经网络

 

课程链接

 

Motivation

输入是图:

考虑结构和关系信息。

 

 

如何在图结构中做Convolution?

 

 

Spatial-based GNN

 

Aggregate:用neighbor feature update下一层的hidden state

Readout:把所有nodes的feature集合起来代表整个graph

 

 

NN4G (Neural Networks for Graph)

 

 

输出:

 

每一层的结果取平均后再相加。

 

DCNN (Diffusion-Convolution Neural Network)

 

 

d为距离(图中表示的是到节点3的距离)

第 i 层,找到距离为i的节点的特征取mean,再乘上权重。

 

每个节点的表示,由k个这样的层组成:

concat 之后, 乘以权重得到输出。

 

DGC (Diffusion Graph Convolution)

和上一篇类似,得到的输出是直接相加:

 

 

MoNET (Mixture Model Networks)

无脑相加 -> 给一个权重的定义:重新定义距离,用定义的距离做weight,再进行sum 或 mean。

 

GraphSAGE

对邻居feature的处理方式:

mean

max-pooling

LSTM(把邻居节点喂给LSTM,output是hidden state,每次update时,随便sample一个邻居节点的顺序来消除LSTM对顺序的关注)

 

GAT (Graph Attention Networks)

对邻居做attention。

 

节点特征:

 

计算energy(weight):

 

计算attention分数:

 

每个节点的feature = sum{ 所有邻居节点 * 邻居节点各自的energy(attention weight) }

 

GIN (Graph Isomorphism Network)

自己的feature + sum(邻居features)

 

用sum,不用mean或max pooling,区别不同形态的图:

 

资源

GNN库: Deep Graph Library dgl.ai

posted @ 2020-10-10 19:44  山竹小果  阅读(391)  评论(0编辑  收藏  举报