SkillAgentSearch skills...

PANDA

🐼PANDA: Expanded Width-Aware Message Passing Beyond Rewiring, ICML 2024

Install / Use

/learn @jeongwhanchoi/PANDA

README

<div align=center> <h1>:panda_face: PANDA: Expanded Width-Aware Message Passing Beyond Rewiring</h1>

GitHub Repo stars Twitter Follow arXiv Hits PWC PWC

<div> <a href="https://www.jeongwhanchoi.com" target="_blank"><b>Jeongwhan Choi</b></a><sup>1</sup>, <a href="https://suminizz.github.io/" target="_blank">Sumin Park</a><sup>2</sup>, <a href="https://scholar.google.co.kr/citations?user=-foMLcAAAAAJ&hl=en" target="_blank">Hyowon Wi</a><sup>2</sup>, <a href="https://scholar.google.com/citations?user=px5LGgMAAAAJ&hl=en" target="_blank">Sung-Bae Cho</a><sup>1</sup>, <a href="https://sites.google.com/view/noseong" target="_blank">Noseong Park</a><sup>2</sup>, <div> <sup>1</sup>Yonsei University, <sup>2</sup>KAIST </div> </div> </div>

TL;DR

Introduction

<img src="img/panda.png" width="600">

Graph Neural Networks (GNNs) face a critical issue known as "over-squashing," which impedes the propagation of long-range information. While previous studies attempted to solve this through graph rewiring, such approaches risk distorting the original graph structure and information flow. We propose :panda_face: PANDA (exPANDed width-Aware) message passing, a new paradigm that selectively expands the width of high-centrality nodes, enabling them to better process signals from distant nodes. Our experimental results demonstrate that PANDA outperforms existing rewiring methods, suggesting that selectively expanding node hidden states can be an effective alternative for addressing over-squashing.

Requirements

To set up the environment, run the following command:

conda env create -f environment.yml

How to Run

Graph Classification

Example Command:

python run_graph_classification.py --rewiring=panda --dataset={$dataset} --layer_type={$model} --exp_factor={$exp_factor} --centrality={$centrality} --top_k={$top_k} --device={$device}

The arguments we consider in our paper:

  • dataset:
    • reddit, imdb, mutag, enzymes, proteins, collab
  • model:
    • PANDA-GCN, PANDA-GIN, PANDA-RGCN, PANDA-RGIN
  • exp_factor:
    • [1.25, 1.5, 1.75, 2]
  • centrality:
    • degree, closeness, betweeness, pagerank, load
  • top_k:
    • [1, 3, 5, 7, 10, 15]
  • device:
    • gpu number

If you want to run 100 tirals, add num_trials like below:

python run_graph_classification.py --rewiring=panda --dataset={$dataset} --layer_type={$model} --exp_factor={$exp_factor} --centrality={$centrality} --top_k={$top_k} --device={$device} --num_trials=100

Paper

If the code is helpful for your project, please cite our paper:

@inproceedings{
choi2024panda,
title={{PANDA}: Expanded Width-Aware Message Passing Beyond Rewiring},
author={Jeongwhan Choi and Sumin Park and Hyowon Wi and Sung-Bae Cho and Noseong Park},
booktitle={Forty-first International Conference on Machine Learning},
year={2024},
url={https://openreview.net/forum?id=J1NIXxiDbu}
}

Star History

Star History Chart

View on GitHub
GitHub Stars22
CategoryDevelopment
Updated2mo ago
Forks3

Languages

Python

Security Score

95/100

Audited on Jan 9, 2026

No findings