learning respectively assuming one of the other is known, and then combine them to the formulation of jointly learning.

Problem Formulation of Graph Learning
-------------------------------------

As a graph essentially captures *pairwise similarities* within data $\mathbf{x} \in \mathbb{R}^N$, we cast the problem of graph learning as *distance metric learning*, *i.e.*, learning a distance function for each data pair $\{x_i,x_j\}$ for similarity calculation. Specifically, given K-dimensional feature vectors $\mathbf{f}^i_l \in \mathbb{R}^K$ and $\mathbf{f}^j_l \in \mathbb{R}^K$ of node $i$ and $j$ at the $l$-th layer respectively, we employ the commonly used Gaussian kernel to define an edge weight $a_{i,j}$ as $$a_{i,j}=\exp\left\{-d^2(\mathbf{f}^i_l,\mathbf{f}^j_l)\right\},$$ where $d(\mathbf{f}^i_l,\mathbf{f}^j_l)$ is a distance metric between $\mathbf{f}^i_l$ and $\mathbf{f}^j_l$. The Gaussian kernel enforces edge weights to be in range $[0,1]$, thus ensuring the resulting combinatorial graph Laplacian to be PSD [@cheung2018graph].

While there exist various definitions of distance metrics, such as Euclidean distance and bilateral filtering distance [@tomasi1998bilateral], we deploy the *Mahalanobis distance*, which is defined as $$d_{\mathbf{M}_l}(\mathbf{f}^i_l,\mathbf{f}^j_l) = \sqrt{(\mathbf{f}^i_l - \mathbf{f}^j_l)^{\top} \mathbf{M}_l (\mathbf{f}^i_l - \mathbf{f}^j_l)},
\label{eq:m_distance}$$ where $\mathbf{M}_l \in \mathbb{R}^{K \times K}$ is a PSD matrix, and $l$ is the index of layers. The Mahalanobis distance captures correlations among features via $\mathbf{M}_l$, which is widely adopted in the machine learning 