Eksamenssett logo
eksamenssett.noTren målrettet
  • Ungdomsskole/VGS
  • Høyskole
  • Ressurser
  • Privatundervisning
  • Kontakt
eksamenssett.noTren målrettet

Komplett samling av eksamensoppgaver og løsninger for norsk skole.

Om ossPrivatundervisningPriserSlik bruker du sidenFAQPersonvernVilkårAngrerettKontaktKI-deklarasjon

© 2026 Eksamenssett.no · Alle rettigheter forbeholdt

Innholdet er utviklet med KI og kvalitetssikres kontinuerlig – av modellene, og ved at våre tusenvis av brukere kan melde fra om feil. Slik jobber vi med kvalitet →

Eksamenssett.no eies og drives av Studenthjelp Privatundervisning AS

Org.nr. 913 117 387 (Foretaksregisteret) · Aksel Olsens vei 10B, 1597 Moss · Ikke MVA-registrert

Eksamenssett logo
eksamenssett.noTren målrettet
  • Ungdomsskole/VGS
  • Høyskole
  • Ressurser
  • Privatundervisning
  • Kontakt
eksamenssett.noTren målrettet

Komplett samling av eksamensoppgaver og løsninger for norsk skole.

Om ossPrivatundervisningPriserSlik bruker du sidenFAQPersonvernVilkårAngrerettKontaktKI-deklarasjon

© 2026 Eksamenssett.no · Alle rettigheter forbeholdt

Innholdet er utviklet med KI og kvalitetssikres kontinuerlig – av modellene, og ved at våre tusenvis av brukere kan melde fra om feil. Slik jobber vi med kvalitet →

Eksamenssett.no eies og drives av Studenthjelp Privatundervisning AS

Org.nr. 913 117 387 (Foretaksregisteret) · Aksel Olsens vei 10B, 1597 Moss · Ikke MVA-registrert

Eksamenssett logo
eksamenssett.noTren målrettet
  • Ungdomsskole/VGS
  • Høyskole
  • Ressurser
  • Privatundervisning
  • Kontakt
eksamenssett.noTren målrettet

Komplett samling av eksamensoppgaver og løsninger for norsk skole.

Om ossPrivatundervisningPriserSlik bruker du sidenFAQPersonvernVilkårAngrerettKontaktKI-deklarasjon

© 2026 Eksamenssett.no · Alle rettigheter forbeholdt

Innholdet er utviklet med KI og kvalitetssikres kontinuerlig – av modellene, og ved at våre tusenvis av brukere kan melde fra om feil. Slik jobber vi med kvalitet →

Eksamenssett.no eies og drives av Studenthjelp Privatundervisning AS

Org.nr. 913 117 387 (Foretaksregisteret) · Aksel Olsens vei 10B, 1597 Moss · Ikke MVA-registrert

Eksamenssett logo
eksamenssett.noTren målrettet
  • Ungdomsskole/VGS
  • Høyskole
  • Ressurser
  • Privatundervisning
  • Kontakt
  1. Hjem
  2. Høyskole
  3. NTNU
  4. TDT4215
  5. Studieguide
TDT4215 · NTNU

Studieguide for TDT4215 Anbefalingssystemer

Komplett pensumoversikt for anbefalingssystemer ved NTNU — med forklaringer, sentrale begreper, eksamenstips og vanlige fallgruver. Eksamensoptimalisert basert på tidligere eksamener.

Innhold

  • Introduksjon
  • Innholdsbasert filtrering
  • Kollaborativ filtrering
  • Hybride anbefalingssystemer
  • Evaluering og ytelsesmål
  • Utforsking versus utnytting
  • Kontekstbevisste anbefalingssystemer
  • Personalisering og brukerprofiler
  • Naturlig språkbehandling for anbefalinger
  • Generativ AI og store språkmodeller i anbefalinger
  • Multi-objektiv optimalisering
  • Etiske og samfunnsmessige aspekter
  • Skalerbarhet og systemarkitektur
  • Eksamensstrategi
  • Formelark

Introduksjon

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.

Innholdsbasert filtrering

Eksamensrelevant

Anbefaling basert på egenskaper ved elementer og brukerprofiler bygget fra historisk interaksjon.

Grunnideen

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»).

Representasjon av elementer

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 iii representeres som xi∈Rd\mathbf{x}_i \in \mathbb{R}^dxi​∈Rd der ddd er antall egenskaper.

Brukerprofil

Brukerprofilen pu\mathbf{p}_upu​ er et vektet snitt av egenskapsvektorene til elementer brukeren har samhandlet med, vektet etter brukerens rating: pu=∑i∈Iurui⋅xi∑i∈Iurui\displaystyle \mathbf{p}_u = \frac{\sum_{i \in I_u} r_{ui} \cdot \mathbf{x}_i}{\sum_{i \in I_u} r_{ui}}pu​=∑i∈Iu​​rui​∑i∈Iu​​rui​⋅xi​​ der IuI_uIu​ er mengden av elementer brukeren uuu har vurdert og ruir_{ui}rui​ er ratingen.

Likhetsmål — kosinuslikhet

Kosinuslikhet er det vanligste likhetsmålet i CB: cos(a,b)=a⋅b∥a∥⋅∥b∥\displaystyle \text{cos}(\mathbf{a}, \mathbf{b}) = \frac{\mathbf{a} \cdot \mathbf{b}}{\|\mathbf{a}\| \cdot \|\mathbf{b}\|}cos(a,b)=∥a∥⋅∥b∥a⋅b​. 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.

Eksempel — Kosinuslikhet mellom brukerprofil og filmelement

Brukerprofil p=[0.8,0.2,0.0]\mathbf{p} = [0.8, 0.2, 0.0]p=[0.8,0.2,0.0] (action, komedie, drama). Element x=[1.0,0.0,0.0]\mathbf{x} = [1.0, 0.0, 0.0]x=[1.0,0.0,0.0] (ren action-film). cos=0.8⋅1.00.68⋅1.0≈0.97\displaystyle \text{cos} = \frac{0.8 \cdot 1.0}{\sqrt{0.68} \cdot 1.0} \approx 0.97cos=0.68​⋅1.00.8⋅1.0​≈0.97. Høy likhet — action-filmen passer godt til profilen.

TF-IDF for tekstbasert CB

Når elementbeskrivelsene er tekst (artikler, produktbeskrivelser), brukes TF-IDF til å lage vektorer: TF-IDF(t,d)=ft,d∑kfk,d⋅log⁡Ndft\displaystyle \text{TF-IDF}(t, d) = \frac{f_{t,d}}{\sum_k f_{k,d}} \cdot \log\frac{N}{df_t}TF-IDF(t,d)=∑k​fk,d​ft,d​​⋅logdft​N​ der ft,df_{t,d}ft,d​ er antall forekomster av term ttt i dokument ddd, NNN er totalt antall dokumenter, og dftdf_tdft​ er antall dokumenter som inneholder ttt. TF-IDF gir høy vekt til termer som er vanlige i dokumentet men sjeldne i korpuset.

Diskriminerende ord — Gini-indeks

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 www måler hvor «ren» ratingfordelingen er blant elementene som inneholder ordet: Gini(w)=1−∑j=1tpj(w)2\displaystyle \text{Gini}(w) = 1 - \sum_{j=1}^{t} p_j(w)^2Gini(w)=1−j=1∑t​pj​(w)2, der pj(w)p_j(w)pj​(w) er andelen elementer med rating-verdi jjj (f.eks. interessant / ikke-interessant) blant elementene som inneholder www. Lav Gini betyr at ordet er sterkt diskriminerende (nær 0 = perfekt skille); høy Gini (nær 1−1/t1-1/t1−1/t) betyr at ordet er lite informativt.

Eksempel — Gini-indeks for tre nøkkelord

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 (p=0.8/0.2p=0.8/0.2p=0.8/0.2). Ord «Beta»: 2 av 6 interessante (p≈0.33/0.67p\approx 0.33/0.67p≈0.33/0.67). Ord «Gamma»: 5 av 8 interessante (p=0.625/0.375p=0.625/0.375p=0.625/0.375).
Gini(Alfa)=1−(0.82+0.22)=0.32\text{Gini}(\text{Alfa}) = 1-(0.8^2+0.2^2)=0.32Gini(Alfa)=1−(0.82+0.22)=0.32
Gini(Beta)=1−(0.332+0.672)≈0.44\text{Gini}(\text{Beta}) = 1-(0.33^2+0.67^2)\approx 0.44Gini(Beta)=1−(0.332+0.672)≈0.44
Gini(Gamma)=1−(0.6252+0.3752)≈0.47\text{Gini}(\text{Gamma}) = 1-(0.625^2+0.375^2)\approx 0.47Gini(Gamma)=1−(0.6252+0.3752)≈0.47
«Alfa» har lavest Gini og er derfor det mest diskriminerende (mest interesse-bærende) ordet for denne brukeren.

k-NN-klassifisering og tekstforbehandling

Innholdsbasert anbefaling kan implementeres som k-NN-klassifisering: representer hvert element som en termvektor og klassifiser et nytt element etter de kkk nærmeste naboene. Tekstforbehandling påvirker resultatene:

  • Stoppordfjerning gjør dokumenter mer ulike (fjerner felles «støy») — øker typisk recall og senker presisjon.
  • Stemming/lemmatisering gjør dokumenter mer like (slår sammen bøyningsformer) — øker recall, senker presisjon, og krymper ordboken.
  • Frasekstraksjon gjør dokumenter mer ulike (mer spesifikke trekk).
  • Stoppordfjerning og lemmatisering reduserer ordbokstørrelsen og dermed beregningskompleksiteten. k-NN kan ytterligere akselereres med klyngebasert (clustering) forhåndsfiltrering.

Fordeler og begrensninger

  • Fordel: Ingen kaldstartproblem for nye elementer (trenger bare egenskapsvektoren).
  • Fordel: Forklarbar — «anbefalt fordi du likte filmer med egenskapene X».
  • Fordel: Ingen privat data om andre brukere trengs.
  • Begrensning: Overspecialisering (serendipity-problem) — systemet anbefaler bare mer av det samme, brukeren oppdager aldri ny sjanger.
  • Begrensning: Kaldstartproblem for nye brukere — ingen historikk = ingen profil.
  • Begrensning: Feature engineering er krevende — kvaliteten avhenger av om egenskapene er godt valgt.

Nøkkelformler

  • •Kosinuslikhet: cos⁡(a,b)=a⋅b∥a∥⋅∥b∥\displaystyle \cos(\mathbf{a}, \mathbf{b}) = \frac{\mathbf{a} \cdot \mathbf{b}}{\|\mathbf{a}\| \cdot \|\mathbf{b}\|}cos(a,b)=∥a∥⋅∥b∥a⋅b​ — mellom -1 og 1, brukes til å sammenligne brukerprofil med element
  • •Brukerprofil: pu=∑i∈Iuruixi∑i∈Iurui\displaystyle \mathbf{p}_u = \frac{\sum_{i \in I_u} r_{ui} \mathbf{x}_i}{\sum_{i \in I_u} r_{ui}}pu​=∑i∈Iu​​rui​∑i∈Iu​​rui​xi​​ — vektet snitt av elementvektorer
  • •TF-IDF: TF-IDF(t,d)=ft,d∑kfk,d⋅log⁡Ndft\displaystyle \text{TF-IDF}(t,d) = \frac{f_{t,d}}{\sum_k f_{k,d}} \cdot \log\frac{N}{df_t}TF-IDF(t,d)=∑k​fk,d​ft,d​​⋅logdft​N​ — vekt for term i dokument
  • •Gini-indeks: Gini(w)=1−∑j=1tpj(w)2\text{Gini}(w) = 1 - \sum_{j=1}^{t} p_j(w)^2Gini(w)=1−∑j=1t​pj​(w)2 — lav verdi = sterkt diskriminerende ord/egenskap
  • •Euklidsk avstand: d(a,b)=∑i(ai−bi)2d(\mathbf{a}, \mathbf{b}) = \sqrt{\sum_i (a_i - b_i)^2}d(a,b)=∑i​(ai​−bi​)2​ — alternativt likhetsmål

Vanlige feil

  • ⚠️Forveksler innholdsbasert filtrering med kollaborativ — CB bruker kun egenskaper ved elementene, ikke andre brukeres ratings
  • ⚠️Glemmer å normalisere vektorer før kosinuslikhet — unnlatelse gir feil svar når vektorlengdene varierer
  • ⚠️Tror CB løser kaldstartproblemet for nye brukere — CB løser det for nye elementer, men nye brukere uten historikk har fortsatt ingen profil
  • ⚠️Forveksler Pearson-korrelasjon og kosinuslikhet — Pearson mean-sentrerer vektorene, kosinuslikhet gjør det ikke
  • ⚠️Tolker Gini-indeksen baklengs — LAV Gini betyr mest diskriminerende ord (rett rating-fordeling), ikke høy
  • ⚠️Tror stoppordfjerning og stemming øker presisjon — de øker recall men senker typisk presisjon
  • ⚠️Glemmer at overspecialisering (filter bubble) er en iboende svakhet i ren CB

Eksamenstips

  • 💡Vær klar til å beregne kosinuslikhet for hånd — vanlig eksamensoppgave. Husk å dele på produktet av normene
  • 💡Øv på Gini-indeks-oppgaver: tell forekomster per rating-klasse, regn pjp_jpj​, sett inn i 1−∑pj21-\sum p_j^21−∑pj2​, og pek ut ordet med lavest Gini som mest diskriminerende
  • 💡Kunn å resonnere om hvordan stoppordfjerning, stemming og frasekstraksjon påvirker k-NN (likhet, presisjon/recall, ordbokstørrelse) og hvordan clustering reduserer k-NN-kompleksiteten
  • 💡Kjenn forskjellen mellom kaldstartproblem for nye brukere vs. nye elementer — CB løser bare det sistnevnte
  • 💡TF-IDF er koblingen mellom NLP og CB — forstå hvorfor IDF-delen reduserer vekten til vanlige ord
  • 💡Eksamensspørsmål sammenligner gjerne CB med kollaborativ filtrering — hav klar en tabell med fordeler/ulemper for begge

Laster...

Laster…
eksamenssett.noTren målrettet

Komplett samling av eksamensoppgaver og løsninger for norsk skole.

Om ossPrivatundervisningPriserSlik bruker du sidenFAQPersonvernVilkårAngrerettKontaktKI-deklarasjon

© 2026 Eksamenssett.no · Alle rettigheter forbeholdt

Innholdet er utviklet med KI og kvalitetssikres kontinuerlig – av modellene, og ved at våre tusenvis av brukere kan melde fra om feil. Slik jobber vi med kvalitet →

Eksamenssett.no eies og drives av Studenthjelp Privatundervisning AS

Org.nr. 913 117 387 (Foretaksregisteret) · Aksel Olsens vei 10B, 1597 Moss · Ikke MVA-registrert