A leaner graph neural network for recommendation
PyTorch re-implementation of a SIGIR 2020 paper that strips GCNs down to just neighborhood aggregation for collaborative filtering.

What it does
LightGCN is a graph convolutional network for recommendation systems—think “users who bought X also bought Y”—that deliberately drops the usual GCN baggage like feature transformation and nonlinear activation. The repo provides training code, four preprocessed datasets (Gowalla, Yelp2018, Amazon-book, LastFM), and reported recall/NDCG metrics for 1- to 4-layer variants.
The interesting bit
The paper’s bet is that for collaborative filtering, all that GCN complexity is just dead weight; only neighborhood aggregation matters. The README includes a C++ extension for negative sampling via pybind11, which suggests the authors actually cared about training speed, not just theory.
Key highlights
- Reproducible by default: seeds fixed for numpy and torch, so the epoch-5 and epoch-116 logs should match exactly
- Extensible via inheritance: plug in your own dataset (
BasicDataset), model (BasicModel), or sampling method (Procedure.py) - Tensorboard logging supported
- Includes matrix-splitting code that the authors themselves tell you not to use—“it will extremely slow down the training speed”
Caveats
- Windows users may hit snags with the
multicoretest option - The C++ extension requires manual install of
pybind11andcppimport - No Amazon-book results shown in the README; only Gowalla and Yelp2018 tables
Verdict
Grab this if you’re benchmarking recommendation models or need a clean PyTorch baseline for graph-based collaborative filtering. Skip it if you want a batteries-included library; this is research code with extension points, not a product.