傅里叶变换在图神经网络中通常用于将节点特征从时域(或空间域)转换到频域,以便在频域中对节点特征进行卷积运算。具体来说,可以将图信号视为时间序列信号,将傅里叶变换应用于时间序列信号,从而将节点特征转换为频域信号。这样,在频域中,卷积操作就可以表示为简单的点乘操作。
对于基于拉普拉斯矩阵的谱分解的GNN,如GCN,可以利用傅里叶变换将拉普拉斯矩阵的特征向量表示为频域信号,然后通过频域卷积操作对节点特征进行卷积。具体来说,设 X X X为 n × f n\times f n×f的节点特征矩阵, A A A为 n × n n\times n n×n的邻接矩阵, D D D为 n × n n\times n n×n的度矩阵,则拉普拉斯矩阵 L = D − A L=D-A L=D−A。对 L L L进行特征值分解得到特征值 λ 0 ≤ λ 1 ≤ . . . ≤ λ n − 1 \lambda_0\leq \lambda_1 \leq ... \leq \lambda_{n-1} λ0≤λ1≤...≤λn−1和特征向量 u 0 , u 1 , . . . , u n − 1 u_0,u_1,...,u_{n-1} u0,u1,...,un−1。利用傅里叶变换,可以将特征向量表示为傅里叶基函数 e k ( x ) = 2 n c o s ( π k x n ) e_k(x)=\sqrt{\frac{2}{n}}cos(\frac{\pi k x}{n}) ek(x)=n2cos(nπkx),其中 k = 0 , 1 , 2 , . . . , n − 1 k=0,1,2,...,n-1 k=0,1,2,...,n−1。将特征向量表示为频域信号,即可进行频域卷积操作,从而实现对节点特征的卷积运算。
需要注意的是,在实际应用中,由于计算效率等因素的限制,通常不会使用完整的傅里叶变换和傅里叶逆变换,而是采用基于Chebyshev多项式或Krylov子空间的快速傅里叶变换等方法来进行频域卷积运算,以提高计算效率。
频域卷积操作是图神经网络中一种常用的卷积操作,其基本思想是将节点特征在傅里叶变换后的频域中进行卷积操作。具体来说,设 X X X为 n × f n\times f n×f的节点特征矩阵, A A A为 n × n n\times n n×n的邻接矩阵, D D D为 n × n n\times n n×n的度矩阵,则拉普拉斯矩阵 L = D − A L=D-A L=D−A。对 L L L进行特征值分解得到特征值 λ 0 ≤ λ 1 ≤ . . . ≤ λ n − 1 \lambda_0\leq \lambda_1 \leq ... \leq \lambda_{n-1} λ0≤λ1≤...≤λn−1和特征向量 u 0 , u 1 , . . . , u n − 1 u_0,u_1,...,u_{n-1} u0,u1,...,un−1,则傅里叶变换可以将节点特征矩阵表示为:
X ~ = U T X \tilde{X} = U^T X X~=UTX
其中 U = ( u 0 , u 1 , . . . , u n − 1 ) U=(u_0,u_1,...,u_{n-1}) U=(u0,u1,...,un−1)是拉普拉斯矩阵的特征向量组成的矩阵, X ~ \tilde{X} X~是节点特征矩阵在傅里叶变换后的频域表示。在频域中,卷积操作可以表示为简单的点乘操作,因此可以将节点特征在频域中进行卷积操作,得到新的频域特征表示 Y ~ \tilde{Y} Y~:
Y ~ = Θ X ~ \tilde{Y} = \Theta \tilde{X} Y~=ΘX~
其中 Θ \Theta Θ是在频域中的卷积核,通常是一组可学习的参数。在实际应用中,为了提高计算效率,通常采用一些快速傅里叶变换的方法,如基于Chebyshev多项式的方法或Krylov子空间的方法来进行频域卷积操作。
最后,通过傅里叶逆变换,可以将频域特征表示 Y ~ \tilde{Y} Y~转换回空间域中的节点特征表示 Y Y Y:
Y = U Y ~ Y = U \tilde{Y} Y=UY~
得到节点特征的新表示 Y Y Y。这种基于傅里叶变换的频域卷积操作被广泛应用于图神经网络中,如基于拉普拉斯矩阵的谱卷积网络(如GCN)、GraphSAGE等。