图卷积神经网络GCN与图神经网络GNN

目录

1、为什么要有GCN?

2、GCN的核心公式

1、未加入自身影响

2、加入自身影响

3、总结

1、通过GCN可转变为低维、连续和稠密

2、充分利用节点属性

3、算法的时间复杂度

4、图神经网络(GNN)优点

5、GCN的类别

6、GCN与GNN的区别

7、GNN与GAN的不同点

8、GCN矩阵公式推理代码


1、为什么要有GCN?

图的结构一般来说是十分不规则的,可以认为是无限维的一种数据,所以它没有平移不变性。而传统的CNN、RNN是针对有限的,有平移不变性的,然而,每一个节点的周围结构可能都是独一无二的,这种结构的数据,就让传统的CNN、RNN瞬间失效。所以很多学者从上个世纪就开始研究怎么处理这类数据了。这里涌现出了很多方法,例如GNN、DeepWalk、node2vec等等,GCN只是其中一种。

GCN(图卷积神经网络),实际上跟CNN的作用一样,就是一个特征提取器,只不过它的对象是图数据。GCN精妙地设计了一种从图数据中提取特征的方法,从而让我们可以使用这些特征去对图数据进行节点分类(node classification)、图分类(graph classification)、边预测(link prediction,还可以顺便得到图的嵌入表示(graph embedding

详细可参考:图卷积神经网络GCN_哔哩哔哩_bilibili

2、GCN的核心公式

1、未加入自身影响

如上图所示,从右向左分别为0,1,2层,以C为例,C点连接A、B、E、F四个点,对该四个点进行逐元素相加求平均值,上图中的N(v)是个数,此例中就等于4,W为权重,绿色的为激活函数,整体是一个递推式,由k推k+1。

其中求平均的目的是,让其更合理些,如下图,左边的连接少权重就会变高,右边的连接多了分母变大对应的权重就会变低(在空域中)。

     将上一步的核心公式转换为矩阵形式,得下图,A为邻接矩阵,D为对角矩阵,紧接着两边分别乘D的负二分之一,是为了进行归一化,确保特征值最大为1。

总而言之,变为递推式。

2、加入自身影响

       下图为加入自身影响的图,就是该结点进行一个自我的闭环。

       对应的邻接矩阵相当于是对原来的A矩阵加上一个单位矩阵I,如下图所示。

       与此对应的递推式可更新为如下所示,其中上面的相当于是下面的综合。

       可分开对应的权重也是可以不同的,下图中的B表示自我更新的权重。

3、总结

1、通过GCN可转变为低维、连续和稠密

       GCN既可以进行直推式学习也可以进行归纳式学习,而传统的比如基于随机游走的方法、基于矩阵分解的方法、标签传播的只能进行直推式,但是直推式的缺点显而易见,直推式无法泛化到新结点,需要重新采样随机游走序列,优化更新所有节点的嵌入向量。然而归纳式学习可以泛化到新节点,也可进行迁移式学习,如GAT、GIN等图神经网络方法(通过计算图的范式,得到结构上的相似,比如,地理上的远隔)。

2、充分利用节点属性

        每个结点分别构建自己的计算图,可以充分利用点的属性、标签类别等信息,可进行参数共享,如下图所示。然而如DeepWalk、Node2Vec、LINE,是没有节点属性特征标注的。

3、算法的时间复杂度

算法时间复杂度随着规模的增大是线性增加的,如上图所示。

4、图神经网络(GNN)优点

深度学习拟合学习能力强,表示学习得到的嵌入向量质量高

站在深度学习巨人肩膀上

归纳式学习能力Inductive Learning:泛化到新节点、新图

参数量少、所有计算图共享神经网络

利用节点属性特征

利用节点标注类别

区分节点结构功能角色(桥接、中枢、外围边缘)

只需寥寥几层,就可以让任意两个节点相互影响

5、GCN的类别

  1. 原始GCN:最早由Kipf和Welling在2017年提出的GCN是最基本的形式,它使用邻居节点的平均值(上述描述公式即为原始GCN)作为卷积操作的权重,通过多层的卷积操作来学习节点的表示。

  2. 多尺度GCN:为了处理不同尺度的图结构,一些研究工作引入了多尺度GCN。这些模型通过在不同的图层上应用不同大小的卷积核来捕捉不同范围的邻居节点信息,以更好地适应图中的结构变化。

  3. 空间GCN:空间GCN(Spatial GCN)是一种在图像领域中应用的GCN变体。它以图像的空间结构作为图的拓扑结构,通过GCN进行图像的卷积操作,以学习图像的表示。空间GCN在图像分割、目标检测等任务中取得了良好的效果。

  4. 时空GCN:时空GCN(Spatio-Temporal GCN)是一种应用于时空数据的GCN变体。它考虑了图数据中节点的时序关系和空间关系,通过GCN在时空维度上进行信息传递和特征学习。这种模型广泛应用于交通预测、行为识别等领域。

  5. 注意力机制GCN:注意力机制GCN(Graph Attention Networks,GAT)引入了注意力机制来动态地学习不同节点之间的重要性权重。这些模型通过自适应地分配注意力权重,使得节点在信息传递中能够更加关注重要的邻居节点。

6、GCN与GNN的区别

1、GNN是一个更广泛的概念,包括多种图神经网络模型,如GCN、GraphSAGE、GAT(Graph Attention Networks)等。GNN是一个整体的框架,而GCN是GNN中的一种具体实现。GCN是GNN中最早提出的模型之一,它通过局部邻居节点的信息聚合来学习节点表示。

2、信息传递方式:在GNN中,节点的表示是通过信息传递和聚合来学习的。GCN使用一种基于邻居节点的卷积操作,将节点的特征与邻居节点的特征进行卷积运算,以更新节点的表示。其他的GNN模型可能采用不同的信息传递方式,如GraphSAGE使用邻居节点的采样和聚合、GAT使用注意力机制等。

3、卷积操作的定义:GCN中的卷积操作是基于图拉普拉斯算子的谱卷积定义的,它利用节点间的连接关系来进行特征传递。这种卷积操作在图领域中非常经典,可以看作是将节点的特征与邻居节点的特征进行线性组合。而其他的GNN模型可能采用不同的卷积定义,如GraphSAGE中的平均池化、GAT中的自适应注意力权重等。

7、GNN与GAN的不同点

1、任务类型:GNN主要用于图数据的表示学习和图分析任务,旨在学习节点或图的表示以及节点之间的关系。GNN可以用于节点分类、图分类、链接预测、图生成等任务。而GAN主要用于生成模型,生成与原始数据相似的新样本

2、学习目标:GNN的学习目标是学习节点或图的表示,以便于后续的节点分类、图分类等任务。GNN通过信息传递和聚合操作来更新节点表示,并通过多层的卷积操作来捕捉局部和全局的图结构信息。GAN的学习目标是通过生成器网络生成逼真的样本,同时通过判别器网络对生成的样本与真实样本进行区分。

3、网络结构:GNN通常由多个图卷积层组成,每个图卷积层通过邻居节点的信息聚合来更新节点表示。GNN的网络结构主要包括节点表示学习和信息传递层。GAN由生成器网络和判别器网络组成。生成器网络生成与真实样本相似的样本,判别器网络评估生成样本的真实性。

4、数据类型:GNN适用于图结构化数据,如社交网络、知识图谱、分子结构等。它可以处理节点特征和节点之间的连接关系。GAN适用于多种数据类型,如图像、文本、音频等

5、应用领域:GNN广泛应用于社交网络分析、推荐系统、生物信息学等领域,以及图像和视频领域中的结构化数据分析。GAN主要应用于图像生成、图像修复、图像转换等领域,以及自然语言处理中的文本生成等任务。

8、GCN矩阵公式推理代码

import numpy as np
from scipy.linalg import fractional_matrix_power

A=np.mat('0,1,1,1,0,0;1,0,1,0,0,0;1,1,0,0,1,1;1,0,0,0,0,0;0,0,1,0,0,1;0,0,1,0,1,0')
print(A)

D=np.mat('3,0,0,0,0,0;0,2,0,0,0,0;0,0,4,0,0,0;0,0,0,1,0,0;0,0,0,0,2,0;0,0,0,0,0,2')
print(D)
# print(D**(-1))
D_half=fractional_matrix_power(D,0.5)
# print(D_half)
D_half_neg=fractional_matrix_power(D,-0.5)
# print(D_half_neg)

A_row=np.matmul(D**(-1),A)
# print(A_row)
Eigen_values,Eigen_vectors=np.linalg.eig(A_row)#计算特征值
# print(Eigen_values)

A_col=np.matmul(A,D**(-1))
# print(A_col)
Eigen_values,Eigen_vectors=np.linalg.eig(A_col)
print(Eigen_values)

A_naive=D**(-1) @ A @ D**(-1)
print(A_naive)
Eigen_values,Eigen_vectors=np.linalg.eig(A_naive)
print(Eigen_values)

A_sym=D_half_neg @ A @ D_half_neg  #保证了特征值的归一化  最大特征值始终为1
print(A_sym)
V,D=np.linalg.eig(A_sym)
print(V)

猜你喜欢

转载自blog.csdn.net/zhu_xian_gang/article/details/133981654
今日推荐