As part of my undergraduate research in Graph Neural Networks (GNNs) and Causal Inference, I've been exploring a major flaw in modern recommender systems: observational bias.
Standard recommendation algorithms—even state-of-the-art GNNs like LightGCN and NGCF—learn from biased data. Popular items get shown more often, which leads to more clicks, creating a feedback loop that reinforces popularity bias and buries niche items.
To solve this, I built an open-source framework that combines GNNs with Causal Reinforcement Learning to debias recommendations.
Here is how I approached it.
I started by implementing three solid baseline architectures in PyTorch Geometric (PyG):











