Advanced
Open
Pro
Design a Two-Tower Retriever With Cold-Start Handling
Part of the ML System Design Interview path →
Part of the Deep Learning Foundations path →
Part of the Search, Recommendation & NLP Systems path →
A rental marketplace has 5M active listings, about 8 percent of which are less than 7 days old and have almost no interaction history, and hundreds of millions of (user, listing) engagement events. Search is a ranker with rich cross features, but its candidate generator (popularity plus filters) misses relevant listings. You are asked to add an embedding-based retrieval stage with a 50 ms budget for producing ~500 candidates.
- Sketch the two-tower architecture: inputs to each tower, the scoring function, the loss and where negatives come from.
- Explain how serving works and why the structure of the model makes that possible. Estimate the index memory for 128-d float32 and int8 vectors.
- Name three features you would like to use but cannot in a tower, and explain where they belong instead.
- How do you make new listings retrievable on day one? Cover both training and serving.
- How do you evaluate the stage offline and what would you check before an A/B test?
Share this question