GNN学习—卷积图神经网络(谱域)

第3篇—卷积图神经网络-Spectral

  • 引言
  • 背景知识
    • 谱域图卷积实现思路
    • 数学知识
  • 模型介绍
    • SCNN
    • ChebNet
    • GCN

上一篇介绍了卷积图神经网络的空间域模型,本篇总结谱域的方法及模型。

引言

经典卷积网络处理的对象是欧式空间中的数据,他们有着序列有序性和维数一致性的特点,即该类网络只能处理固定输入维度的数据并且局部输入数据必须有序,语音、图像、视频等(规则结构)数据满足以上要求,但是并不适用于图结构数据(非欧空间数据)。
因为图结构的数据的特点是序列无序性和维数可变性。其中序列无序性是指:下图中红色节点的邻居节点有两个,而我们不知道它们谁应该排在前,谁应该排在后。维数可变性是指:下图中红色节点和蓝色节点的邻居节点个数是可以不相同的。因此我们无法将3x3的卷积核应用到图数据上,这就是图卷积网络需要解决的问题。
GNN学习—卷积图神经网络(谱域)_第1张图片

那么应该如何将卷积操作扩展到图结构数据中?
ConvGNNs分成两类:基于空间的方法和基于频谱的方法。基于空间的方法(Spatial based)继承了递归神经网络的思想,通过信息传播来定义图的卷积,总结在上一篇中。而基于频谱的方法(Spectral-based)是通过从图信号处理的角度引入滤波器来定义图卷积,其中图卷积运算被解释为从图信号中去除噪声。它的实现思路是根据图谱理论卷积定理,将数据由空域转换到谱域做处理。下面具体介绍一下图谱理论和卷积定理,以及为什么要将数据由空域转换到谱域,和如何转换。

背景知识

谱域图卷积实现思路

  1. 什么是卷积?
    根据卷积定理,两信号在空域(或时域)卷积的傅里叶变换等于这俩个信号在频域中的傅里叶变换的乘积:
    在这里插入图片描述也可以通过反变换的形式来表达:
    在这里插入图片描述具体来说,f1(t) 定义为空域输入信号,f2(t)定义为空域卷积核,那么卷积操作就可以这样定义:首先将空域上的信号f1(t)转换到频域信号 F1(w),f2(t)转换到频域F2(w),然后将频域信号相乘,再将相乘后的结果通过傅里叶反变换转回空域,这个就是谱域图卷积的实现思路(将空域转换到频域上处理,处理完再返回)。
    GNN学习—卷积图神经网络(谱域)_第2张图片
    那么为什么要这样转换呢?为什么要将空域上的信号转换到频域上处理,最后再转回到空域呢?回想一下前面所说的经典的卷积操作具有序列有序性和维数不变性的限制,使得经典卷积难以处理图数据,也就是说对于一个3x3的卷积核,它的形状是固定的,它的感受野的中心节点必须要有固定的邻域大小才能使用卷积核,但是图上的节点的领域节点是不确定的,此外图上节点的领域节点也是没有顺序的,这就不能直接在空域使用经典的卷积。但是当我们把数据从空域转换到频域,在频域处理数据时,只需要将每个频域的分量放大或者缩小就可以了,不需要考虑信号在空域上存在的问题,这个就是谱域图卷积的巧妙之处。
    所以卷积操作的意义是将空域信号转换到频域,然后相乘,将相乘的结果再转换到空域。 那么如何转换呢?傅里叶变换给出了具体的转换方法。

  2. 如何定义图上的傅里叶变换?
    经典傅里叶变换:
    GNN学习—卷积图神经网络(谱域)_第3张图片
    基于图谱理论,可以使用图傅里叶变换。
    在这里插入图片描述
    下面给出这样定义图上傅里叶变换的数学理论推导。

数学知识

  1. 拉普拉斯矩阵
  • 定义:拉普拉斯矩阵(L)是度矩阵(D)减去邻接矩阵(W),即L = D - W。
    GNN学习—卷积图神经网络(谱域)_第4张图片

D为度矩阵,它对角线上的值是从 i 节点出发的所有边的权重之和(nxn的方阵,是对角矩阵)。

  • 性质:拉普拉斯矩阵是对称半正定矩阵,因此该矩阵的特征值一定非负,一定有n个线性无关的特征向量,它们是n维空间中的一组标准正交基,组成正交矩阵。
  • 谱分解,又称特征分解,是将矩阵分解为其特征值和特征向量表示的矩阵之积的方法。
    在这里插入图片描述
    在这里插入图片描述
    但是为什么拉普拉斯矩阵是度矩阵减邻接矩阵,也就是 L = D − W呢?原因是拉普拉斯矩阵是图上的一种拉普拉斯算子,下面接着看什么是拉普拉斯算子。
  • 拉普拉斯算子
    对于n维欧式空间,拉普拉斯算子是一个二阶微分算子,即在各个维度求二阶导数后求和。
    eg:离散情况下欧氏空间的拉普拉斯算子 ,对于两个变量的函数f(x,y) (如图像),
    在这里插入图片描述
    那么两个变量的离散拉普拉斯算子可以写成:
    在这里插入图片描述
    由该公式推导可以看到,欧式空间内,二维的拉普拉斯算子可以理解为中心节点与周围节点的差值,然后求和。下图就是两个变量的离散拉普拉斯矩阵算子的形象解释,也就是说对于某个中心像素(红色)的算子为周围四个像素之和减去4倍的自己。
    GNN学习—卷积图神经网络(谱域)_第5张图片
    类似,在图上的拉普拉斯算子定义:
    在这里插入图片描述
    当有权重时:
    在这里插入图片描述
    可以理解为中心节点依次减去周围节点,乘以权重后,然后求和:
    对于n个节点有:
    在这里插入图片描述
    拉普拉斯矩阵是图上的一种拉普拉斯算子。
  1. 图傅里叶变换(Graph Fourier Transform)
  • 首先给出图上信号的定义:一般表达为一个向量。假设有n个节点,将图上的信号记为:
    在这里插入图片描述
    每一个节点上有一个信号值,节点i上的值为在这里插入图片描述
    下图中蓝色线段代表信号的大小,类似于图像上灰度图像像素,像素越高,画的这个线段越长。
    GNN学习—卷积图神经网络(谱域)_第6张图片

  • 经典傅里叶变换如下
    傅里叶正变换F:求线性组合的系数。
    傅里叶反变换f:一个信号由不同频率的基函数信号叠加而成。
    在这里插入图片描述
    左图为连续空间中的傅里叶变换,右图为离散傅里叶变换。
    经典傅里叶变换其实就是说:一个信号由不同频率的基函数信号叠加而成,例如下图中红色信号是原信号,蓝色信号是不同频率上的基函数信号(余弦或者正弦函数)。则红色原信号可以由不同频率的基函数线性组合而成,蓝色的高度表示基前面的系数,也就是所谓的傅里叶系数,也就是原函数在这个基上的坐标分量。
    GNN学习—卷积图神经网络(谱域)_第7张图片

  • 图傅里叶变换
    对应经典傅里叶变换的思想,对于graph上信号x的傅里叶变换,希望找到一组正交基,通过这组正交基的线性组合来表达x。那么使用拉普拉斯矩阵的特征向量,作为图傅里叶变换的基函数。
    在这里插入图片描述
    则傅里叶逆变换可以将图上的信号可以表示为::
    GNN学习—卷积图神经网络(谱域)_第8张图片
    图傅里叶正变换可以求傅里叶逆变换前面的系数,即每个基函数前面的振幅。
    GNN学习—卷积图神经网络(谱域)_第9张图片
    总结一下:
    GNN学习—卷积图神经网络(谱域)_第10张图片

  1. 图卷积定理
    GNN学习—卷积图神经网络(谱域)_第11张图片
    图上的卷积定义:先对输入信号 x 和卷积核 g 做傅里叶正变换,然后在谱域上做 harmand 乘积,也就是 F ( x ) ⊙ F ( g ) 。最后通过傅里叶反变换 F-1将结果返回到空域。
    如果用矩阵乘法的形式来表达这个公式,去掉harmand乘积。同时,通常并不关心空间域上的滤波器信号g是什么样子的,只关心其在频域的情况。令
    在这里插入图片描述
    则公式等价的转换成下式:
    在这里插入图片描述
    所有的谱图卷积都遵循这些定义,唯一的不同就是 滤波器 filter 的选取。

模型介绍

SCNN

论文:Spectral networks and locally connected networks on graphs,
第一代GCN,文中给出了两个模型,分别是基于空间域的和基于谱域的。基于谱域的模型的核心是用对角矩阵来代替谱域的卷积核
作者定义图卷积如下:
在这里插入图片描述
即先对图信号 xk,i乘上VT做傅里叶变换,再乘上卷积核,再乘上 V 做傅里叶逆变换,最后经过激活函数 h 。
下图展示了第k+1层的第j个通道的计算方式:对于上一层(第k层)的每个通道信号傅里叶变换后进行卷积操作,将各通道算出来的值求和,再进行傅里叶逆变换,得到第k+1层该通道的值。
GNN学习—卷积图神经网络(谱域)_第12张图片
缺点:计算拉普拉斯矩阵的特征值分解非常耗时

ChebNet

论文:Convolutional neural networks on graphs with fast localized spectral filtering,
核心:采用切比雪夫多项式近似谱域的filter。
在矩阵状态下, 切比雪夫多项式可以表示为:
在这里插入图片描述

为什么要引入切比雪夫多项式?因为切比雪夫多项式在逼近理论中,可以用于多项式插值,也就是说可以利用切比雪夫多项式来逼近函数。
在这里插入图片描述
则将谱域中的卷积核gtheta,用切比雪夫多项式来进行逼近。
GNN学习—卷积图神经网络(谱域)_第13张图片
采用切比雪夫多项式代替谱域卷积核后,经过公式的推导可以发现,ChebNet不需要对拉普拉斯矩阵做特征分解,这是区别于SCNN的非常明显的一点,它省略了最耗时的步骤。并且在ChebNet里,Bk 是可学习的参数。卷积核只有 k+1个可学习的参数,K远小于n,参数的复杂度大大降低。

GCN

论文:Semi-supervised classification with graph convolutional networks,
GCN可视为对ChebNet的进一步简化:仅考虑1阶切比雪夫多项式,且每个卷积核仅只有一个参数。
在这里插入图片描述
根据切比雪夫多项式:
在这里插入图片描述
化简
GNN学习—卷积图神经网络(谱域)_第14张图片
在这里插入图片描述

你可能感兴趣的:(GNN,神经网络)