← Back to work

RetailMind

AI / MLPyTorch · FastAPI · Docker2024

GNN-based product recommendation system with MLOps pipeline

Personalization at small-retail scale

Recommendation engines exist for Amazon and Flipkart — they have dedicated ML teams and petabytes of data. Small retailers don't. RetailMind was built to close that gap using the UCI Online Retail dataset (500K+ transactions) as a proxy for a mid-size Indian retailer's two-year purchase history. The harder problem wasn't the model — it was making the pipeline reproducible and production-deployable without a dedicated data team.

Context

  • No off-the-shelf recommendation engine for SME retailers
  • 500K+ transaction records needing preprocessing
  • Research-to-production gap — most GNN work stays in notebooks
  • Models must update as new purchase data arrives

Our approach

Key decisions

LightGCN over collaborative filtering

Graph-based model captures second-order purchase relationships that matrix factorization misses — customers who bought A and B together inform recommendations for C.

DVC for full data versioning

Dataset, preprocessing steps, and model artifacts versioned alongside code. Any experiment is reproducible from a single Git commit, not a pinned S3 link.

MLflow for experiment tracking

Every training run logs hyperparameters, NDCG@10, and Recall@20 automatically. Best model is auto-promoted to the production registry — no manual comparison.

FastAPI serving with Swagger

/recommend/{user_id} returns top-N products with relevance scores. Swagger docs generated automatically. Any developer can integrate in under an hour.

Results

What we achieved

0.71

NDCG@10 on UCI dataset

500K+

Transactions processed

<50ms

Inference per request

Full

MLOps pipeline with DVC + MLflow

Stack used

PyTorchFastAPIDockerGitHub Actions

Next project

MissionCart

Start a project

Let's build something great

Drop your details below. We'll have it open in Gmail, ready to send — no copy-pasting.

or message on LinkedIn →