Hvordan ved din streamingtjeneste hvad du vil se?
Du har sikkert prøvet, at en streamingtjeneste anbefaler dig en film, en serie eller en sang. Nogle gange rammer den plet, andre gange rammer den helt ved siden af. Men hvordan kan en algoritme egentlig gætte, hvad du gerne vil se eller høre? I dette forløb skal I undersøge, hvordan anbefalinger bliver til, og hvad der sker, når teknologi forsøger at forudsige jeres smag.
Print et elevark per 2 elever
Overblik
Mød forskeren
K-NN algoritmen
A-NN algoritmen
Opsamling i klassen
Det lærer du
- At beregne afstanden mellem to punkter i et koordinatsystem
- At opsamle og sortere data i et regneark
- At forstå og beskrive to af de anbefalingsalgoritmer som bruges hos streaming tjenester; K-NN og A-NN
- At omdanne sange eller film til punkter i et koordinatsystem
Del 1: Mød forskeren
Rasmus Pagh
Rasmus Pagh er professor i datalogi på Københavns Universitet.
Han forsker i datasikkerhed og maskinlæring, her i blandt hvordan algoritmer og datastrukturer fungerer.
Denne forskning har blandt andet gået ud på at undersøge hvordan anbefalingsalgoritmer fungerer og hvilke der er mest fair.
I skal nu i par lave en opgave som sætter jeres intuition omkring anbefalinger på prøve og diskutere hvordan streaming tjenester giver anbefalinger.
I skal bruge side 1 og 2 af de elevark jeres lærer udleverer.
Opsamling i klassen
- Snak om hvilke anbefalinger I har valgt og hvorfor.
- På hvilke punkter ligner de film, I har valgt, den film, hhv. Lucca eller Charlie har set på forhånd?
Del 2: K-NN algoritmen
En af de algoritmer, der kan bruges til at finde anbefalinger hedder K-NN. I skal nu se en video om hvordan denne algoritme fungerer:
I skal nu i klassen diskutere følgende spørgsmål:
- Forklar med egne ord hvad K-NN-algoritmen gør, og hvordan den kan bruges til at lave anbefalinger? Tegn evt. et koordinatsystem på tavlen og gennemgå hvordan algoritmen virker.
- Hvad betyder K?
- I eksemplet bliver der kun brugt 2 akser til at beskrive filmene, hvad ville der ske med algoritmens evne til at anbefale film hvis man brugte flere akser?
Lav film om til punkter i et koordinatsystem
Afstand mellem punkter i et koordinatsystem
Når I er færdige med øvelse 2, er jeres datasæt klar til at blive regnet på.
K-NN algoritmen bruger afstandene mellem punkterne i koordinatsystemet (datasættet) til at finde dem som ligger tættest og dermed ligner hinanden mest. Men hvordan finder man afstanden mellem punkter i et koordinatsystem?
For mennesker kan det være relativt nemt at se hvilke film der ligger tæt på hinanden i koordinatsystemet. Men da en computer ikke kan ‘se’ koordinatsystemet, er den nødt til at beregne afstanden mellem filmen og ALLE andre punkter i koordinatsystemet.
Det kan den gøre ved at bruge Pythagoras kendte læresætning a2 + b2 = c2.
Her er et eksempel på hvordan man kan udregne afstanden mellem 2 film i jeres koordinatsystem.
Filmen ‘De utrolige’ kan ligge omkring 2 på kærlighedsskalaen og 8 på actionskalaen.
Det vil give filmen koordinaterne (2,8). Vi kan kalde dette punkt i koordinatsystemet A.
Filmen ‘Skønheden og udyret’ kan ligge omkring 9 på kærlighedsskalaen og 3 på actionskalaen.
Vi kalder filmen B den får koordinaterne (9,3). Koordinatsystemet med begge film vil se sådan her ud:

For at bruge Pythagoras Læresætning, kan vi indtegne en retvinklet trekant mellem punkterne. For at finde afstanden mellem A og B skal vi dermed finde længden af linjestykke c (også kaldet hypotenusen):

Pythagoras Læresætning (a2 + b2 = c2) fortæller os, at længden af hypotenusen c kan findes ved brug af linjestykkerne a og b. Vi skal derfor først finde længderne af a og b.
Længden af a, er film B’s x koordinat, som er 9, minus film A’s x koordinat, som er 2. Derfor er a = 9 – 2 = 7.
Det samme gør vi for at finde længden af linjestykket b. b = 8 – 3 = 5.

Nu kan vi bruge Pythagoras Læresætning til at finde længden af c.
Vi indsætter længderne af a og b i Pythagoras Læresætning: 72 + 52 = c2
Vi tager kvadratroden: √(72 + 52) = c.
Vi kan nu udregne c: √(72 + 52) = √(49 + 25) = √(74) = 8,6 = c.
Afstanden mellem de to film er altså 8,6.
Prøv K-NN algoritmen
Nu skal i bruge Pythagoras Læresætning til at lave en anbefaling ud fra de film I har sat i jeres koordinatsystem.
K-NN algoritmen i praksis – Opsamling i klassen
- Hvordan gik det med at regne afstanden mellem punkterne?
- Syntes I, at anbefalingerne var gode?
K-NN algoritmen er en meget præcis metode til at finde de punkter som ligger tættest i koordinatsystemet.
Hvis vores datasæt indeholder mange tusinder eller millioner af punkter og hvis vi bruger mere end bare 2 dimensioner til at beskrive punkterne, skal algoritmen lave den samme beregning rigtig mange gange hvilket kan gøre den langsom. Derfor arbejder dataloger som Rasmus Pagh aktivt på at udvikle nye algoritmer, som kan det samme som K-NN, bare hurtigere. En af disse skal vi kigge nærmere på nu.
Del 3: A-NN algoritmen
A-NN står for ‘Approximate Nearest Neighbor’ og betyder altså at den tilnærmer (approximerer) sig frem til det nærmeste punkt i koordinatsystemet. Dette gør den mindre præcis, men i store datasæt er den meget hurtigere end K-NN.
Se denne video for at høre mere om A-NN algoritmen:
I skal nu i klassen diskutere følgende spørgsmål:
- Forklar med egne ord hvad A-NN-algoritmen gør, og hvordan den kan bruges til at lave anbefalinger?
- Hvorfor kan man ikke være helt sikker på at A-NN algoritmen finder de nærmeste naboer?
Anbefalinger på Spotify
På musiktjenesten Spotify findes der over 100 millioner sange. Der skal derfor en effektiv anbefalings-algoritme til for at din hjemmeskærm på Spotify kan genereres på et split-sekund.
Dette gøres ved, at hver enkelt sang får værdier indenfor bestemte kategorier. Der er mange forskellige kategorier, men i dette forløb fokuserer vi på to:
Happiness
Danceability
Prøv A-NN algoritmen
Vi har fundet et datasæt med de mest afspillede sange på Spotify i 2023. Datasættet er filtreret så det kun er sange med titler på ét ord som er udgivet af én kunstner der er med.
Sangene er lagt ind i et koordinatsystem efter deres Happiness og Danceability. Dette koordinatsystem kan findes i denne GeoGebra fil:
Vi har også forberedt et regneark til jer:
Snak i grupper
- Hvilken sang valgte I?
- Er A-NN-algoritmens anbefaling faktisk den sang, der ligger nærmest?
- Kunne nummer 2 eller 3 på listen være en ligeså god anbefaling?
- Hvad skulle mon være anderledes hvis anbefalingerne skulle være endnu bedre?
Hurtig optælling i klassen: Var A-NN anbefalingen faktisk det punkt der lå tættest på?
Del 4: Opsamling i klassen
Tak for denne gang!
