This folder contains several examples of applying graph machine learning (ML) algorithms on network-structured
data to solve node attribute inference (inferring entity properties) problems. The
examples demonstrate using the StellarGraph library to build machine learning
workflows on both homogeneous and heterogeneous networks.
Each folder contains one or more examples of using the StellarGraph implementations of the state-of-the-art algorithms, attri2vec[4], GraphSAGE [3], HinSAGE, GCN [6], GAT [7], PPNP/APPNP [10], SGC [9], Node2Vec [1], and Metapath2Vec [2]. GraphSAGE, HinSAGE, and GAT are variants of Graph Convolutional Neural networks [6]. Node2Vec and Metapath2Vec are methods based on graph random walks and representation learning using the Word2Vec [5] algorithm. attri2vec[4] is also based on graph random walks, and learns node representations by performing a mapping on node attributes.
The examples folder structure is shown below.
-
Examples of supervised node classification for two homogeneous networks with attributes, using the attri2vec algorithm [4].
-
Example of supervised node classification for a homogeneous network with attributed nodes, using the GraphSAGE algorithm [3].
-
Example of semi-supervised node classification for a homogeneous network, using the GCN algorithm [6].
-
Example of semi-supervised node classification for a homogeneous network, using the SGC algorithm [9].
-
Example of supervised node classification for a homogeneous network with attributed nodes, using the GAT algorithm [7].
-
Example of supervised node classification for a homogeneous network with attributed nodes, using the PPNP and APPNP algorithms [10].
-
Example of unsupervised node representation learning using Node2Vec and supervised classification using the Scikit-learn library.
-
Example of semi-supervised node classification for a heterogeneous network with multiple node and link types, using the HinSAGE algorithm.
-
Example of semi-supervised node classification for a homogeneous network with attributed nodes using the Cluster-GCN algorithm [11].
-
Node2Vec: Scalable Feature Learning for Networks. A. Grover, J. Leskovec. ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD), 2016. (link)
-
Metapath2Vec: Scalable Representation Learning for Heterogeneous Networks. Yuxiao Dong, Nitesh V. Chawla, and Ananthram Swami. ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD), 135–144, 2017 (link)
-
Inductive Representation Learning on Large Graphs. W.L. Hamilton, R. Ying, and J. Leskovec arXiv:1706.02216 [cs.SI], 2017. (link)
-
Attributed Network Embedding via Subspace Discovery. D. Zhang, J, Yin, X. Zhu and C. Zhang, arXiv:1901.04095, [cs.SI], 2019. (link)
-
Distributed representations of words and phrases and their compositionality. T. Mikolov, I. Sutskever, K. Chen, G. S. Corrado, and J. Dean. In Advances in Neural Information Processing Systems (NIPS), pp. 3111-3119, 2013. (link)
-
Semi-Supervised Classification with Graph Convolutional Networks. T. Kipf, M. Welling. ICLR 2017. arXiv:1609.02907 (link)
-
Graph Attention Networks. P. Velickovic et al. ICLR 2018 (link)
-
On Calibration of Modern Neural Networks. C. Guo, G. Pleiss, Y. Sun, and K. Q. Weinberger. ICML 2017. (link)
-
Simplifying Graph Convolutional Networks. F. Wu, T. Zhang, A. H. de Souza, C. Fifty, T. Yu, and K. Q. Weinberger. arXiv:1902.07153. (link)
-
Predict then propagate: Graph neural networks meet personalized PageRank. J. Klicpera, A. Bojchevski, A., and S. Günnemann, ICLR, 2019, arXiv:1810.05997.(link)
-
Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks. W. Chiang, X. Liu, S. Si, Y. Li, S. Bengio, and C. Hsiej, KDD, 2019, arXiv:1905.07953.(link)