Skip to main content
ToolPotion

Principal Neighbourhood Aggregation

This repository provides an implementation of Principal Neighbourhood Aggregation (PNA) for Graph Neural Networks. It supports PyTorch, DGL, and PyTorch Geometric frameworks, offering scripts for multitask and real-world benchmarks, along with a flexible GNN framework and comparative models.

Description

The Principal Neighbourhood Aggregation (PNA) is a novel approach for Graph Neural Networks (GNNs) designed to enhance their expressive power and scalability. This GitHub repository, maintained by lukecavabarrett, offers a comprehensive implementation of PNA across three popular GNN frameworks: PyTorch, Deep Graph Library (DGL), and PyTorch Geometric.

The primary goal of this project is to provide researchers and developers with a robust and accessible implementation of PNA, enabling them to leverage its advanced capabilities in their graph-based machine learning tasks. The repository includes not only the core PNA layer but also supporting components such as aggregators, scalers, and a flexible GNN framework that can be adapted for various graph convolution types.

Beyond the core implementation, the repository is equipped with practical tools for evaluating GNN performance. It features scripts for generating and running multitask benchmarks, allowing for systematic comparison of different GNN models under diverse tasks. Additionally, it provides scripts for executing real-world benchmarks, facilitating the assessment of PNA's effectiveness on practical datasets. Implementations of other comparative GNN models like GCN, GAT, GIN, and MPNN are also included, offering a valuable resource for benchmarking and understanding PNA's relative strengths.

The repository's structure is organized to facilitate ease of use and modularity. The `pytorch` directory contains PyTorch-specific implementations, including the PNA layer and a general GNN framework. The `dgl` and `pytorch_geometric` directories house the PNA implementations for their respective libraries. Furthermore, `multi_task` and `real_world` directories offer detailed instructions and scripts for running benchmarks, with comprehensive README files guiding users through the setup and training processes. This makes the repository a valuable asset for anyone working with graph neural networks, particularly those interested in advanced aggregation techniques.

Principal Neighbourhood Aggregation Highlights

  • Implementation of Principal Neighbourhood Aggregation (PNA)

  • Support for PyTorch framework

  • Support for Deep Graph Library (DGL)

  • Support for PyTorch Geometric framework

  • Scripts for multitask benchmarks

  • Scripts for real-world benchmarks

  • Flexible PyTorch GNN framework

  • Implementations of comparative GNN models (GCN, GAT, GIN, MPNN)

  • Includes aggregators and scalers

  • PNA layer implementation

  • Open-source code available on GitHub

Getting Started with Principal Neighbourhood Aggregation

  1. Access model: Clone the GitHub repository or download the code.

  2. Set up environment: Install required dependencies (PyTorch, DGL, PyTorch Geometric, etc.).

  3. Integrate via framework: Utilize the PNA implementations within PyTorch, DGL, or PyTorch Geometric.

  4. Run benchmarks: Execute provided scripts for multitask or real-world evaluations.

  5. Adapt GNN framework: Modify the flexible PyTorch GNN framework for custom graph convolutions.

  6. Train models: Follow instructions in README files for hyperparameter tuning and training.

Principal Neighbourhood Aggregation's Use Cases

  • Graph Neural Network Research
  • Benchmarking GNN Models
  • Drug Discovery
  • Social Network Analysis
  • Recommendation Systems
  • Traffic Prediction
  • Fraud Detection

FAQ from Principal Neighbourhood Aggregation

Principal Neighbourhood Aggregation Reviews

Loading...

Popular AI Tools Like Principal Neighbourhood Aggregation

This GitHub repository provides PyTorch implementations for DeepGCNs, DeeperGCN, and GNN1000. It enables training very deep Graph Convolutional Networks by adapting concepts from…

Machine Learning Platforms

This repository provides a PyTorch implementation of the "Simple and Deep Graph Convolutional Networks" (GCNII) model. It includes code for replicating semi-supervised and…

AI Models & LLMs

AI Models

SAGPool is an official PyTorch implementation of Self-Attention Graph Pooling, presented at ICML 2019. This read-only, archived repository provides the code for a novel graph…

AI Models & LLMs

Graph Convolutional Networks (GCNs) are a type of neural network designed to process data structured as graphs. They generalize convolutional neural networks to graph-structured…

Other AI Tools

AI Models

GraphSAINT is a flexible framework for training deep Graph Neural Networks (GNNs) on large graphs. It introduces a novel minibatch training method using graph sampling, offering…

Machine Learning Platforms

This repository provides the official code implementation for the research paper "How Attentive are Graph Attention Networks?" published at ICLR'2022. It offers reproducible…

Machine Learning Platforms

AI Models

DGCNN is an AI model for learning on point clouds, implementing Dynamic Graph CNN. It achieves state-of-the-art performance in tasks like classification and segmentation of 3D…

AI Models & LLMs

This GitHub repository provides TensorFlow and PyTorch implementations for the PPNP and APPNP models, introduced in the "Predict then Propagate: Graph Neural Networks meet…

AI Models & LLMs