Description
This repository hosts the official implementations of the PPNP (Predict then Propagate) and APPNP (Approximate Personalized PageRank) models, as detailed in the ICLR 2019 paper "Predict then Propagate: Graph Neural Networks meet Personalized PageRank" by Gasteiger, Bojchevski, and Günnemann. The project offers both TensorFlow and PyTorch versions of these advanced graph neural network models.
The primary goal of this repository is to provide researchers and developers with accessible code to leverage these models for tasks involving graph-structured data. The implementations are designed to be straightforward to use, with clear examples and instructions for reproducing the results presented in the original paper. This facilitates further research and application of Personalized PageRank concepts within the GNN framework.
Key capabilities include the ability to perform graph classification and other node-level or graph-level predictions by effectively combining propagation mechanisms with predictive models. The models are particularly suited for scenarios where understanding node importance and influence within a network is crucial. The repository also includes utilities for data handling, such as converting NetworkX graphs into the project's SparseGraph format, enabling the use of custom datasets.
The target audience for this repository includes machine learning researchers, data scientists, and engineers working with graph neural networks, network analysis, and related fields. Developers looking to implement or experiment with state-of-the-art GNN architectures for tasks like link prediction, node classification, or recommendation systems will find this resource valuable.
The value proposition lies in providing a well-documented, open-source implementation of powerful graph neural network models that bridge the gap between traditional graph algorithms like Personalized PageRank and modern deep learning techniques. The availability of both TensorFlow and PyTorch versions enhances flexibility and adoption across different development environments.
PPNP & APPNP Models Highlights
TensorFlow implementation of PPNP and APPNP models
PyTorch implementation of PPNP and APPNP models
Code for reproducing results from the ICLR 2019 paper
Example notebooks for easy integration (simple_example_pytorch.ipynb, simple_example_tensorflow.ipynb)
Utilities for converting NetworkX graphs to SparseGraph format
Includes datasets like Cora-ML, Citeseer, and PubMed
Supports graph-based machine learning tasks
Based on the "Predict then Propagate: Graph Neural Networks meet Personalized PageRank" paper
Open-source code available on GitHub
Getting Started with PPNP & APPNP Models
Access Model: Clone the GitHub repository to your local machine.
Set Up Environment: Install required packages using `pip install -r requirements.txt`.
Integrate via API: Import and utilize the PPNP or APPNP model classes within your Python scripts.
Run Examples: Execute provided Jupyter notebooks (`simple_example_pytorch.ipynb` or `simple_example_tensorflow.ipynb`) to see the models in action.
Reproduce Results: Utilize `reproduce_results.ipynb` to replicate experimental outcomes from the paper.
Data Handling: Use `networkx_to_sparsegraph` for custom dataset integration.
PPNP & APPNP Models's Use Cases
- Graph Classification
- Node Classification
- Link Prediction
- Recommendation Systems
- Network Analysis
- Attributed Graph Learning








