Spotifys algoritm infografik

Hur Spotify rekommenderar musik (från ett programmerarperspektiv)

När Spotify lyckas rekommendera exakt rätt låt känns det nästan kusligt.

Du lyssnar på en obskyr indieartist en gång — och plötsligt dyker fem liknande band upp i din Discover Weekly.

Men bakom magin finns egentligen något väldigt programmeringsmässigt:

  • datastrukturer
  • mönsterigenkänning
  • ranking-algoritmer
  • machine learning
  • enorma mängder användardata

Spotify är i grunden ett massivt rekommendationssystem. Det här inlägget innehåller spekulation och ska därför tolkas som en riktlinje istället för ett facit för Spotifys algoritm.

Problemet Spotify försöker lösa

Förenklat:

“Givet miljontals låtar och miljontals användare — vad ska just du vilja höra härnäst?”

Det är ett klassiskt ranking-problem.

Lite som:

  • YouTubes rekommendationer
  • TikToks feed
  • Amazons produktförslag
  • Netflix startsida

Fast för musik förstås.


Collaborative Filtering – “folk som gillar X gillar också Y”

Det här är en av de mest kända teknikerna.

Tanken är enkel:

Om:

  • användare A och B gillar mycket av samma musik
  • och A lyssnar på en artist som B aldrig hört

…då är sannolikheten hög att B också kommer gilla den artisten.

Man behöver alltså inte förstå själva musiken först.
Det räcker att analysera beteenden.

Förenklad datastruktur:

python id=”uxfw2r” users = { ”alice”: [”Radiohead”, ”Aphex Twin”, ”Massive Attack”], ”bob”: [”Radiohead”, ”Massive Attack”], }

Systemet ser:

  • hög överlappning
  • liknande smakprofil
  • potentiella rekommendationer

Det är i princip “nearest neighbors” fast för musiksmak.


Musik som vektorer

Spotify tittar inte bara på vem som lyssnar.

De analyserar också själva ljudet.

Varje låt kan beskrivas med siffror:

  • tempo
  • energi
  • dansbarhet
  • akustisk nivå
  • valence (hur “glad” låten känns)
  • instrumentalitet

Resultatet blir ungefär:

python id=”2w87eo” song = { ”tempo”: 128, ”energy”: 0.91, ”danceability”: 0.84, ”acousticness”: 0.02 }

Nu kan låtar representeras som vektorer i ett multidimensionellt rum.

Om två låtar ligger nära varandra matematiskt:

  • låter de ofta liknande
  • känns liknande
  • rekommenderas tillsammans

Det är egentligen bara geometri.


Embeddings: när AI lär sig musiksmak

Modern rekommendationsteknik använder ofta embeddings.

Istället för att hårdkoda regler låter man modellen lära sig relationer själv.

Exempel:

  • Radiohead kanske hamnar nära Portishead
  • Burial nära Aphex Twin
  • Meshuggah långt från Ed Sheeran

Inte för att någon programmerat det manuellt —
utan för att användarnas beteenden skapar mönstren.

Det liknar hur språkmodeller fungerar:
ord som används i liknande sammanhang hamnar nära varandra i vektorrum.

Spotify gör något liknande med musik.


Discover Weekly är egentligen ett ranking-system

Det räcker inte att hitta “liknande musik”.

Spotify måste också avgöra:

  • vad du sannolikt klickar på
  • vad du faktiskt lyssnar klart på
  • vad som inte känns repetitivt
  • hur mycket nytt vs bekant du vill ha

Det är därför rekommendationer känns personliga.

Två användare som gillar samma artist kan ändå få helt olika playlists.


Cold Start-problemet

Ett klassiskt problem i alla rekommendationssystem:

Hur rekommenderar man något när man inte har data ännu?

Exempel:

  • ny användare
  • ny artist
  • ny låt

Spotify löser detta med:

  • metadata
  • ljudanalys
  • populära låtar
  • onboarding-frågor
  • trenddata

Det är därför appen frågar vilka artister du gillar när du registrerar dig. Det ska tilläggas att artister vet om att det krävs många streams för att trigga igång de algoritmiska spellistorna och Spotify får på så vis får in data till rekommendationer på förhand.


Feedback-loopen

Varje gång du:

  • skippar en låt
  • sparar en låt
  • loopar en låt
  • lägger till i playlist
  • söker efter en artist

…tränar du systemet.

Du använder Spotify.

Spotify använder samtidigt dig som träningsdata.


Det mest programmeringslika med musikrekommendationer

Det intressanta är att Spotify egentligen inte “förstår” musik som människor gör.

Systemet ser:

  • sannolikheter
  • mönster
  • likheter
  • kluster
  • beteenden

Och ändå känns resultatet ofta mänskligt.

Det är kanske det mest fascinerande med modern programmering:
tillräckligt mycket data och tillräckligt bra modeller börjar skapa upplevelser som känns nästan intuitiva.

Inte för att maskinen har smak —
utan för att den blivit väldigt bra på att modellera vår.

Lyssna på Spotify

Nostalgi är som balsam för själen.
Campfire rock playlist
Lägereldslåtar!
Världens 25 bästa låtar spellista
Spellistan! 🏆

Kommentarer

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *