Graph Fourier transform

From HandWiki

In mathematics, the graph Fourier transform is a mathematical transform which eigendecomposes the Laplacian matrix of a graph into eigenvalues and eigenvectors. Analogously to the classical Fourier transform, the eigenvalues represent frequencies and eigenvectors form what is known as a graph Fourier basis.

The Graph Fourier transform is important in spectral graph theory. It is widely applied in the recent study of graph structured learning algorithms, such as the widely employed convolutional networks.

Definition

Given an undirected weighted graph [math]\displaystyle{ G = (V,E) }[/math], where [math]\displaystyle{ V }[/math] is the set of nodes with [math]\displaystyle{ |V| = N }[/math] ([math]\displaystyle{ N }[/math] being the number of nodes) and [math]\displaystyle{ E }[/math] is the set of edges, a graph signal [math]\displaystyle{ f: V \rightarrow \mathbb{R} }[/math] is a function defined on the vertices of the graph [math]\displaystyle{ G }[/math]. The signal [math]\displaystyle{ f }[/math] maps every vertex [math]\displaystyle{ \{v_i\}_{i=1,\ldots,N} }[/math] to a real number [math]\displaystyle{ f(i) }[/math]. Any graph signal can be projected on the eigenvectors of the Laplacian matrix [math]\displaystyle{ L }[/math].[1] Let [math]\displaystyle{ \lambda_l }[/math] and [math]\displaystyle{ \mu_l }[/math] be the [math]\displaystyle{ l_\text{th} }[/math] eigenvalue and eigenvector of the Laplacian matrix [math]\displaystyle{ L }[/math] (the eigenvalues are sorted in an increasing order, i.e., [math]\displaystyle{ 0= \lambda_0\leq\lambda_1\leq\cdots\leq\lambda_{N-1} }[/math][2]), the graph Fourier transform (GFT) [math]\displaystyle{ \hat{f} }[/math] of a graph signal [math]\displaystyle{ f }[/math] on the vertices of [math]\displaystyle{ G }[/math] is the expansion of [math]\displaystyle{ f }[/math] in terms of the eigenfunctions of [math]\displaystyle{ L }[/math].[3] It is defined as:[1][4]

[math]\displaystyle{ \mathcal{G F}[f](\lambda_{l})=\hat{f}\left(\lambda_{l}\right)=\langle f, \mu_{l}\rangle=\sum_{i=1}^{N} f(i) \mu_{l}^*(i), }[/math]

where [math]\displaystyle{ \mu_l^* = \mu_l^\text{T} }[/math].

Since [math]\displaystyle{ L }[/math] is a real symmetric matrix, its eigenvectors [math]\displaystyle{ \{\mu_l\}_{l=0,\cdots, N-1} }[/math] form an orthogonal basis. Hence an inverse graph Fourier transform (IGFT) exists, and it is written as:[4]

[math]\displaystyle{ \mathcal{I} \mathcal{G} \mathcal{F}[\hat{f}](i)=f(i)=\sum_{l=0}^{N-1} \hat{f}(\lambda_l) \mu_l(i) }[/math]

Analogously to the classical Fourier transform, graph Fourier transform provides a way to represent a signal in two different domains: the vertex domain and the graph spectral domain. Note that the definition of the graph Fourier transform and its inverse depend on the choice of Laplacian eigenvectors, which are not necessarily unique.[3] The eigenvectors of the normalized Laplacian matrix are also a possible base to define the forward and inverse graph Fourier transform.

Properties

Parseval's identity

The Parseval relation holds for the graph Fourier transform,[5] that is, for any [math]\displaystyle{ f,h\in \mathbb{R}^N }[/math]

[math]\displaystyle{ \langle f, h\rangle=\langle\hat{f}, \hat{h}\rangle. }[/math]

This gives us Parseval's identity:[3]

[math]\displaystyle{ \sum_{i=1}^N |f(i)|^{2}=\|f\|_2^2=\langle f, f\rangle=\langle\hat{f}, \hat{f}\rangle=\|\hat{f}\|_2^2=\sum_{l=0}^{N-1} \left|\hat{f}\left(\lambda_l\right)\right|^2. }[/math]

Generalized convolution operator

The definition of convolution between two functions [math]\displaystyle{ f }[/math] and [math]\displaystyle{ g }[/math] cannot be directly applied to graph signals, because the signal translation is not defined in the context of graphs.[4] However, by replacing the complex exponential shift in classical Fourier transform with the graph Laplacian eigenvectors, convolution of two graph signals can be defined as:[3]

[math]\displaystyle{ (f * g)=\mathcal{I} \mathcal{G} \mathcal{F}[\mathcal{G} \mathcal{F}[f] \cdot \mathcal{G} \mathcal{F}[g]], }[/math]
[math]\displaystyle{ (f * g)(i)=\sum_{l=0}^{N-1} \hat{f}(\lambda_l) \hat{g}(\lambda_l) \mu_l(i). }[/math]

Properties of the convolution operator

The generalized convolution operator satisfies the following properties:[3]

  • Generalized convolution in the vertex domain is multiplication in the graph spectral domain: [math]\displaystyle{ \widehat{f * g}=\hat{f} \hat{g}. }[/math]
  • Commutativity: [math]\displaystyle{ f * g=g * f }[/math]
  • Distributivity: [math]\displaystyle{ f * (g+h)=f*g + f*h }[/math]
  • Associativity: [math]\displaystyle{ (f*g)*h = f*(g*h) }[/math]
  • Associativity with scalar multiplication: [math]\displaystyle{ \alpha(f * g)=(\alpha f) * g=f *(\alpha g) }[/math], for any [math]\displaystyle{ \alpha \in \mathbb{R} }[/math].
  • Multiplicative identity: [math]\displaystyle{ f * g_0=f }[/math], where [math]\displaystyle{ g_0(i)=\sum_{l=0}^{N-1} \mu_{l}(i) }[/math] is an identity for the generalized convolution operator.
  • The sum of the generalized convolution of two signals is a constant times the product of the sums of the two signals:
[math]\displaystyle{ \sum_{i=1}^N(f * g)(i)=\sqrt{N} \hat{f}(0) \hat{g}(0)=\frac{1}{\sqrt{N}}\left[\sum_{i=1}^N f(i)\right] \left[\sum_{i=1}^N g(i)\right]. }[/math]

Generalized translation operator

As previously stated, the classical translation operator [math]\displaystyle{ T_v }[/math] cannot be generalized to the graph setting. One way to define a generalized translation operator is through generalized convolution with a delta function centered at vertex [math]\displaystyle{ n }[/math]:[2][math]\displaystyle{ \left(T_{n} f\right)(i)=\sqrt{N}\left(f * \delta_{n}\right)(i){=} \sqrt{N} \sum_{l=0}^{N-1} \hat{f}\left(\lambda_{l}\right) u_{l}^{*}(n) u_{l}(i), }[/math]

where [math]\displaystyle{ \delta_i(n)=\begin{cases} 1, & \text {if } i=n, \\ 0, & \text {otherwise.} \end{cases} }[/math]

The normalization constant [math]\displaystyle{ \sqrt{N} }[/math] ensures that the translation operator preserves the signal mean,[4] i.e.,

[math]\displaystyle{ \sum_{i=1}^N(T_n f)(i)=\sum_{i=1}^N f(i). }[/math]

Properties of the translation operator

The generalized convolution operator satisfies the following properties:[3]

For any [math]\displaystyle{ f, g \in \mathbb{R}^N }[/math], and [math]\displaystyle{ j,k\in \{1,2,\dots,N\} }[/math],

  • [math]\displaystyle{ T_j(f * g)=(T_j f) * g=f *(T_{j} g) }[/math]
  • [math]\displaystyle{ T_j T_k f=T_k T_j f }[/math]
  • [math]\displaystyle{ \sum_{i=1}^N (T_j f)(i)=\sqrt{N} \hat{f}(0)=\sum_{i=1}^N f(i) }[/math]
  • [math]\displaystyle{ \left\|T_j f\right\| \neq \| f \| }[/math]

Applications

Image compression

Representing signals in frequency domain is a common approach to data compression. As graph signals can be sparse in their graph spectral domain, the graph Fourier transform can also be used for image compression.[6][7]

Graph noise reduction

Similar to classical noise reduction of signals based on Fourier transform, graph filters based on the graph Fourier transform can be designed for graph signal denoising.[8]

Data classification

As the graph Fourier transform enables the definition of convolution on graphs, it makes possible to adapt the conventional convolutional neural networks (CNN) to work on graphs. Graph structured semi-supervised learning algorithms such as graph convolutional network (GCN), are able to propagate the labels of a graph signal throughout the graph with a small subset of labelled nodes, theoretically operating as a first order approximation of spectral graph convolutions without computing the graph Laplacian and its eigendecomposition.[9]

Toolbox

GSPBOX[10][11] is a toolbox for signal processing of graphs, including the graph Fourier transform. It supports both Python and MATLAB languages.

References

  1. 1.0 1.1 Ricaud, Benjamin; Borgnat, Pierre; Tremblay, Nicolas; Gonçalves, Paulo; Vandergheynst, Pierre (2019-07-01). "Fourier could be a data scientist: From graph Fourier transform to signal processing on graphs" (in en). Comptes Rendus Physique. Fourier and the science of today / Fourier et la science d’aujourd’hui 20 (5): 474–488. doi:10.1016/j.crhy.2019.08.003. ISSN 1631-0705. Bibcode2019CRPhy..20..474R. 
  2. 2.0 2.1 Shuman, David I; Narang, Sunil K.; Frossard, Pascal; Ortega, Antonio; Vandergheynst, Pierre (May 2013). "The emerging field of signal processing on graphs: Extending high-dimensional data analysis to networks and other irregular domains". IEEE Signal Processing Magazine 30 (3): 83–98. doi:10.1109/MSP.2012.2235192. ISSN 1558-0792. Bibcode2013ISPM...30...83S. 
  3. 3.0 3.1 3.2 3.3 3.4 3.5 Shuman, David I; Ricaud, Benjamin; Vandergheynst, Pierre (2016-03-01). "Vertex-frequency analysis on graphs" (in en). Applied and Computational Harmonic Analysis 40 (2): 260–291. doi:10.1016/j.acha.2015.02.005. ISSN 1063-5203. 
  4. 4.0 4.1 4.2 4.3 Nonato, Luis Gustavo (2017-08-29). "Graph Fourier Transform". https://sites.icmc.usp.br/gnonato/gs/slide3.pdf. 
  5. Hammond, David K.; Vandergheynst, Pierre; Gribonval, Rémi (2011-03-01). "Wavelets on graphs via spectral graph theory" (in en). Applied and Computational Harmonic Analysis 30 (2): 129–150. doi:10.1016/j.acha.2010.04.005. ISSN 1063-5203. http://www.sciencedirect.com/science/article/pii/S1063520310000552. 
  6. Sandryhaila, Aliaksei; Moura, Jose M. F. (May 2013). "Discrete signal processing on graphs: Graph fourier transform". 2013 IEEE International Conference on Acoustics, Speech and Signal Processing. IEEE. pp. 6167–6170. doi:10.1109/icassp.2013.6638850. ISBN 978-1-4799-0356-6. 
  7. Hu, Wei; Cheung, Gene; Ortega, Antonio; Au, Oscar C. (January 2015). "Multiresolution Graph Fourier Transform for Compression of Piecewise Smooth Images". IEEE Transactions on Image Processing 24 (1): 419–433. doi:10.1109/TIP.2014.2378055. ISSN 1941-0042. PMID 25494508. Bibcode2015ITIP...24..419H. 
  8. Sandryhaila, Aliaksei; Moura, José M. F. (June 2014). "Discrete Signal Processing on Graphs: Frequency Analysis". IEEE Transactions on Signal Processing 62 (12): 3042–3054. doi:10.1109/TSP.2014.2321121. ISSN 1941-0476. Bibcode2014ITSP...62.3042.. 
  9. Kipf, Thomas N.; Welling, Max (2017-02-22). "Semi-Supervised Classification with Graph Convolutional Networks". arXiv:1609.02907 [cs.LG].
  10. Perraudin, Nathanaël; Paratte, Johan; Shuman, David; Martin, Lionel; Kalofolias, Vassilis; Vandergheynst, Pierre; Hammond, David K. (2016-03-15). "GSPBOX: A toolbox for signal processing on graphs". arXiv:1408.5781 [cs.IT].
  11. "PyGSP: Graph Signal Processing in Python — PyGSP 0.5.1 documentation". https://pygsp.readthedocs.io/en/stable/. 

External links

  • DeepGraphLibrary A free Python package built for easy implementation of graph neural networks.