Graph Neural Network

图神经网络是一类神经网络的统称,用于处理可以用图代表的数据。

计算机视觉中的CNN可以被看成GNN应用于网格中的像素数据;NLP中的Transformer可以被看成GNN应用到完全图中,节点是句子中的单词

GNN中的关键是成对消息传递,即图节点通过和邻居交换信息迭代更新自己的表示,GNN有几种架构,GNN/GCN/GAT,应用领域包括社交网络、引用网络、分子生物学、化学、物理和NP-hard组合优化问题

开源GNN库包括PyTorch Geometric(PyTorch), TensorFlow GNN(TensorFlow), and jraph(Google JAX).

架构包括:

  • 置换等变层:将同一图的表示映射为更新的表示。通过节点之间的成对消息传递实现,每一个节点通过合并从直接邻居收到的消息更新自身的表示。这样每加一层消息传递层,GNN的接收域增加一跳。即每个节点可以从多层邻居接收消息,层数越多消息传递层越多。
  • 局部池化层:通过下采样让图粗化(多个节点合并成一个节点,对应的上采样就是放大图像,采用内插值等)。可以增加GNN的接收域,和CNN的池化类似。方法包括KNN池化、top-k池化、自注意力池化。
  • 全局池化层:也叫读出层,提供整个图的固定大小的表示。全局池化必须排列组合不可变。方法包括元素和、平均和最大

参考

https://en.wikipedia.org/wiki/Graph_neural_network

https://blog.csdn.net/caoyuan666/article/details/111871425