Ship a personalized recommender that runs four stages end to end
Notebook recommenders die at the API boundary. Build the production pattern: two-tower retrieval, CatBoost ranking, optional LLM rerank, served by FastAPI on local Postgres, Qdrant, and MLflow. Adapted from the open-source Decoding ML H&M course by replacing the Hopsworks coupling with a fully local stack.
Still deciding? Ask first.
Message a mentor about fit, prerequisites, or where to start. Replies come on WhatsApp, usually within a day.
- Curriculum fit, prerequisites, or where to start
- Honest answer, no pressure to enroll
Taught by an engineer who has shipped this
ISO 27001
Led the engineering work behind the certification of a regulated EU platform.
Series A platform
Architected the case-management product that became the business a €11.6M round was raised on.
3x faster deploys
Cut time-to-deploy by migrating to Kubernetes on GCP with deploy-on-merge.
Build a production-ready personalized recommender on H&M fashion data. Two-tower retrieval, CatBoost ranking, optional LLM rerank, served by FastAPI with Postgres, Qdrant, and MLflow. Adapted from the open-source Decoding ML course (https://github.com/decodingml/personalized-recommender-course) by replacing Hopsworks with a fully local stack. Source code: https://github.com/learnwithparam/personalized-recommender-system.
Build a four-stage personalized recommender: two-tower retrieval, ranking, optional LLM rerank, served by FastAPI on local Postgres, Qdrant, and MLflow.
What you'll ship
Real projects, not toy demos.
- A four-stage recommender pipeline that retrieves, filters, ranks, and reorders candidates
- Two neural towers that project customers and articles into a shared embedding space
- A CatBoost ranker trained on engineered article and customer features
- An optional LLM reranker that scores the top set with provider-neutral LiteLLM
- A FastAPI service that returns top-K recommendations with article metadata
- A Streamlit shop UI that consumes the API and renders article images
What you'll learn
You finish able to:
- Design a four-stage recommender that scales to millions of articles and customers
- Train a two-tower retrieval model that produces aligned customer and item embeddings
- Index item embeddings in Qdrant and run sub-millisecond approximate nearest neighbour search
- Train a CatBoost ranker on engineered article and customer features
- Decide when to add an LLM reranker and how to budget its latency and cost
- Serve the pipeline behind a FastAPI endpoint and measure recall@K, NDCG, and MAP
Curriculum
From H&M transactions to a four-stage recommender API.
- 013 lessons
Foundations and the four-stage architecture
Walk the H&M data, the FTI split, and the four-stage recommender that production teams run.
- 024 lessons
Two-tower retrieval
Train two neural networks that align customers and items in a shared embedding space, then index for fast lookup.
- 033 lessons
Ranking and LLM re-ranking
A CatBoost ranker on engineered features and an optional LLM rerank with cost and latency trade-offs.
- 044 lessons
Production serving and evaluation
Wrap the pipeline behind FastAPI, measure ranked retrieval, and plan for cold start.
Who it's for
Is this for you?
ML engineers
who have trained models in notebooks and now need to ship a recommender that survives a real product surface
Data scientists
who can move H&M data around in pandas but have never wired retrieval, ranking, and serving together
Backend engineers
who have to maintain the recommender service their data team handed off and want to understand every stage they are paged about
FAQ
Common questions.
Do I need a GPU?
No. The sampled H&M dataset trains both models in under five minutes on a laptop CPU. The full Kaggle dataset benefits from a GPU but is optional.
Do I need Docker?
Docker is the golden path with Postgres, Qdrant, and MLflow in containers. The repo also ships a LOCAL_MODE that runs on sqlite and embedded Qdrant so you can work without Docker.
Why two-tower instead of matrix factorization or FAISS only?
Two-tower learns customer and item embeddings in the same space conditioned on context features like age and seasonality. Pure matrix factorization cannot do that. FAISS only gives you the index, not the model.
Is this the H&M Kaggle competition solution?
No. This course teaches a production architecture you can ship. The H&M dataset is the substrate. Competition leaderboards optimise for offline metrics, while this curriculum optimises for an end-to-end system you would actually run.
Pricing
Practice what you read with Pro.
Every lesson is free to read. Pro adds quizzes, flashcards, coding practice, certificates, notes and review on every course.
Unlock with Pro
Cancel anytime.
- Quizzes and practice for this course
- Practice, notes and certificates on every course
- New releases the day they ship
Still deciding?
After this course:
Production recommenders are a pipeline, not a model. Build the whole thing once and the pattern transfers.