Komplett pensumoversikt for anbefalingssystemer ved NTNU — med forklaringer, sentrale begreper, eksamenstips og vanlige fallgruver. Eksamensoptimalisert basert på tidligere eksamener.
Innhold
Denne studieguiden dekker hele pensum i TDT4215 Anbefalingssystemer (Recommendation Systems) ved NTNU. Emnet gir en grundig innføring i algoritmer og systemer for automatiske anbefalinger — fra klassisk kollaborativ filtrering og innholdsbaserte metoder til moderne kontekst- og AI-baserte tilnærminger (7,5 studiepoeng, masternivå).
Eksamen er en 4-timers skriftlig skoleeksamen i Inspera med hjelpemiddelkode D. Du forventes å kunne forklare og sammenligne algoritmer, gjennomføre manuelle beregninger (kosinuslikhet, RMSE, UCB-skår osv.), og resonnere om etikk og systemdesign.
Emnet dekker tolv sentrale temaer: innholdsbasert filtrering, kollaborativ filtrering, hybride systemer, evalueringsmål, explore-exploit-avveiningen, kontekstbevisste systemer, personalisering og brukerprofiler, NLP for anbefalinger, generativ AI og LLM-er, multi-objektiv optimalisering, etiske aspekter og skalerbar systemarkitektur.
Anbefalingssystemer er en disiplin i krysningspunktet mellom maskinlæring, informasjonsgjenfinning og menneskelig interaksjon. Spotify anbefaler musikk, Netflix anbefaler filmer, Amazon anbefaler produkter — alle bruker varianter av metodene du lærer i dette emnet.
Anbefaling basert på egenskaper ved elementer og brukerprofiler bygget fra historisk interaksjon.
Innholdsbasert filtrering (content-based filtering, CB) anbefaler elementer som ligner på det brukeren har likt tidligere. Systemet representerer hvert element som en vektor av egenskaper (features), bygger en brukerprofil fra brukerens historikk, og beregner likhet mellom profilen og ubesøkte elementer.
Fordelen er at metoden er uavhengig av andre brukere — den fungerer for nye brukere med litt historikk og er fullt forklarbar («vi anbefaler dette fordi du likte X som har egenskapene Y og Z»).
Elementer kodes som vektorer. For en filmapplikasjon kan vektoren inneholde: sjanger (action=1/0, komedie=1/0, ...), regissør (one-hot), skuespillere, produksjonsår (normalisert), spilletid. For nyhetsartikler brukes typisk TF-IDF-vektorer over ord.
Formell notasjon: element representeres som der er antall egenskaper.
Brukerprofilen er et vektet snitt av egenskapsvektorene til elementer brukeren har samhandlet med, vektet etter brukerens rating: der er mengden av elementer brukeren har vurdert og er ratingen.
Kosinuslikhet er det vanligste likhetsmålet i CB: . Verdien ligger mellom -1 og 1 (for enhetsvektorer: 0 til 1). Resultatet er uavhengig av vektorenes lengde — to dokumenter med samme innhold men ulikt antall ord gir kosinuslikhet 1.
Brukerprofil (action, komedie, drama). Element (ren action-film). . Høy likhet — action-filmen passer godt til profilen.
Når elementbeskrivelsene er tekst (artikler, produktbeskrivelser), brukes TF-IDF til å lage vektorer: der er antall forekomster av term i dokument , er totalt antall dokumenter, og er antall dokumenter som inneholder . TF-IDF gir høy vekt til termer som er vanlige i dokumentet men sjeldne i korpuset.
I innholdsbaserte systemer vil vi velge ut ord/egenskaper som best skiller mellom relevante og ikke-relevante elementer for en bruker. Gini-indeksen for et ord måler hvor «ren» ratingfordelingen er blant elementene som inneholder ordet: , der er andelen elementer med rating-verdi (f.eks. interessant / ikke-interessant) blant elementene som inneholder . Lav Gini betyr at ordet er sterkt diskriminerende (nær 0 = perfekt skille); høy Gini (nær ) betyr at ordet er lite informativt.
Et nyhetssystem teller hvor ofte tre ord opptrer i saker brukeren har merket som interessant/ikke-interessant. Ord «Alfa» opptrer i 5 saker: 4 interessante, 1 ikke (). Ord «Beta»: 2 av 6 interessante (). Ord «Gamma»: 5 av 8 interessante ().
«Alfa» har lavest Gini og er derfor det mest diskriminerende (mest interesse-bærende) ordet for denne brukeren.
Innholdsbasert anbefaling kan implementeres som k-NN-klassifisering: representer hvert element som en termvektor og klassifiser et nytt element etter de nærmeste naboene. Tekstforbehandling påvirker resultatene:
Nøkkelformler
Vanlige feil
Eksamenstips
Laster...