ReelRank
Multi-stage short-video recommender with online exploration
Production-style recommendation platform: a multimodal two-tower retriever, a GRU multi-task ranker, diversity re-ranking and a LinUCB contextual bandit, served by FastAPI with a discovery UI that shows how each feed was ranked.
Visual evidence
Personalized discovery queue

Supplementary evidence
Discovery UI

Case study
Problem, Build, Outcome
Problem
Engagement-only rankers collapse into popularity loops, and most recommender demos stop at an offline notebook with no serving, exploration or feedback path.
Build
Trained a content-aware two-tower model with hard negatives and FAISS retrieval, a multi-task ranker for completion, like and skip, then added creator and category diversity caps, LinUCB exploration with propensity logging, and idempotent online feedback.
Outcome
On the seeded evaluation set the model reaches 1.55x the recall of a most-popular baseline while covering 85% of the catalog, and the UI exposes those metrics next to the live feed.
Architecture
System Flow
Architecture Notes
- Two-tower retriever fuses ID, category, creator and precomputed visual, audio and text features into a FAISS index.
- GRU sequence ranker predicts completion, like and skip jointly with a pairwise loss.
- Feedback events are idempotent and update the online bandit exactly once, with state persisted per model fingerprint.
Engineering choices
Technical Decisions
Seeded synthetic data keeps the full system reproducible, while the same CLI accepts a normalized KuaiRand log.
Logged propensities at serve time so offline IPS estimates are bias-corrected rather than descriptive.
Exposed a read-only model card endpoint so the UI explains ranking quality instead of hiding it.
Evidence
Proof Points
Recall@10, NDCG@10 and MAP@10 reported against a popularity baseline with a confidence interval
Stable A/B routing with a LinUCB exploration slice and inverse-propensity reward estimates
511 tests at 95% coverage, Prometheus metrics, Docker Compose deployment
Next read