此处各种概念来自《Linear Algebra Done Right》
R 3 R^3 R3中的一组基:
e 1 = [ 1 , 0 , 0 ] T , e 2 = [ 0 , 1 , 0 ] T , e 3 = [ 0 , 0 , 1 ] T e_1 = [1, 0, 0]^T, e_2 = [0, 1, 0]^T, e_3 = [0, 0, 1]^T e1=[1,0,0]T,e2=[0,1,0]T,e3=[0,0,1]T
对任意一个向量,比如 [ 2 , 3 , 4 ] T [2, 3, 4]^T [2,3,4]T,我们可以写成:
2 e 1 + 3 e 2 + 4 e 3 2e_1 + 3e_2 + 4e_3 2e1+3e2+4e3
两个向量 v 1 = [ x 1 , y 1 , z 1 ] T , v 2 = [ x 2 , y 2 , z 2 ] T v_1 = [x_1, y_1, z_1]^T, v_2 = [x_2, y_2, z_2]^T v1=[x1,y1,z1]T,v2=[x2,y2,z2]T的内积定义为:
< v 1 , v 2 > = x 1 ∗ x 2 + y 1 ∗ y 2 + z 1 ∗ z 2
为什么内积需要这么定义?具有什么物理意义?实际上出发点很有可能是为了“投影”服务,现在假设需要寻找 v 1 v_1 v1在 v 2 v_2 v2上的投影,很自然的,首先需要在 v 2 v_2 v2上找到一个点,其与 v 1 v_1 v1终点的距离比 v 2 v_2 v2上其他所有点与 v 1 v_1 v1终点的距离都要短,该过程导出一个结论, v 1 v_1 v1在 v 2 v_2 v2上的投影为:
< v 1 , v 2 > ⋅ v 2
回顾 R 3 R^3 R3中的基 e 1 , e 2 , e 3 e_1, e_2, e_3 e1,e2,e3,任意向量可以表示成在不同基上的投影叠加:
v = < v , e 1 > ⋅ e 1 + < v , e 2 > ⋅ e 2 + < v , e 3 > ⋅ e 3 v =
对于 R R R上的函数 f : R → R f: R \rightarrow R f:R→R,我们把函数看作空间内的一个元素,函数之间定义距离,则函数也可以张成一个空间,比如函数:
f ( t ) = t + 2 t 3 − 13 t 5 f(t) = t + 2t^3 - 13t^5 f(t)=t+2t3−13t5
我们可以理解为这是函数空间中的一个点,该函数空间的一组基为:
e 1 = t 0 , e 2 = t , e 3 = t 2 , e 4 = t 3 , e 5 = t 4 , e 6 = t 5 e_1 = t^0, e_2 = t, e_3 = t^2, e_4 = t^3, e_5 = t^4, e_6 = t^5 e1=t0,e2=t,e3=t2,e4=t3,e5=t4,e6=t5
那么 f ( t ) f(t) f(t)也可以写成 [ 0 , 1 , 0 , 2 , 0 , − 13 ] T [0, 1, 0, 2, 0, -13]^T [0,1,0,2,0,−13]T,这里我们应该可以联想到,函数张成的空间,应该也存在投影运算,那么首先,实函数上的内积是这么定义的:
< f 1 , f 2 > = ∫ f 1 ( t ) ⋅ f 2 ( t ) d t
很自然的 f 1 f_1 f1在 f 2 f_2 f2上的投影为 < f 1 , f 2 > ⋅ f 2
直观上理解,线性无关的向量组都可以作为基(更进一步是正交),函数空间的基可以有无限多组,使用 e i = t i − 1 e_i = t^{i - 1} ei=ti−1并无太多实际意义,更为著名的一组基是 e ( j ) = e j ω t e_{(j)} = e^{j\omega t} e(j)=ejωt,其中 j j j是复数单位, ω \omega ω是基的编号(或参数),类似 e i = t i − 1 e_i = t^{i - 1} ei=ti−1中的 i i i,那么对于某函数 f f f,在基上的投影为:
< f , e ( j ) > ⋅ e ( j ) = ( ∫ f ( t ) e ˉ ( j ) d t ) ⋅ e j ω t = ( ∫ f ( t ) e − j ω t d t ) ⋅ e j ω t
我们把这个过程称为傅里叶变换( e − j ω t e^{-j\omega t} e−jωt是 e j ω t e^{j\omega t} ejωt的共轭,来自于复函数上对内积、范数等的定义),把 ∫ f ( t ) e − j ω t d t \int f(t) e^{-j\omega t} dt ∫f(t)e−jωtdt记为 F ( ω ) F(\omega) F(ω),看上去就是把 f f f变换为另一个函数一样,实际上是把 f f f投影到各个不同的 F ( ω ) F(\omega) F(ω)上,把对应的投影强度计算出来。这个过程是可逆的,即是把 f f f投影到各个基上后,还可以根据在各个基上的强度,把 f f f还原回来:
f ( t ) = ∫ F ( w ) ⋅ e j ω t d ω f(t) = \int F(w) \cdot e^{j\omega t} d\omega f(t)=∫F(w)⋅ejωtdω
也即上述的投影叠加。
参考《信号与系统》,8.1与8.2节
以上是傅里叶变换的代数部分,现在的问题是,为什么我们需要取 e j ω t e^{j\omega t} ejωt作为基,这里并没有一个绝对正确的答案,只能说由于物理和工程的发展,我们习惯了使用正弦/余弦函数描述信号,比如音频,我们把音频信号分解为正弦/余弦函数(AM、FM);比如图像,我们把图像也分解为正弦/余弦函数(JPEG压缩)……
当我们使用正弦/余弦函数描述信号时,除了频率信息,还需要引入相位信息,这也是为什么我们需要使用复函数 e j ω t e^{j\omega t} ejωt描述。
图的形式化表示如下,首先,图是由顶点与边构成的集合,符号 x ∼ y x \sim y x∼y表示顶点 x x x与顶点 y y y之间存在边:
G = G ( V , E ) G = G(V, E) G=G(V,E)
V = { x i } i = 1 N , ∣ V ∣ = N < ∞ V = \{ x_i \}_{i = 1}^N, |V| = N < \infty V={xi}i=1N,∣V∣=N<∞
E = { ( x , y ) : x , y ∈ V & x ∼ y } E = \{ (x, y): x, y \in V \And x \sim y \} E={(x,y):x,y∈V&x∼y}
其次,图上的函数定义如下:
f : V → C f: V \rightarrow \mathbb{C} f:V→C
由于 ∣ V ∣ = N < ∞ |V| = N < \infty ∣V∣=N<∞, f f f可以看作一个 C N \mathbb{C}^N CN上的向量(与实函数一样)。
最后,我们一般用矩阵描述图的性质。
《Expedition in Data and Harmonic Analysis on Graphs》
《Fourier Analysis on Graph》
《Graph Signal Processing: An Introductory Overview》
单纯从数学角度出发,既然已经有了函数的定义,则一定可以用某种方法把函数分解成多个函数的线性组合,唯独缺的就是一组基。
回顾傅里叶变换,有几个要素:基、正交、投影、还原,从通信的物理意义角度,我们从正弦/余弦函数导出了基于 e j ω t e^{j\omega t} ejωt的傅里叶变换,那么从图的物理意义角度,我们自然需要从拉普拉斯矩阵导出图上的函数的基。
图的拉普拉斯矩阵定义如下:
L = D − A D = d i a g ( d x ) A ( i , j ) = { 1 , i f x i ∼ x j 0 , o t h e r w i s e L = D - A \\ D = diag(d_x) \\ A(i, j) = \begin{cases} 1, \quad if \; x_i \sim x_j \\ 0, \quad otherwise \\ \end{cases} L=D−AD=diag(dx)A(i,j)={1,ifxi∼xj0,otherwise
暂时不考虑拉普拉斯矩阵的物理意义,其特征值为:
λ 0 ≤ λ 1 ≤ ⋯ ≤ λ N − 1 \lambda_0 \le \lambda_1 \le \cdots \le \lambda_{N - 1} λ0≤λ1≤⋯≤λN−1
对应的特征向量为:
ψ 0 , ψ 1 , ⋯ , ψ N − 1 \psi_0, \psi_1, \cdots , \psi_{N - 1} ψ0,ψ1,⋯,ψN−1
由于特征向量是正交的,我们可以使用特征向量作为函数分解的一组基,函数 f f f在其中一个基 ψ k \psi_k ψk上的投影为(即是向量内积):
f ^ ( λ k ) = < f , ψ k > = ∑ n = 1 N f ( n ) ψ k ∗ ( n ) f ^ = ϕ ∗ f \hat{f}(\lambda_k) =
那么 f f f可按特征向量(函数)进行分解还原:
f = ∑ k = 0 N − 1 f ^ ( λ k ) ψ k f = ϕ f ^ f = \sum_{k = 0}^{N - 1} \hat{f}(\lambda_k) \psi_k \\ f = \phi \hat{f} f=k=0∑N−1f^(λk)ψkf=ϕf^
其中 ϕ \phi ϕ是特征向量(列向量)排列成的矩阵, ϕ ∗ \phi^{*} ϕ∗是 ϕ \phi ϕ的共轭转置。
在 f , g ∈ L 2 ( R ) f,g \in L^2(\mathbb{R}) f,g∈L2(R)上,卷积的定义为:
( f ∗ g ) ( t ) = ∫ R f ( u ) g ( t − u ) d u (f * g)(t) = \int_{\mathbb{R}} f(u) g(t - u) du (f∗g)(t)=∫Rf(u)g(t−u)du
但该定义很难推广到 G G G上,因此使用了卷积定理:
( f ∗ g ^ ) ( ξ ) = f ^ ( ξ ) g ^ ( ξ ) (\widehat{f * g})(\xi) = \hat{f}(\xi) \hat{g}(\xi) (f∗g )(ξ)=f^(ξ)g^(ξ)
经过逆变换得到 G G G上卷积的定义:
( f ∗ g ) ( n ) = ∑ i = 0 N − 1 f ^ ( λ i ) g ^ ( λ i ) ψ i ( n ) (f * g)(n) = \sum_{i = 0}^{N - 1} \hat{f}(\lambda_i) \hat{g}(\lambda_i) \psi_i(n) (f∗g)(n)=i=0∑N−1f^(λi)g^(λi)ψi(n)
至此,参考图像的卷积方法,我们已经可以把图卷积应用在神经网络了,如一个标准的图卷积层:
《Graph Convolutional Networks for Text Classification》
《Semi-Supervised Classification with Graph Convolutional Networks》
《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》
L ( j + 1 ) = ρ ( A ~ L ( j ) W j ) A ~ = D − 1 2 A D − 1 2 L^{(j + 1)} = \rho \big( \tilde{A} L^{(j)} W_j \big) \\ \tilde{A} = D^{-\frac{1}{2}} A D^{-\frac{1}{2}} L(j+1)=ρ(A~L(j)Wj)A~=D−21AD−21
在这里, L ( j ) L^{(j)} L(j)相当于 f f f, W j W_j Wj相当于 g g g……
剩下的问题是,为什么要使用Laplacian的特征向量作为函数分解的基。在图上允许定义不同的映射,考虑怎样的映射才算是最好的,我们把这个过程称为“嵌入”(embedding),在一维的情况下,即 f : V → R f: V \rightarrow \mathbb{R} f:V→R,我们用“平滑度”(smoothness)衡量一个嵌入的好与坏。
最优情况下,应该使以下目标函数最小化:
∑ { i , j } ∈ E ( f ( i ) − f ( j ) ) 2 \sum_{\{i, j\} \in E} \big( f(i) - f(j) \big)^2 {i,j}∈E∑(f(i)−f(j))2
(想象热量扩散的场景,空间中某一点的热量直接受作用于相邻的点,最终的平衡状态下,相邻点的热量差总是达到最小值)
而该最优化过程与拉普拉斯矩阵有如下关系:
∑ { i , j } ∈ E ( f ( i ) − f ( j ) ) 2 = ∑ { i , j } ∈ E ( f ( i ) 2 + f ( j ) 2 − 2 f ( i ) f ( j ) ) = ∑ { i , j } ∈ E − 2 f ( i ) f ( j ) + ∑ i d i f ( i ) 2 = ∑ i ≠ j , i ∼ j − f ( i ) f ( j ) + ∑ i d i f ( i ) 2 = ∑ i , j l i , j f ( i ) f ( j ) = ∑ i f ( i ) ( ∑ j l i , j f ( j ) ) = f T L f \begin{array}{rcl} \sum\limits_{\{i, j\} \in E} \big( f(i) - f(j) \big)^2 & = & \sum\limits_{\{i, j\} \in E} \big( f(i)^2 + f(j)^2 - 2f(i)f(j) \big) \\ & = & \sum\limits_{\{i, j\} \in E} - 2f(i)f(j) + \sum\limits_i d_i f(i)^2 \\ & = & \sum\limits_{i \neq j, i \sim j} - f(i)f(j) + \sum\limits_i d_i f(i)^2 \\ & = & \sum\limits_{i, j} l_{i, j} f(i)f(j) \\ & = & \sum\limits_i f(i) \bigg( \sum\limits_j l_{i, j} f(j) \bigg) \\ & = & f^T L f \end{array} {i,j}∈E∑(f(i)−f(j))2======{i,j}∈E∑(f(i)2+f(j)2−2f(i)f(j)){i,j}∈E∑−2f(i)f(j)+i∑dif(i)2i=j,i∼j∑−f(i)f(j)+i∑dif(i)2i,j∑li,jf(i)f(j)i∑f(i)(j∑li,jf(j))fTLf
根据Raleigh-Ritz定理,上述目标函数的最小值为 L L L的最小特征值, f f f的取值是最小特征值对应的特征向量,且有:
λ 1 = min f T L f f T f λ k = min f ⊥ s p a n { v 1 , v 2 , … , v k − 1 } f T L f f T f ; k = 2 , … , n \lambda_1 = \min \frac{f^T L f}{f^T f} \\ \lambda_k = \min_{f \perp span\{ v_1, v_2, \dots, v_{k - 1} \}} \frac{f^T L f}{f^T f}; k = 2, \dots, n λ1=minfTffTLfλk=f⊥span{v1,v2,…,vk−1}minfTffTLf;k=2,…,n
以道路网络为例,可以对不同特征向量进行可视化,观察不同的基实际上表达了什么关系(频率)信息:
代数连通性相关理论参考《Algebraic Connectivity of Graphs, with Applications》
实际操作参考《AIMS CDT Signal Processing Lab Session 2 Graph signal processing》