Design an ML keyword recommendation pipeline
Company: Apple
Role: Machine Learning Engineer
Category: ML System Design
Difficulty: hard
Interview Round: Technical Screen
Design an ML pipeline that generates search keyword recommendations for an app marketplace. Given a query like "games," produce diverse, typed suggestions (e.g., genres such as puzzle, RPG, racing) with high relevance and coverage. Specify objectives and constraints (relevance, diversity, freshness, latency, privacy). Detail data sources (query/search logs, clicks, installs, uninstalls, app metadata and taxonomy, reviews, co-search/co-click graphs, embeddings, locale signals) and labeling/feedback strategies. Propose the system architecture: candidate generation and ranking stages, feature store, offline training, online serving, cache, and retrieval. Describe features (text/semantic embeddings, popularity/recency, user/context signals, co-occurrence, graph features, quality/spam signals). Compare model options (BM25/ANN retrieval, two-tower retrieval, gradient-boosted trees, pairwise/listwise rankers, sequence models, graph models) and justify choices. Define evaluation metrics and experimentation (CTR, install rate, coverage, diversity, precision/recall, latency/errors; A/B testing and guardrails). Explain online/continual training after launch (streaming feedback ingestion, feature freshness, update cadence, warm-starting, drift detection, rollback). Discuss handling cold start, multilingual/locale variants, spam/abuse, and fairness.
Quick Answer: This question evaluates a candidate's ability to design an end-to-end, production-scale ML keyword recommendation pipeline, including retrieval and ranking architectures, taxonomy-grounded typed suggestions, data sourcing and labeling, operational concerns like latency, scalability, privacy, and policy compliance.