Official implementation of
Graph Cross-Domain Continual Fine-Tuning via Orthogonal LoRA Routing with Contrastive Expert Specialization Proceedings of the ACM Web Conference 2026 (WWW '26).
G-CORMoL is a continual graph learning method for the cross-domain setting. It keeps a pretrained graph foundation model frozen and learns a sequence of tasks with a mixture of low-rank (LoRA) experts: each new domain gets an orthogonal-subspace (InfLoRA) expert, and a symmetric dual router mixes experts at inference time. Transfer and contrastive objectives encourage knowledge reuse across domains while limiting forgetting.
Tested with the following environment:
- Python 3.10
- PyTorch 2.4.0 (cu124)
- DGL 2.4.0 (cu124)
- PyTorch Geometric 2.6.1 (
torch_cluster1.6.3) - OGB 1.3.6
- numpy 1.26.4
- scikit-learn 1.7.1
- dill 0.4.0
- tqdm 4.67.1
G-CORMoL/
├── train.py # Entry point (argument parsing, multi-run loop)
├── pipeline.py # Domain-IL training / evaluation pipeline
├── train.sh # One-command launcher (fine-tuning)
├── Backbones/ # GNN backbones (GCN, etc.) and utilities
├── Baselines/
│ └── G_CORMoL_model.py # The G-CORMoL model (our method)
├── training/utils.py # Seeding, hyper-parameter helpers
├── dataset/utils.py # Task manager
├── datas/ # Bundled graph datasets (.bin)
└── pretrained_models/ # Pretrained GCN backbone checkpoint
Continual learning is evaluated over the same 8 domains in 4 different task orders (all four share identical hyper-parameters — only the order changes):
| Order | Sequence |
|---|---|
| 1 · Easy→Hard | Cora → Pubmed → CoauthorCS → Computer → WikiCS → LastFMAsia → DeezerEurope → Airport |
| 2 · Adversarial | Computer → DeezerEurope → CoauthorCS → WikiCS → LastFMAsia → Pubmed → Cora → Airport |
| 3 · Homophily-decline | LastFMAsia → CoauthorCS → Cora → Pubmed → Computer → Airport → WikiCS → DeezerEurope |
| 4 · Reverse-domain | Airport → DeezerEurope → LastFMAsia → WikiCS → Computer → CoauthorCS → Pubmed → Cora |
bash train.shtrain.sh loops over all four task orders and reports the average performance (AP) and
average forgetting (AF) across repeats runs. To run a single order, edit ALL_ORDERS at
the top of train.sh to keep only the order you want.
If you find this work useful, please cite:
@inproceedings{cai2026graph,
title={Graph Cross-Domain Continual Fine-Tuning via Orthogonal LoRA Routing with Contrastive Expert Specialization},
author={Cai, Qianyi and Qiao, Ziyue and Yang, Minghao and Luo, Xiao and Xiong, Hui},
booktitle={Proceedings of the ACM Web Conference 2026},
pages={1026--1037},
year={2026}
}Our code implementation is based on CGLB. Thanks for their great work and open-sourced codebase.