Spotify Discover Weekly: Three Models, One Playlist
also called Discover Weekly
Spotify combined collaborative filtering, natural language processing and raw audio analysis because each covers the others' blind spots.
The problem
Recommending music has a structural difficulty: the catalogue is enormous, most of it is rarely played, and the tracks users would most value discovering are by definition the ones with the least listening data.
A single technique fails in a predictable way. Collaborative filtering — recommending what similar listeners played — works extremely well for popular music and completely fails for a track nobody has played yet. That is the cold-start problem, and for a service whose value proposition includes discovery it is not a corner case.
What they did
Discover Weekly, launched in 2015, is publicly described as combining three approaches:
Collaborative filtering over listening behaviour and playlist co-occurrence — the strongest signal where data exists.
Natural language processing over text about music: reviews, blogs, articles, playlist titles. This gives a signal for tracks that people write about even when few have streamed them, and it captures cultural context that behaviour alone does not.
Raw audio analysis using models over the audio signal itself, which produces a representation for a track with no listening data and no text written about it. This is what addresses cold start directly.
The ensemble means a new release can be recommended sensibly on day one.
The architectural point
The interesting part is not the models but what the ensemble requires of the platform: three quite different pipelines producing comparable representations, refreshed on a schedule, joined per user, and delivered as a weekly artefact to a very large user base.
That is a data platform problem — orchestration, feature computation, batch scale, freshness guarantees and a serving path — and it is where most of the engineering lives.
The transferable lesson
When one signal has a known blind spot, the answer is usually an additional signal rather than a better model. Teams commonly invest in improving a collaborative filtering model when the failure mode is cold start, which no amount of tuning addresses.
The generalisation: for any ranking or matching system, enumerate the cases where your primary signal is absent — new items, new users, rare categories, long-tail queries — and design a distinct path for them rather than accepting degraded output.