🚀 End-to-End Node and Graph Classification and Explanation App

Graph Explainability App

This repo contains project code for the Graph Explainability system that when receives Node ID or Graph ID as user input:

  • Classifies the node or graph;
  • Displays feature importances based on computed explained feature mask;
  • Shows Explanation Subgraph based on learned edge mask;
  • Visualizes the original node (and its neighborhood) and graph based on which operation does the user wanna perform.

Requirements

  • Python
  • Streamlit (for app building and deployment)
  • DVC (for data, model, and code version control)
  • MLflow (to keep track of all graph representation learning experiments performed)
  • Optuna (to find optimal values for all hyperparameters in exponentially large search space)
  • PyTorch
  • PyTorch Geometric

Data

  • Node Classification: Cora dataset is used that contains a homogeneous graph comprising 2708 nodes and 1433 node_features along with 7 class labels.
  • Graph Classification: ENZYMES dataset contains 600 homogeneous graphs along with 3 node_features and the task is to classify any of these graphs in 6 different Enzymes.

App Accessibility

To view and access the app, please click here or type in the following web address to your browser: https://graphexplanability.streamlit.app/

App Usage

To learn more about how to use this Graph Neural Networks-powered deployed app, please consider watching the following video:

Graph-Explainability-App.mp4