Univerzitet u Nišu, Elektronski fakultet
Završni rad
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi
Studijski program: Elektrotehnika i računarstvo · Modul: Računarstvo i informatika
Lazar Krstić, 19190Mentor: doc. dr Milena B. Frtunić Gligorijević
Realizacija: dvojezična veb aplikacija CineKros
Zadatak, cilj i rezultat
ZADATAK
Povezati slobodno iskazanu želju za filmom sa proverljivom pretragom kataloga.
CILJ
Preporuke poštuju zadate uslove, a prednost imaju filmovi bliži nameri.
REZULTAT
Dvojezična veb aplikacija nad 9.730 filmova, ispitana na srpskim i engleskim zahtevima.
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
2 / 18
Od namere do naslova: uslovi i preferencije
„Prikaži mi animirane ili fantastične filmove snimljene od 1988. do zaključno 2011. godine, u trajanju od 80 do zaključno 125 minuta, izvorno na japanskom jeziku. Više mi odgovaraju blag osećaj čudesnog i put ka samostalnosti.“
provera uslova
Obavezno:animacija ili fantastika, 1988–2011, 80–125 minuta, japanski.
Određuje prihvatljivost.
poređenje značenja
Preferencija:blag osećaj čudesnog i put ka samostalnosti.
Određuje redosled.
polazište
Tekuća poruka:bez istorije gledanja i trajnog profila.
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
3 / 18
Pristupi preporuci polaze od različitih dokaza
Kolaborativno filtriranje
korisnik–korisnik, stavka–stavka, faktorizacija matrice
Dokaz
Interakcije publike
Ograničenje
Retkost podataka, hladan početak
Ne koristi se: nema matrice korisnik–film
Sadržajno preporučivanje
srodnost sadržaja i interesovanja
Dokaz
Osobine i opis filma
Ograničenje
Zavisi od kvaliteta opisa
Koristi se: upit ↔ opis filma
Znanje i ograničenja
C = {i iz I | c1(i) ∧ c2(i) ∧ … ∧ cn(i)}
Dokaz
Eksplicitni uslovi
Ograničenje
Potrebni tačni atributi
Koristi se: obavezni uslovi
Za jednokratan zahtev raspoloživi su sam iskaz i katalog.
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
4 / 18
Leksičko i semantičko pronalaženje
Leksičko
Tokeni · TF–IDF · BM25
+ tačan izraz: naslov, ime, redak termin
− srodan sadržaj izražen drugim rečima
Semantičko
Upit i dokument → embedding vektori
+ srodan smisao bez istih reči
− bliskost temi nije logička provera
„sumoran“ ↔ „teško, beznadežno raspoloženje“blisko po smislu, bez zajedničkog tokena
„film bez nasilja“tekst o nasilju može biti blizak temi, a ne potvrđuje odsustvo
Poređenje ima smisla samo ako su vektori nastali istim modelom i postupkom.
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
5 / 18
Veliki jezički model kao parser prirodnog jezika
„pronađi francuski triler iz devedesetih do dva sata, sa Žanom Renoom, nešto mračno i atmosferično“
period
trajanje
jezik
žanr
uslovi
ton
semanticQuery
1. Oblik: čitljiv odgovor, ispravni tipovi i dozvoljene vrednosti
2. Doslednost sa pravilima aplikacije: granice, podržanost, protivrečnosti
Jezički model tumači poruku; pravila aplikacije i katalog određuju šta se izvršava.
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
6 / 18
Tehnologije i njihova uloga
klijent
React 19
TypeScript 6 · Vite 8
Korisnički interfejs: izbor jezika, upit i prikaz rezultata.
server
ASP.NET Core
.NET 10 · C#
API: provera tumačenja i izbor putanje pretrage.
udaljeni API
Gemini
gemini-3.1-flash-lite
REST poziv sa JSON šemom; tumači poruku, ne bira filmove.
lokalno
E5
multilingual-e5-base
Vektori upita i dokumenata; ONNX Runtime, INT8.
baza
PostgreSQL 17
relaciona baza
Katalog filmova i obavezni uslovi u SQL-u.
baza
pgvector
0.8.6
Kosinusna udaljenost nad vektorima od 768 dimenzija.
oflajn
Helsinki-NLP
opus-mt-en-sla
Predlozi prevoda 993 oznake na srpski; Python, CPU.
podaci
Tag Genome 2021
MovieLens 32M · TMDB
Filmovi, oznake, žanrovi, ocene, trajanje i jezik.
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
7 / 18
Katalog i dvojezični dokumenti nastaju pre pretrage
oflajn
Tag Genome 2021filmovi, oznake, režiser, cast
MovieLens 32Mžanrovi, prosečna ocena, broj ocena
TMDB, oflajn dopunatrajanje, originalni jezik, poster
Katalog9.730filmova
Nedostajuće vrednosti ostaju nepoznate.
EN dokumentsemanticText
rečnik oznaka993 prevoda
SR dokumentsemanticTextSr
istiE5encoder
ENembedding
SRembedding_sr
9.730 × 2 = 19.460 dokumentskih vektora
Dokument: naslov, godina, režiser i deset odabranih oznaka.
Glumci su u cast filteru, ne u semantičkom tekstu.
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
8 / 18
Tri režima pretrage
| Zahtev | Postupak | Poredak |
|---|---|---|
| Hard-only | Obavezni SQL uslovi | Broj ocena, ocena, ID |
| Semantic-only | Vektor opisne namere | Kosinusna udaljenost u celom katalogu |
| Hybrid | Uslovi i vektor namere | Kosinusna udaljenost među podobnim filmovima |
Hard-only preskače E5.
Filteri se ne ublažavaju radi duže liste.
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
9 / 18
Arhitektura razdvaja tumačenje, kodiranje i pretragu
Obavezno: uslovi
Rangiranje: semantika
Spoljni servis
Lokalna ispitana postavka
React UITypeScript
Vite
Vite
APIASP.NET Core
.NET 10
.NET 10
Gemini APIstrukturisano tumačenje
Backend validatorkanonski DTO · izbor putanje
poruka i jezik
checklist
alert parsera: bez E5 i pretrage filmova
semanticQuery
postoji?
postoji?
da
Jezički skupSR: ćirilica → latinica
Lokalni E5vektor upita
PostgreSQL 17 / pgvector 0.8.6
ne
Hybrid / semantic-only
eligibleuslovi
exactcosine
IDtie-break
LIMIT10
Hard-only
uslovi →metapodatkovni poredak
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
10 / 18
Gemini tumači poruku, backend proverava izlaz
Izvod iz stvarnog rezultata za zahtev sa početka (SR)
| Deo upita | Validirana vrednost |
|---|---|
| Žanr, bar jedan | genres.any = ["Animation", "Fantasy"] |
| Glumci, bar jedan | actors.any = ["Brad Pitt", "George Clooney"] |
| Isključeni glumci | actors.exclude = ["Julia Roberts", "Matt Damon"] |
| Semantic query | domišljati planovi i napeta atmosfera |
| Semantička namera | blag osećaj čudesnog i put ka samostalnosti |
Gemini ne bira filmove i ne generiše SQL.
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
11 / 18
SQL: od obaveznih uslova do deset rezultata
Stvarni upit za zahtev sa početka (SR), prelomljen u redove
WITH eligible AS MATERIALIZED ( SELECT … FROM movies WHERE genres @> @genresAll::text[] AND "cast" IS NOT NULL AND cardinality("cast") > 0 AND "cast" && @actorsAny::text[] AND NOT ("cast" && @actorsExclude::text[]) ) SELECT … FROM eligible AS e JOIN movie_embeddings AS me USING (movie_lens_id) ORDER BY me.embedding_sr <=> @queryVector ASC, e.movie_lens_id ASC LIMIT 10
Parametri
@genresAll = {Crime}@actorsAny = {Brad Pitt, George Clooney}@actorsExclude = {Julia Roberts, Matt Damon}@queryVector = 768 brojeva (E5)
9.730filmova
14podobnih
10preporuka
Uslovi određuju skup, vektor samo poredak unutar njega.
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
12 / 18
Kako E5 model pravi vektor
E5
EmbEddings from bidirEctional Encoder rEpresentations · MicrosoftModel: intfloat/multilingual-e5-base · višejezični transformer enkoder
query:tekst upita
tokenizacija
transformerenkoder
masked meanpooling
L2normalizacija
768brojeva
Sličnost upita q i dokumenta dcos(q,d) = q · d / (q d)udaljenost = 1 − cos(q,d)
OsnovaXLM-RoBERTa · 12 slojeva
Veličina≈ 0,3 milijarde parametara
Ulazdo 512 tokena · naši dokumenti do 126
Obučavanjekontrastivno, pa fino podešavanje
EN upit → embedding
SR upit: ćirilica → latinica → embedding_sr
bez mešanja lista
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
13 / 18
Ispitivanje i rezultat
Ispitano na 36 zahteva: 15 parova × 2 jezika i 6 kontrolnih.
Obavezni uslovi verno primenjeni u svih 30 SQL izvršavanja.
Poruka prihvatljivo protumačena u 34 od 36 slučajeva.
Relevantni: hard-only 75/77, hibridni 16/20 (SR) i 17/20 (EN).
!
Samo semantika: 8/30 relevantnih na oba jezika.
Tehnička ispravnost nije isto što i relevantnost; relevantnost je ručno procenio autor.
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
14 / 18
Dobar hibridni primer: blag osećaj čudesnog
„Prikaži mi animirane ili fantastične filmove snimljene od 1988. do zaključno 2011. godine, u trajanju od 80 do zaključno 125 minuta, izvorno na japanskom jeziku. Više mi odgovaraju blag osećaj čudesnog i put ka samostalnosti.“
Srpska lista
sličnost
1
Whisper of the Heart (1995)
0,7446
2
Akira Kurosawa's Dreams (1990)
0,7420
3
Spirited Away (2001)
0,7401
4
Ponyo (2008)
0,7370
5
After Life (1998)
0,7331
6
Little Nemo: Adventures in Slumberland (1992)
0,7330
7
Millennium Actress (2001)
0,7327
8
Grave of the Fireflies (1988)
0,7318
~
9
Howl's Moving Castle (2004)
0,7290
10
Mind Game (2004)
0,7282
Engleska lista
sličnost
1
Spirited Away (2001)
0,7660
2
Whisper of the Heart (1995)
0,7602
3
Evangelion: 1.0 You Are (Not) Alone (2007)
0,7542
~
4
Howl's Moving Castle (2004)
0,7536
5
Tekkonkinkreet (2006)
0,7525
~
6
Akira Kurosawa's Dreams (1990)
0,7523
7
Kiki's Delivery Service (1989)
0,7516
8
After Life (1998)
0,7513
9
Ponyo (2008)
0,7510
10
Millennium Actress (2001)
0,7504
dobar primer ~ delimično ili drugačiji ton promašaj · oznake izdvojene iz autorovog opšteg osvrta
Uslovi poštovani; vrh liste odgovara čudesnom i odrastanju, uz nekoliko mračnijih naslova.
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
15 / 18
Najslabiji primer: usamljenost na svemirskoj stanici
„Želim napetu priču o usamljenosti i izolaciji na udaljenoj svemirskoj stanici.“
Bez obaveznih uslova: o izboru odlučuje samo semantika
Srpska lista
sličnost
1
Far and Away (1992)
0,7737
2
Voices of a Distant Star (2003)
0,7735
~
3
District 9 (2009)
0,7708
4
Somewhere (2010)
0,7700
~
5
Morons From Outer Space (1985)
0,7695
6
Distant (2002)
0,7694
~
7
The Astronaut's Wife (1999)
0,7687
8
Storytelling (2001)
0,7684
9
Walking and Talking (1996)
0,7682
10
Lights in the Dusk (2006)
0,7663
Engleska lista
sličnost
1
The Station Agent (2003)
0,8107
2
Distant (2002)
0,8035
3
Elling (2001)
0,8021
~
4
The Tenant (1976)
0,7969
5
Voices of a Distant Star (2003)
0,7967
6
Kitchen Stories (2003)
0,7963
7
Castaway on the Moon (2009)
0,7959
~
8
May (2002)
0,7954
9
Carriers (2009)
0,7941
10
Ikiru (1952)
0,7933
dobar primer ~ delimično ili drugačiji ton promašaj · oznake izdvojene iz autorovog opšteg osvrta
Obe liste ocenjene kao slabe: usamljenost i svemir nisu povezani u jednu temu.
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
16 / 18
Video demonstracija aplikacije
izbor jezika
upit
rezultati
IMDb stranica
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
17 / 18
Zaključak
Realizovan je i proveren dvojezični sistem koji prirodnojezički zahtev pretvara u proverljive uslove i semantičko rangiranje.
Uslovi određuju šta je dozvoljeno, a semantika šta je bliže želji.
Dalji razvoj
prag sličnosti
bogatiji opis radnje
režiser kao uslov
veći korpus i nezavisni ocenjivači
Hvala na pažnji.
Sistemi preporuka filmova zasnovani na velikim jezičkim modelima i semantičkoj pretrazi — Odbrana završnog rada
18 / 18