💻 Official implementation of our ICLR 2026 paper: Self-Consistency Improves the Trustworthiness of Self-Interpretable GNNs
🧠 Authors: Wenxin Tai, Ting Zhong, Goce Trajcevski, Fan Zhou
📍 Institutions: University of Electronic Science and Technology of China & Iowa State University
🔗 Page Link 🔗 Paper Link 🤖 This repository is maintained by ICDM Lab
TL;DR: We identify the mismatch between SI-GNN training and faithfulness evaluation, show its connection to self-consistency, and propose a simple SC loss that consistently improves explanation quality without architectural changes.
├── assets
├── configs # configuration
├── criterion.py # loss function
├── dataloader.py # load data
├── dataset.py # process data
├── datasets # raw dataset
├── explainer.py # explainer in self-interpretable GNNs (MLP)
├── main.py # entry
├── model.py # GNN backbone (GIN)
├── outputs # checkpoints/logs
├── README.md
├── run.sh
└── trainer.py # train/valid/testWe recommend creating a fresh Python environment (e.g., with conda):
conda create -n exgnn python=3.9
conda activate exgnn
pip install -r requirements.txtWe evaluate our method on a variety of datasets:
- Synthetic: BA-2MOTIFS
- Molecular: MUTAGENICITY, 3MR, BENZENE
Datasets can be downloaded from Google Drive, place all datasets (e.g., ba_2motifs, benzene, mr, mutag) in the datasets/ folder.
python main.py --run_time 10 --dataset ba_2motifs --method size
python main.py --run_time 10 --dataset ba_2motifs --method size_sc
python main.py --run_time 10 --dataset ba_2motifs --method gsat
python main.py --run_time 10 --dataset ba_2motifs --method gsat_sc
python main.py --run_time 10 --dataset ba_2motifs --method cal_cr
python main.py --run_time 10 --dataset ba_2motifs --method cal_cr_scpython main.py --run_time 10 --dataset ba_2motifs --method size --calculate_all_metrics
python main.py --run_time 10 --dataset ba_2motifs --method size_sc --calculate_all_metrics
python main.py --run_time 10 --dataset ba_2motifs --method gsat --calculate_all_metrics
python main.py --run_time 10 --dataset ba_2motifs --method gsat_sc --calculate_all_metrics
python main.py --run_time 10 --dataset ba_2motifs --method cal_cr --calculate_all_metrics
python main.py --run_time 10 --dataset ba_2motifs --method cal_cr_sc --calculate_all_metricsWe provide pretrained model checkpoints for quick reproduction.
You can download them from the Releases tab
To use the checkpoint, place it in the outputs/checkpoints/ folder and run:
python main.py --run_time 10 --dataset ba_2motifs --method size_sc --calculate_all_metrics
python main.py --run_time 10 --dataset ba_2motifs --method gsat_sc --calculate_all_metrics
python main.py --run_time 10 --dataset ba_2motifs --method cal_cr_sc --calculate_all_metricsIf you find this work useful, please cite us:
@inproceedings{tai2026self,
title = {Self-Consistency Improves the Trustworthiness of Self-Interpretable GNNs},
author = {Tai, Wenxin and Zhong, Ting and Trajcevski, Goce and Zhou, Fan},
booktitle = {International Conference on Learning Representations (ICLR)},
year = {2026}
}If you have questions or suggestions, feel free to reach out via GitHub Issues or email: wxtai [AT] outlook [DOT] com