Graph Auto-Encoder

Auto-Encoding the Feature Matrix Given Adjacency Matrix

The task is to learn the encoder \(f\) and the decoder \(g\) that: \[ \begin{align} \mathbf{Z} &= f(\mathbf{A},\mathbf{X}) \\ \tilde{\mathbf{X}} &= g(\mathbf{A},\mathbf{Z}) \end{align} \]

Graph U-Net

Figure 1: Graph U-Net (view pdf)
Figure 2: gUnpool (view pdf)

Gao and Ji (2019) proposed the gPool, and gUnpool as the building blocks of graph auto-encoder. It also mimics the hierarchical structure of U-Net (Ronneberger, Fischer, and Brox 2015), thus named as Graph U-Net.

  • gPool: is similar to that proposed by Cangea et al. (2018), see Graph Convolution Network.

  • gUnpool: the gUnpool layer that restores the input of a gUnpool layer can be formulated as; \[ \tilde{\mathbf{X}}^{(l)} = \mathop{\mathrm{distribute}}\left( \mathbf{X}^{(l+1)}, \mathbf{idx}^{(l)} \right) \] where \(\mathbf{X}^{(l+1)}\) is output of the \(l\)-th gPool layer, \(\mathbf{idx}^{(l)}\) is the top-\(k\) nodes of the \(l\)-th gPool layer. The function \(\text{distribute}(\cdot)\) assigns back each row of \(\mathbf{X}^ {(l+1)}\) to the \(\tilde{\mathbf{X}}^{(l)}\), according to the selection index \(\mathbf{idx}^{(l)}\). The shape of \(\tilde{\mathbf{X}}^{(l)}\) is the same as the input of the \(l\)-th gPool layer (i.e., \(\mathbf{X}^{(l)}\)). The un-assigned rows are zero vectors.


Cangea, Cătălina, Petar Veličković, Nikola Jovanović, Thomas Kipf, and Pietro Liò. 2018. “Towards Sparse Hierarchical Graph Classifiers.” arXiv Preprint arXiv:1811.01287.

Gao, Hongyang, and Shuiwang Ji. 2019. “Graph U-Nets.” arXiv:1905.05178 [Cs, Stat], May.

Ronneberger, Olaf, Philipp Fischer, and Thomas Brox. 2015. “U-Net: Convolutional Networks for Biomedical Image Segmentation.” arXiv:1505.04597 [Cs], May.