Skip to content

GNN谱图理论简述

XJTU_zsy

从代数角度分析GNN的工作原理

谱图理论简述

从代数角度分析GNN的工作原理

1.拉普拉斯算子简述

简介

我们知道拉普拉斯算子是一个二阶微分算子,$\Delta f = \nabla ^2 f = \Delta ·\Delta f $ 我们通常在计算函数的二阶导数时用到它。

定义上看:它反映的是函数变化率的变化率。

傅里叶级数简述

可以由Δf=n2f这个特征方程推出一组正余弦函数F={1,cos(nx),sin(nx)},这组函数F构成函数f(x)L2上的一组正交基,可以对函数f(x)L2进行展开,也就是傅里叶级数展开。函数f的傅里叶级数展开可以理解为函数f在不同基函数下的投影,可以认为是f中的不同n(正余弦的频率系数)大小。

从而可以用ϕ(n)来描述这个函数。

显然,这个ϕ(n)的定义域是离散的。

进一步地,我们找到了一组基底F={1,cos(nx),sin(nx)}来描述一个函数空间f(x)L2,使得我们对f(x)L2的研究可以统一到一组基底上,为我们提供了一个全新的角度。

思想借鉴

1.定义图拉普拉斯算子

G=(X,A),A是邻接矩阵, 用u表示节点,节点的特征信息用x=f(u)表示,X=f(U)

离散拉普拉斯算子

d2f=f(x+1,y)+f(x1,y)+f(x,y+1)+f(x,y1)4f(x,y)

推广到图:

单个节点的拉普拉斯算子:

Δf(uj)=ui neighbor(uj)f(uj)f(ui)=degree(v)×f(v)ui neighbor(v)f(ui)=kAjk×f(uj)Ajf(U)(1)

则所有节点:

Δf(U)=[Δf(u1) Δf(u2) ...]=[...(kAjk×f(uj)Ajf(U))...]=[...(kAjk×f(uj))...]Af(U)=Df(U)Af(U)=(DA)f(U)(2)

其中D是度对角阵。*表示通常意义的内积。

2.图频域基底

A¯=D12(DA)D12其中D12为了对称归一化,显然A¯是一个实对称矩阵,λx=A¯x可以求出它的|U|个特征向量和对应的非负特征值,这几个特征向量VEC={v1,...}就构成了可以描述这个图的拓扑结构的基底,记VT的列为vi:

A¯=VΛVT(3)

傅里叶变换

在傅里叶级数的基础上,用复数欧拉公式可以较为容易推导出傅里叶变换为:

F(ω)=F(f(t))=+f(t)ejωtdt(4)

就是把上面傅里叶级数的n从整数变到w实数范围以后,将原函数对各个基底作投影。

类似的:

定义图上傅里叶变换

F(ui)=F(f(ui))=Vxi(5)

逆变换

f(ui)=F1(F(ui))=VTVxi(6)

卷积和频域

卷积:单位脉冲函数和原函数卷积为原函数

信号处理:时不变系统中,处理作用于原函数,相当于处理作用于单位脉冲函数后和原函数卷积

卷积和频域:时域卷积等于频域相乘后逆变换。

对图信号处理

冲击函数在图上就是每个节点施加一个constant([1,1,1....])。

H()下图信号X的输出Y,则:

Y=VT((VH0(Λ))(VX)),VH0()H()=VT((H(Λ))(VX))(7)

H(Λ)作切比雪夫展开:

H(Λ)i=0KθiTk(Λ^)Λ^=2ΛλmaxIN(8)

用一阶近似并取得λmax=2(切比雪夫多项式TkTk(x)=θ0+θ1x):

Y(7)(8)=θ0X+θ1VT((ΛIN)(VX))=θ0Xθ1(D12AD12X)θ=θ0=θ1:=θ((D12AD12+IN)X)D12AD12+IN[0,1]:=θ(((D^12A^D^12))X)D12(DA)D12>D^12A^D^12,A^=A+IN,Dii^=jAij^(9)

最后加上激活函数得到了单层GCN:

Y=σ((D^12A^D^12)HW)

直观理解这个公式

聚合邻居节点的信息。

p2

p1

reference

Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering

https://doi.org/10.48550/arXiv.1606.09375

CS224W | Home (stanford.edu)

GNN入门之路: 01.图拉普拉斯矩阵的定义、推导、性质、应用 - 知乎 (zhihu.com)