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

原文地址:https://www.cnblogs.com/shona/p/13794900.html