~/learn/ML System Design · Framework & problem framing
Framing business goals as ML tasks
Turn 'increase engagement' into a concrete prediction problem with labels.
why this matters
Interviewers test whether you can turn a fuzzy product goal into a concrete label a model can learn.
A business goal ('people should enjoy the feed more') is not an ML task. You must translate it into something a model can predict: given a user and a candidate post, predict the probability they will like, comment or watch for more than 10 seconds.
Common task types: binary classification (will this transaction be fraud?), regression (how long will delivery take?), ranking (order these 500 items for this user), and retrieval (find the 1,000 most relevant items out of 100 million).
Goal → task
business goal 'increase watch time'
▼
ML objective predict P(watch > 30s | user, video)
▼
label 1 if watched > 30s, else 0
▼
decision rank videos by predicted scoreReal systems often predict several things at once — click, like, share, hide — and combine them into one score: score = w₁·P(click) + w₂·P(like) − w₃·P(hide). This is multi-task learning, and the weights are a product decision, not an ML one.
Interview trap
Optimizing pure click-through rate rewards clickbait. Mention that you'd include negative signals (hides, reports, quick bounces) or quality labels.
Pro tip
When asked 'what would you predict?', name the exact label and how it's collected from logs. Concrete labels are what separate strong answers from vague ones.
key takeaways
- Name the exact prediction and label.
- Combine several predicted signals into one score.
- Include negative signals to avoid clickbait.
check your understanding
'Increase meaningful engagement' is best framed as: