This is basically a full ML systems interview crammed into one question.
Start by clarifying requirements and scale, then walk through the end-to-end pipeline from candidate generation to serving, emphasizing trade-offs at each stage. Integrate experimentation and monitoring throughout, and explicitly discuss how downstream changes can impact online metrics.
Pro tip: Anchor your design in Airbnb's two-sided marketplace by discussing how to balance guest and host objectives, and use concrete examples like similar listing embeddings for candidate generation. Also, emphasize that offline metrics are proxies—always validate with online A/B tests and be wary of feedback loops.
Ask about scale (users, listings, QPS), latency budgets, business objectives (e.g., bookings, guest satisfaction), and constraints (e.g., real-time features). This sets the stage for design decisions.
Describe candidate generation (e.g., collaborative filtering, embeddings, geographic retrieval) and ranking (e.g., GBDT, DNN) with feature engineering (user, listing, context, cross features). Discuss trade-offs between model complexity and latency.
Explain serving architecture: offline training, online inference (e.g., TF Serving, feature store), caching, and fallbacks. Address scalability, latency, and reliability.
Define offline metrics (e.g., NDCG, recall@k) and online metrics (e.g., CTR, bookings, revenue). Describe A/B testing setup, guardrail metrics, and how to detect downstream impacts (e.g., scoring service changes causing metric shifts).
Discuss monitoring, alerting, and debugging. Explain how changes in a downstream service (e.g., pricing, availability) can affect live metrics and how to isolate causes via experiments and causal inference.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.