Orignal Ariticle: link
Graph Fourier Transform
In mathematics, graph Fourier transform is a mathematical transform which eigendecomposes the Laplacian matrix of a graph into eigenvalues and eigenvectors. Analogously to classical Fourier Transform, the eigenvalues represent frequencies and eigenvectors form what is known as a graph Fourier basis.
Graph Fourier Transform (GFT) is defined as:
G
F
[
f
]
(
λ
l
)
=
f
^
(
λ
l
)
=
<
f
,
u
l
>
=
∑
i
=
1
N
f
(
i
)
u
l
T
(
i
)
.
\mathcal{GF}[f](\lambda_l) = \hat{f} (\lambda_l) = <\pmb{f}, \pmb{u}_l> = \sum_{i = 1}^{N} f(i) u_l^T(i).
GF[f](λl)=f^(λl)=<fff,uuul>=i=1∑Nf(i)ulT(i).
where
- G = ( V , E ) G = (V, E) G=(V,E): undirected weighted graph
- V V V: the set of nodes with ∣ V ∣ = N |V| = N ∣V∣=N
- E E E: the set of edges
- f : V → R f: V \rightarrow \mathbb{R} f:V→R: a graph signal that is a function defined on the vertices of the graph G G G, which maps every vertex { v i } i = 1 , ⋯ , N \{v_i\}_{i = 1, \cdots, N} {vi}i=1,⋯,N to a real number f ( i ) f(i) f(i). Any graph signal can be projected on the eigenvectors ( 0 = λ 1 ≤ λ 2 ≤ ⋯ ≤ λ N ) (0 = \lambda_1 \leq \lambda_2 \leq \cdots \leq \lambda_{N}) (0=λ1≤λ2≤⋯≤λN) of the Laplacian matrix L {\bf L} L
- λ l \lambda_l λl: the l l lth eigenvalue of the Laplacian matrix L {\bf L} L
- u l \pmb{u}_l uuul: the l l lth eigenvector of the Laplacian matrix L {\bf L} L
It can also be represented as
[
f
^
(
λ
1
)
f
^
(
(
λ
2
)
⋮
f
^
(
(
λ
N
)
]
=
[
u
1
(
1
)
u
2
(
1
)
⋯
u
N
(
1
)
u
1
(
2
)
u
2
(
2
)
⋯
u
N
(
2
)
⋮
⋮
⋱
⋮
u
1
(
N
)
u
2
(
N
)
⋯
u
N
(
N
)
]
T
[
f
(
1
)
f
(
2
)
⋮
f
(
N
)
]
,
\begin{aligned}\begin{bmatrix}\hat{f}(\lambda_1)\\\hat{f}((\lambda_2)\\\vdots\\\hat{f}((\lambda_N)\end{bmatrix}=\begin{bmatrix}u_1(1) & u_2(1) & \cdots & u_{N}(1)\\u_1(2) & u_2(2) & \cdots & u_{N}(2)\\\vdots & \vdots & \ddots & \vdots\\u_1(N) & u_2(N) & \cdots & u_{N}(N)\\\end{bmatrix}^T\begin{bmatrix}f(1)\\f(2)\\\vdots\\f(N)\end{bmatrix}\end{aligned},
⎣⎢⎢⎢⎡f^(λ1)f^((λ2)⋮f^((λN)⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡u1(1)u1(2)⋮u1(N)u2(1)u2(2)⋮u2(N)⋯⋯⋱⋯uN(1)uN(2)⋮uN(N)⎦⎥⎥⎥⎤T⎣⎢⎢⎢⎡f(1)f(2)⋮f(N)⎦⎥⎥⎥⎤,
which is equal to
f
^
=
U
T
f
.
\pmb{\hat{f}} = {\bf U}^T \pmb{f} .
f^f^f^=UTfff.
Since Laplacian matrix
L
{\bf L}
L is a real symmetric matrix, its eigenvectors
u
1
,
u
2
,
⋯
,
u
N
\pmb{u}_1, \pmb{u}_2, \cdots, \pmb{u}_{N}
uuu1,uuu2,⋯,uuuN form an orthogonal basis. Hence an inverse graph Fourier transform (IGFT) exists, and it is written as
I G F [ f ^ ] ( i ) = f ( i ) = < f ^ , u l > = ∑ i = 1 n f ^ ( λ l ) u l ( i ) . \mathcal{IGF}[\hat{f}](i)= f (i) = <\pmb{\hat{f}}, \pmb{u}_l> =\sum_{i = 1}^{n} \hat{f}(\lambda_l) u_l(i). IGF[f^](i)=f(i)=<f^f^f^,uuul>=i=1∑nf^(λl)ul(i).
It can be also represented as
[ f ( 1 ) f ( 2 ) ⋮ f ( N ) ] = [ u 1 ( 1 ) u 2 ( 1 ) ⋯ u N ( 1 ) u 1 ( 2 ) u 2 ( 2 ) ⋯ u N ( 2 ) ⋮ ⋮ ⋱ ⋮ u 1 ( N ) u 2 ( N ) ⋯ u N ( N ) ] [ f ^ ( λ 1 ) f ^ ( ( λ 2 ) ⋮ f ^ ( ( λ N ) ] , \begin{aligned}\begin{bmatrix}f(1)\\f(2)\\ \vdots\\ f(N) \end{bmatrix}= \begin{bmatrix} u_1(1) & u_2(1) & \cdots & u_{N}(1)\\ u_1(2) & u_2(2) & \cdots & u_{N}(2)\\ \vdots & \vdots & \ddots & \vdots\\ u_1(N) & u_2(N) & \cdots & u_{N}(N)\\ \end{bmatrix} \begin{bmatrix} \hat{f}(\lambda_1)\\ \hat{f}((\lambda_2)\\ \vdots\\ \hat{f}((\lambda_N) \end{bmatrix} \end{aligned}, ⎣⎢⎢⎢⎡f(1)f(2)⋮f(N)⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡u1(1)u1(2)⋮u1(N)u2(1)u2(2)⋮u2(N)⋯⋯⋱⋯uN(1)uN(2)⋮uN(N)⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡f^(λ1)f^((λ2)⋮f^((λN)⎦⎥⎥⎥⎤,
which is equal to
f
=
U
f
^
.
\pmb{f} = {\bf U} \pmb{\hat{f}}.
fff=Uf^f^f^.
Orthogonal basis for the Fourier transform
The eigenvectors of Laplacian matrix are a set of linearly independent orthogonal bases, thus any graph signal can be expressed as a linear combination of the eigenvectors of Laplacian matrix
f
=
f
^
1
u
1
+
f
^
2
u
2
+
⋯
+
f
^
N
u
N
.
\pmb{f} = \pmb{\hat{f}}_1 \pmb{u}_1+\pmb{\hat{f}}_2 \pmb{u}_2+\cdots+\pmb{\hat{f}}_N \pmb{u}_N.
fff=f^f^f^1uuu1+f^f^f^2uuu2+⋯+f^f^f^NuuuN.
Convolution Operation on Graph
Generalized convolution in the vertex domain is multiplication in the graph spectral domain:
f
∗
h
=
IGFT
(
f
^
h
^
)
\pmb{f} * \pmb{h} = \text{IGFT} (\pmb{\hat{f}} \pmb{\hat{h}})
fff∗hhh=IGFT(f^f^f^h^h^h^)
which can be also expressed as
f
∗
h
(
i
)
=
∑
l
=
1
N
f
^
(
λ
l
)
h
^
(
λ
l
)
u
l
(
i
)
.
\pmb{f} * \pmb{h}(i) = \sum_{l = 1}^{N} \hat{f}(\lambda_l)\hat{h}(\lambda_l) u_l(i).
fff∗hhh(i)=l=1∑Nf^(λl)h^(λl)ul(i).
- h \pmb{h} hhh: convolution kernel
Steps of Convolution Operation on Graph:
- f ^ = U T f \pmb{\hat{f}} = {\bf U}^T \pmb{f} f^f^f^=UTfff
- h ^ = U T h \pmb{\hat{h}} = {\bf U}^T \pmb{h} h^h^h^=UThhh
- h ^ f ^ = U T h ⊙ U T f = f ^ h ^ \pmb{\hat{h}} \pmb{\hat{f}} = {\bf U}^T \pmb{h} \odot {\bf U}^T \pmb{f} = \pmb{\hat{f}} \pmb{\hat{h}} h^h^h^f^f^f^=UThhh⊙UTfff=f^f^f^h^h^h^, i,e,
f ∗ h = U f ^ h ^ = U [ h ^ ( λ 1 ) ⋱ h ^ ( λ N ) ] U T f \begin{aligned}\pmb{f} * \pmb{h} &= {\bf U} \pmb{\hat{f}} \pmb{\hat{h}}\\&={\bf U}\begin{bmatrix}\hat{h}(\lambda_1) & & \\ & \ddots & \\ & & \hat{h}(\lambda_N)\end{bmatrix}{\bf U}^T\pmb{f}\end{aligned} fff∗hhh=Uf^f^f^h^h^h^=U⎣⎡h^(λ1)⋱h^(λN)⎦⎤UTfff