The problem, stated with its constraints
A recommendation surface, a homepage row, a feed, an autoplay next-up, has one job: from a catalogue of items, select and order the handful this user should see right now.
Stated like that, it sounds like ranking. The constraints are what make it an architecture problem:
- The catalogue is huge. Millions of videos, tens of millions of tracks, hundreds of millions of listings.
- The budget is tiny. The recommendations must arrive within a page load, so the whole computation gets tens of milliseconds, not seconds.
- Quality needs expensive models. Telling apart two plausible items for this user takes a model that looks at many features of the user, the item, and the context together, and such models cost real compute per item scored.
Multiply it out: an expensive model, times millions of items, times a millisecond budget, does not go. Something has to give, and what gives is the assumption that one model does the whole job.
Key idea: recommendation at scale is the art of spending almost nothing per item on millions of items, so you can afford to spend heavily on a few hundred. Every large system, whatever its domain, converges on this funnel.

