Et Albatros forløb om repræsentativitet og maskinlæring

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.

Materialer til forløbet

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

I klassen

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.

01 / 01

Øvelse 1: Disney+ anbefaler

Lav opgaverne på første side af elevarkene.

Klip de film fra side 2 af elevarkene ud, som I skal bruge.

Mens I klipper skal I diskutere følgende spørgsmål:

  • Hvordan finder en streamingtjeneste ud af, hvad den skal anbefale?
  • Hvorfor får man nogle gange anbefalet noget, man ikke ville se?
  • Hvorfor får man tit flere og flere anbefalinger, der ligner hinanden?
  • Hvilke apps giver de bedste og de dårligste anbefalinger?

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

01 / 02

Øvelse 2: Lav jeres egen K-NN anbefaling

I skal nu i par bruge side 3 og 4 af elevarkene, til at lave jeres egne anbefalinger med K-NN.

Start med at vælge 10 af jeres yndlingsfilm (eller 10 Disney film) og skriv deres titel i tabellen på side 3.

I skal herefter vurdere mængden af hhv. kærlighed og action i hver af filmene på en skala fra 1 til 10 (hvor 1 er mindst og 10 er mest).

Skriv jeres vurderinger i den højre kolonne af tabellen.

Øvelse 2: Lav jeres egen K-NN anbefaling

I skal nu indsætte jeres vurderinger som punkter i et to-dimensionelt koordinatsystem.

Brug koordinatsystemet på side 4 og indsæt jeres valgte film som punkter.

 

Når I har indsat alle filmene i koordinatsystemet er jeres datasæt klar!

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.

Eksempel: Afstanden mellem to film

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.

01 / 02

Øvelse 3: Hvilken film bliver anbefalet?

I skal nu vælge den af filmene i jeres koordinatsystem som I har set for nylig.

Brug Pythagoras Læresætning til at regne afstanden fra denne film til alle de andre film i koordinatsystemet.

Øvelse 3: Hvilken film bliver anbefalet?

Svar nu på de følgende spørgsmål

  • Hvilke 3 film ligger tættest på?
  • Synes I at det nærmeste punkt er den bedste anbefaling?

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

Denne kategori beskriver hvor glad eller positiv sangen lyder
En sang med høj happiness vil lyde lys og glas
Måles på en skala fra 1-10

Danceability

Beskriver hvor god sangen er at danse til
Ting som tempo og klar rytme tæller her
Måles også på en skala fra 1-10

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:

  1. GeoGebra

Vi har også forberedt et regneark til jer:

  1. Regneark til dataopsamling
01 / 04

Øvelse 4: Hvilken sang bliver anbefalet?

I skal nu bruge A-NN algoritmen til at finde anbefalinger.

  • Åbn GeoGebra filen og vælg en sang. Måske det nummer I hørte sidst.
  • Gør punktet rødt.

 

Øvelse 4: Hvilken sang bliver anbefalet?

Åbn regnearket.

  • Tag fat i hjørnet af B1 og træk hen til K1.
  • Tag fat i hjørnet af L2 og træk ned til L20.
  • Klik på en af sangtitlerne og tryk på fanen indsæt og vælg tabel. Hvis hele tabelområdet bliver markeret, trykker I OK. Tabellen skifter udseende.

Øvelse 4: Hvilken sang bliver anbefalet?

Sorter sangene alfabetisk og noter hvilke sange der lander i samme felt som det røde punkt.

  • Tryk på pilen ved siden af SANG i celle A1 og vælg sorter fra A til Å.
  • Sæt kryds ved de sange, der ligger i samme felt som det røde punkt i GeoGebra.
  • Opdater felterne i GeoGebra 10 gange og sæt krydser i regnearket hver gang.
  • Regnearket tæller selv krydserne for hver sang.

Øvelse 4: Hvilken sang bliver anbefalet?

  • Når I er færdige med optællingen, trykker I på pilen i celle L1, og vælger Sorter med største først.
  • Det punkt, som ligger øverst, er jeres anbefaling.

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

01 / 03

Variation i anbefalinger

Rasmus Pagh har udtalt: “Det er ønskeligt at anbefale brugeren noget, der minder om emnet, de kigger på, men også noget, der kan give dem et andet perspektiv.”

    • Hvordan kan det opnås med de anbefalingsalgoritmer vi har lært om ?

Betydningen for nye kunstnere

Spotify anbefaler musik, som brugere med samme smag som dig godt kan lide.​

    • Hvad kan det betyde for nye ukendte kunstnere?

Betydningen for nye kunstnere

Du er ny kunstner og udgiver et nummer med Danceability på 2 (svarende til 20% på nedenstående diagram).​
Brug det, I har lært om K-NN og A-NN og nedenstående diagram til at diskutere følgende spørgsmål:

    • Hvor mange andre numre ligner din musik?​

    • Hvor ofte vil du blive foreslået?​

    Tak for denne gang!