图神经网络基础知识

图神经网络基础知识

  • 表示学习
    • 独热向量
  • GCN的性质
    • GCN和CNN的联系
    • GCN的问题——过平滑
  • GNN的变体与框架
    • GraphSAGE
    • GAT
    • R-GCN
    • GNN的通用框架
      • MPNN
      • NLNN
  • 图分类
    • 基于层次化池化的图分类
  • 图神经网络的应用
    • 图神经骨干网络ViG细节解读

表示学习

如果有一类方法可以自动地从数据中去学习“有用”的特征,并可以直接用于后续的具体任务,这类方法统称为表示学习。

独热向量

独热向量非常简单,只需要列出所有可能的值就可以得到,不需要学习过程。但是它的缺点也是非常明显的,它假设所有独享都是互相独立的。在向量空间中,所有对象的向量都是互相正交的,那么它们两两之间的相似度为0. 此外,独热向量的维度可能会非常高并且非常稀疏,直接使用的话也非常困难。

GCN的性质

GCN和CNN的联系

图神经网络基础知识_第1张图片

  • 图像是一种特殊的图数据
    CNN中的卷积计算相较于GCN中的卷积计算,最大的区别是没有显式地表达出邻接矩阵,但是进行实际计算的时候,我们依然需要考虑数据之间的结构关系。如果我们将图像中的每个像素视作一个节点,那么在常见的比如3x3大小的卷积核的作用下,可以将中心节点附近3x3的栅格内的像素等价为自己的邻居。(可以修改DCN的方式,利用图卷积去更新节点?
  • 从网络连接方式来看,二者都是局部连接
  • 二者卷积核的权重是处处共享的
  • 从模型的层面来看,感受域随着卷积层的增加而变大

GCN的问题——过平滑

GCN模型无法像视觉任务中的CNN模型一样堆叠很深,一旦使用多层GCN进行学习,相关的任务效果就会急剧下降。现在常使用deepgcn.

在使用多层GCN之后,节点的区分性变得越来越差,节点的表示向量趋于一致,这使得相应的学习任务变得更加困难。我们将这个现象称为多层GCN的过平滑问题。

GNN的变体与框架

GraphSAGE

从两个方面对GCN做了改动,一方面是通过采样邻居的策略将GCN由全图的训练方式改造成以节点为中心的小批量训练方式,这使得大规模图数据的分布式训练成为可能;另一方面是该算法对聚合邻居的操作进行了扩展,提出了替换GCN操作的几种新方式。

GAT

图注意力网络(Graph Attention Networks, GAT),它通过注意力机制来对邻居节点做聚合操作,实现了对不同邻居权重的自适应分配,从而大大提高了图神经网络模型的表达能力。

R-GCN

之前介绍的所有GNN的变体模型中,都没有显式地考虑节点之间关系的不同,相较于同构图,现实生活中的图数据往往是异构的,即图里面存在不止一种类型的关系。
R-GCN基于GCN的聚合邻居的操作,又增加了一个聚合关系的维度,使得节点的聚合操作变成了一个双重聚合的过程,其核心公式如下:
图神经网络基础知识_第2张图片

GNN的通用框架

三种通用框架:消息传播神经网络(Message Passing Neural Network, MPNN)、非局部神经网络(Non-Local Neural Network, NLNN)、图网络(Graph Network, GN)。

MPNN

其基本思路为:节点的表示向量都是通过消息函数M(Message)和更新函数U(Update)进行K轮消息传播机制的迭代后得到的,消息传播的过程如下:
m i ( k + 1 ) = ∑ v j ∈ N ( v i ) M ( k ) ( h i ( k ) , h j ( k ) , e i j ) m_i^{(k+1)}=\sum_{v_j\in{N(v_i)}}M^{(k)}(h_i^{(k)},h_j^{(k)},e_{ij}) mi(k+1)=vjN(vi)M(k)(hi(k),hj(k),eij)
h i ( k + 1 ) = U ( k ) ( h i ( k ) , m i ( k + 1 ) ) h_i^{(k+1)}=U^{(k)}(h_i^{(k)},m_i^{(k+1)}) hi(k+1)=U(k)(hi(k),mi(k+1))
其中 e i j e_{ij} eij表示边 < v i , v j > <vi,vj>上的特征向量,k表示第k次消息传播,在实际编程中,一般和模型中的层的概念等价。
图神经网络基础知识_第3张图片

NLNN

非局部神经网络(NLNN)是对注意力机制的一般化总结,上文介绍的GAT就可以看作是它的一个特例。NLNN通过non-local操作将任意位置的输出响应计算为所有位置特征的加权和。位置可以是图像中的空间坐标,也可以是序列数据中的时间坐标。

图分类

基于层次化池化的图分类

  • 基于图坍缩的池化机制:图坍缩是将图划分成不同的子图,然后将子图视为超级节点,从而形成一个坍缩的图。这类方法正是借用这种方式实现了对图全局信息的层次化学习。
  • 基于topk的池化机制:对图中每个节点学习出一个分数,基于这个分数的排序丢弃一些低分数的节点,这类方法借鉴了CNN中最大池化操作的思路:将更重要的信息筛选出来。所不同的是,图数据中难以实现局部滑窗操作,因此需要依据分数进行筛选。
  • 基于边收缩的池化机制:边收缩是指并行地将图中的边移除,并将被移除边的两个节点合并,同时保持被移除节点的连接关系,该思路是一种通过归并操作来逐步学习图的全局信息的方法。

图神经网络的应用

图神经骨干网络ViG细节解读

图神经网络基础知识_第4张图片
首先按照VIT转换成patch,在图卷积部分,一个节点对应9个邻近节点。邻近节点按照knn分配,其实就是将特征归一化到二维,计算特征的相似度。用topk选取前9个作为邻近值。

你可能感兴趣的:(深度学习,神经网络,深度学习,cnn)