# 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

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.

# References

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. http://arxiv.org/abs/1905.05178.

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