作为图神经网络的学习基础,谱图理论在图神经网络的基础学习中显得尤为重要,所以准备整理下学习路径。本节的学习基础是之前【理解矩阵系列】和【理解特征值和特征向量】文章。
这里再谈一下为什么要学习谱图理论。尽管我们经常看到的图神经网络的表达式为 D 1 / 2 A D 1 / 2 H W D^{1/2}AD^{1/2}HW D1/2AD1/2HW,这是一种空域的形式,但是在查阅图神经网络相关资料或者阅读 K p i f Kpif Kpif图神经网络原论文的时候总是绕不开谱域图神经网络这个槛。这是因为图卷积神经网络的核心为卷积操作,而在无规则的图数据结构中,卷积核的定义是十分困难的。因此需要从频谱域(Spectral Domain)上重新定义这样的卷积操作再通过卷积定理转换回空间域上。为了在频谱域和空间域中转换,借助了傅里叶公式,并且定义了图上傅里叶变换(从空间域变换到频谱域)和图上傅里叶逆变换(从频谱域回到空间域)的变换公式。 本节所讲的内容就是图如何在频谱上表示的,即谱图理论!
内容为自己的学习总结,其中多有借鉴他人的地方,最后一并给出链接。
简单来讲谱图理论研究的是邻接矩阵的性质。严谨来讲谱图理论主要研究的是图的拉普拉斯(Lapalacian)矩阵的特征值和所对应的特征向量对于图拓扑性质的影响,是对图空间拓扑的数学描述。
从矩阵变换的角度看,一个向量 x x x乘以矩阵 A A A,即向量 x x x在矩阵 A A A给定的方式下进行了运动(变换)。那么这种运动的方式为,在矩阵 A A A的特征向量为基的坐标系中,按照矩阵 A A A特征值的大小进行了缩放。
现在我们考虑一个问题,如果一个向量持续地去乘以矩阵 A A A会发生什么?我们发现,经过不断的运动变换后的向量会收敛到特征值最大的特征向量上。
如果不理解的话可以从计算的角度理解:假设现在有一个 n n n维向量 v = [ v 1 , v 2 , . . . . . . , v 3 ] T v=[v_1, v_2,......,v_3]^T v=[v1,v2,......,v3]T,我们不停的乘以矩阵 A A A。由于向量 v v v能够用矩阵 A A A的一组特征值 λ \lambda λ和特征向量 u u u表示(因为特征向量是相互正交的基,不理解的可以看前言中给出的阅读文章)。所以,
v = α 1 u 1 + α 2 u 2 + . . . . . . + α n u n v = \alpha_1u_1+\alpha_2u_2+......+\alpha_nu_n v=α1u1+α2u2+......+αnun
由于特征向量的稳定性,不断的乘以矩阵 A A A之后,我们发现向量 v v v的变化是这样的:
W v = μ 1 α 1 u 1 + μ 2 α 2 u 2 + ⋯ + μ n α n u n W 2 v = μ 1 2 α 1 u 1 + μ 2 2 α 2 u 2 + ⋯ + μ n 2 α n u n W k v = μ 1 k α 1 u 1 + μ 2 k α 2 u 2 + ⋯ + μ n k α n u n \begin{aligned} W v &=\mu_{1} \alpha_{1} u_{1}+\mu_{2} \alpha_{2} u_{2}+\cdots+\mu_{n} \alpha_{n} u_{n} \\ W^{2} v &=\mu_{1}^{2} \alpha_{1} u_{1}+\mu_{2}^{2} \alpha_{2} u_{2}+\cdots+\mu_{n}^{2} \alpha_{n} u_{n} \\ W^{k} v &=\mu_{1}^{k} \alpha_{1} u_{1}+\mu_{2}^{k} \alpha_{2} u_{2}+\cdots+\mu_{n}^{k} \alpha_{n} u_{n} \end{aligned} WvW2vWkv=μ1α1u1+μ2α2u2+⋯+μnαnun=μ12α1u1+μ22α2u2+⋯+μn2αnun=μ1kα1u1+μ2kα2u2+⋯+μnkαnun
随着 k k k趋于无穷,特征值最大的特征向量将会主宰其余的特征向量,从而 v v v与特征值最大的 u u u变成同一个方向!此外,通过这样的变换,可以观察到 v v v的运动过程其实是由各个不同大小的特征值与特征向量控制的。
重点来了,前面讲了这么多又是特征值又是特征向量又是运动等等,这跟图卷积有什么关系?我们之前提到过谱图理论研究的是邻接矩阵,而通过前面的例子我们有点朦朦胧胧的感觉,一个向量 v v v不断的乘以一个矩阵 A A A,怎么这么像图神经网络的逐层更新公式 D 1 / 2 A D 1 / 2 H W D^{1/2}AD^{1/2}HW D1/2AD1/2HW !没错,我们现在研究的对象不是一个矩阵 A A A,而是图的邻接矩阵 A A A,这样一来知识是不是就串起来了,再深入一点这种连乘然后收敛的性质是不是跟 P a g e R a n k PageRank PageRank算法很像(此处的内容会在后续文章中慢慢解释,会在此处给出文章链接)。
回到正题,我们现在的研究对象是图的邻接矩阵。此时,这样的矩阵描述了一种在图上的类似于热力扩散的运动。同样的,该矩阵的特征值刻画了一种运动轨迹,如下图所示(详情见参考文献【5】)。
我们再看一下拉普拉斯矩阵,拉普拉斯矩阵跟谱图理论有什么关系?在以往看到的资料中,凡是涉及到图神经网络的推导,或者谱图卷积总会讲到拉普拉斯矩阵还有它的性质等等。但是并没有讲清楚,为什么需要拉普拉斯矩阵,这就令初学的人很是费解。实际上拉普拉斯矩阵是连接谱域跟空域的桥梁。由于拉普拉斯矩阵是对称矩阵,可以进行特征分解(谱分解),谱分解对于图从空间域到频谱域的变换至关重要,因为傅里叶变换(Fourier Transform)需要利用Laplacian矩阵的特征值和特征向量,通过变换,从拓扑结构的图(spatial domain)到拉普拉斯矩阵再到谱图(spectral domain)这条链接就形成了。
下面就先来介绍拉普拉斯矩阵。
对于无向图 G = ( V , E ) G=(V, E) G=(V,E),其Laplacian矩阵定义为 L = D − A L=D-A L=D−A,其中 D D D是节点的度矩阵(只在对角线上有元素), A A A是图的邻接矩阵。拉普拉斯矩阵还有几种扩展定义:
矩阵的特征分解,对角化,谱分解都是同一个概念,是指将矩阵分解为由其特征值和特征向量表示的矩阵乘积的方法。只有含有n个线性无关的特征向量的n维方阵才可以进行特征分解。
拉普拉斯矩阵是半正定矩阵,有如下三个性质:
是实对称矩阵,有n个线性无关的特征向量
这些特征向量都可以正交单位化而得到一组正交且模为 1 的向量
所有的特征值非负
性质1告诉我们拉普拉斯矩阵一定能进行特征分解(谱分解)
L = U ( λ 1 ⋱ λ n ) U − 1 L=U\left(\begin{array}{ccc} \lambda_{1} & & \\ & \ddots & \\ & & \lambda_{n} \end{array}\right) U^{-1} L=U⎝ ⎛λ1⋱λn⎠ ⎞U−1
由性质2可知, U U U是正交矩阵,即 U U T = I UU^{T}=I UUT=I,故 U − 1 = U T U^{-1}=U^{T} U−1=UT,所以特征分解又可以写成:
L = U ( λ 1 ⋱ λ n ) U T L=U\left(\begin{array}{ccc} \lambda_{1} & & \\ & \ddots & \\ & & \lambda_{n} \end{array}\right) U^{T} L=U⎝ ⎛λ1⋱λn⎠ ⎞UT
性质补充(重要):【图机器学习入门】拉普拉斯算子与拉普拉斯矩阵的关系
矩阵的谱分解
[1]谱图理论(spectral graph theory)
[2]如何理解矩阵特征值和特征向量?
[3]GNN 教程:漫谈谱图理论和GCN的起源
[4]如何理解 Graph Convolutional Network(GCN)?
[5]从物理学角度理解GCN
[6]图的谱图理论