← all repositories
gusye1234/LightGCN-PyTorch

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.

1.1k stars Python ML FrameworksDomain Apps
LightGCN-PyTorch
Velocity · 7d
+0.5
★ / day
Trend
steady
star history

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 multicore test option
  • The C++ extension requires manual install of pybind11 and cppimport
  • 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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.