# Collaborative Filtering Model of Graph Neural Network Based on Random Walk
## 3 Model Framework
### Graph Fourier Transform  
For a graph \(G=\{V,E\}\), where \(V,E\) is the set of vertices and edges, each signal vector of the graph is \(\text{x}\in\mathbb{R}^{|V|\times 1}\), where \(x_{j}\) denotes the value of the \(j\)th signal on the graph  
The formula for the standard Fourier transform function is \(f\), and the complex exponential expansion is shown in Equation (4):  
\[f(t)=f^{-1}[F(w)]=\int{}_{R}F(t)e^{2\pi iwt}dt \tag{4}\]  
\(e^{2\pi iwt}\) forms a standard orthogonal basis.  
In order to perform the Fourier transform of the signal \(x\in R^{|V|\times 1}\) on the graph, it is necessary to find a set of orthogonal bases, represented by a linear combination of this set of orthogonal bases, so the graph Fourier transform uses the eigenvectors of the Laplace eigenmatrix \(U=(\overrightarrow{u_{1}}\overrightarrow{u_{2}},\ldots,\overrightarrow{u_{n}})\) as the basis functions of the graph Fourier transform.  
Using the Laplace eigenvectors as basis functions, since the Laplace eigenvector \(U=(\overrightarrow{u_{1}}\overrightarrow{u_{2}},\ldots,\overrightarrow{u_{n}})\) is an n-dimensional linearly independent vector, the basis of a space is composed of n linearly independent vectors in an n-dimensional space, and the eigenvectors of the Laplace matrix are also a set of orthogonal basis, as shown in Equation (5), the signal on the graph can be expressed as:  
\[x=\overset{\wedge}{x}(\lambda_{1})\overrightarrow{u_{1}}+\overset{\wedge}{x} (\lambda_{2})\overrightarrow{u_{2}}+\cdots+\overset{\wedge}{x}(\lambda_{n}) \overrightarrow{u_{n}} \tag{5}\]  
The Fourier transform of a graph is defined as the expansion of the eigenvector of the observed graph signal according to the Laplace operator \(L\) of the graph, and the eigenvectorcan be used as a basis for the spectral domain. Then, the signal (\(x\in R^{|V|\times 1}\)) of the graph \(G\) is shown in Equation (6) and the Fourier transform of the graph is defined as:  
\[\hat{x}(l)=\sum_{j=0}^{N-1}x(j)\mu_{l}(j)\begin{pmatrix}\hat{\chi}(l_{1})\\ \hat{\chi}(l_{2})\\ \vdots\\ \hat{\chi}(l_{n})\end{pmatrix}=\begin{bmatrix}u_{1}(1)&u_{1}(2)&\cdots&u_{1}( 4)\\ u_{2}(1)&u_{2}(2)&\cdots&u_{2}(4)\\ \vdots&\vdots&\ddots&\vdots\\ u_{n}(1)&u_{n}(2)&\cdots&u_{n}(n)\end{bmatrix}\begin{pmatrix}x(1)\\ x(2)\\ \vdots\\ x(n)\end{pmatrix} \tag{6}\]  
The inverse transformation of the graph Fourier is shown in Equation (7):  
\[x(j)=\sum_{j=0}^{N-1}x(l)\mu_{l}(j)\begin{pmatrix}x(1)\\ x(2)\\ \vdots\\ x(n)\end{pmatrix}=\begin{bmatrix}u_{1}(1)&u_{1}(2)&\cdots&u_{1}(4)\\ u_{2}(1)&u_{2}(2)&\cdots&u_{2}(4)\\ \vdots&\vdots&\ddots&\vdots\\ u_{n}(1)&u_{n}(2)&\cdots&u_{n}(n)\end{bmatrix}\begin{pmatrix}\hat{\chi}(l_{1}) \\ \hat{\chi}(l_{2})\\ \vdots\\ \hat{\chi}(l_{n})\end{pmatrix} \tag{7}\]  
where \(\hat{x}(l)\) denotes the \(j\)th value of l, \(x(j)\) and \(\mu_{l}(j)\) as above, respectively; \(\mu_{l}\) denotes the \(l\)th vector of \(L\); \(\hat{x}\) denotes the graph signal that has been converted to spectral domain. For simplicity, the equations in (6) and (7) can be converted to \(\hat{x}=U^{T}x\) and \(\mathbf{x}=U\hat{x}\), where \(U=(\overrightarrow{u_{1}},\overrightarrow{u_{2}},\ldots,\overrightarrow{u_{n }})\) is the eigenvector of \(L\).  
For the bipartite graph \(G\), two graph signal vectors exist: \(x^{u}\in R^{|U|\times 1}\) and \(x^{i}\in R^{|I|\times 1}\), associated with user vertices and project vertices, respectively. The transform between the spatial and spectral domains and the inverse transformation from the spectral domain to the spatial domain are shown in Equation (8):  
\[\left[\begin{array}{c}\hat{x}^{u}\\ \hat{x}^{i}\end{array}\right]=U^{T}\left[\begin{array}{c}x^{u}\\ x^{i}\end{array}\right]\text{and}\left[\begin{array}{c}x^{u}\\ x^{i}\end{array}\right]=U^{T}\left[\begin{array}{c}\hat{x}^{u}\\ \hat{x}^{i}\end{array}\right] \tag{8}\]