Priporočilni sistemi
Več o priporočilnih sistemih ter izvedbi in ozadju učne ure "Priporočilni sistem za risanke".
Stran vsebuje dodatno gradivo za učitelje, ki želijo izvesti učno uro Priporočilni sistem za risanke. Ura je zasnovana tako, da učenci brez računalnika izmerijo podobnost svojih okusov za risanke in si na podlagi tega oblikujejo priporočila.
- O priporočilnih sistemih predstavi osnovno idejo priporočilnih sistemov z nekaj mislimi, ki so lahko primerne za uvod v učno uro.
- Spletna stran za vnos podatkov: več podrobnosti o pripravi spletne strani za vnos podatkov, predvsem o tem, kako lahko, če želimo, pripravimo svoje podatke.
- Več o izvedbi z računalnikom opisuje delotok v za program Orange. Če želimo vključiti računalnik, lahko sicer uporabimo že pripravljen delotok, ki ne zahteva poznavanja programa; tule opišemo detajle za tiste, ki bi jih zanimalo, kaj počnejo posamični deli delotoka.
- Ozadje za vedoželjnejše: več o priporočilnih sistemih, za učitelje, ki bi radi — kot pravi prof. Rajkovič — zajemali iz malo večje sklede.
Umestitev v predmetnik
Aktivnost se spogleduje z matematiko: saj učenci iščejo preseke množic. Če želimo več matematike, lahko zahteva tudi unije in še pisno deljenje z decimalkami. Poleg tega rišemo sociogramom podobne grafe; ti sicer najbrž niso in ne bodo del osnovnošolskega kurikula, vendar v osnovi predstavljajo relacije in so v ozadju marsikatere matematične snovi.
Zaradi same tematike - priporočilni sistemi - očitno sodi tudi v računalništvo in informatiko.
Aktivnost je možno povezati z drugimi predmeti, če namesto risank ali glasbenikov izbirajo druge stvari, na primer najljubše knjige. Zanimiva je tudi kot skupinska aktivnost, "okusogram" za celoten razred pa lahko včasih jemljemo kot približek sociograma — v meri, v kateri se podobnost okusov pokriva z druženjem.
Gradivo nastaja v okviru projekta DALI4US.


Poglavje 1: O priporočilnih sistemih
Zanimivo dejstvo: GPS mora upoštevati relativnostno teorijo. Ker so sateliti dalj od središča Zemlje kot sprejemniki, je tam gravitacija nižja in njihove ure tečejo hitreje. Razlika je +45.8 μs na dan! Čeprav signali potujejo s svetlobno hitrostjo, v času, ki bi ga povzročila napaka enega samega dneva, prepotujejo že dober meter.
Ko je napisal, da je "vsaka dovolj napredna tehnologija neločljiva od magije," je imel Arthur C. Clarke bržkone prav. Če si le ni predstavljal, da nas bo ta magija kaj pretirano čudila, pretresala ali celo strašila, saj bi se v tem primeru — motil. Vsako dovolj razširjeno tehnologijo hitro vzamemo za samoumevno. Ko postane del življenja, nikogar ne zanima, ali se za njo skrivajo polprevodniki ali magični uroki. Da telefon na nekaj metrov natančno ve, kje smo (in to celo stalno deli z našimi bližnjimi), nikogar ne čudi, čeprav o delovanju te tehnologije (ali magije?) običajni Zemljan — in tudi večina neobičajnih — ne ve dosti več kot o delovanju urokov iz Harryja Potterja.
Ena od tehnologij, ki je zaradi svoje razširjenosti postala neopazna, so priporočilni sistemi. V glasbenih aplikacijah in na straneh z video posnetki nam kažejo pesmi in posnetke, ki nam bodo morda všeč; v trgovinah nam ponujajo izdelke, ki jih bomo morda kupili; na spletnih straneh za načrtovanje izletov nam svetujejo nove poti, podobne tistim, po katerih smo hodili, tekali in kolesarili doslej; in na družabnih omrežjih nam menda najdejo nove prijatelje.
Priporočilni sistemi usmerjajo naše življenje. Za takšne reči je najbrž koristno vedeti, kako delujejo. Hkrati pa je njihovo delovanje dovolj preprosto (in zanimivo!), da ga lahko razložimo že četrtošolcem. Ne le razložimo, temveč brez težav (in brez računalnika) uprizorimo sami.
Priporočilni sistemi za razliko GPS niso ravno znanost: kaj morajo početi in kako to doseči, je očitno. Če se zanimamo za nakup novega zadnjega menjalnika za kolo, nam morajo ponuditi še prednji menjalnik, verigo in zobnike.
V letu 2024 so na YouTube vsako minuto naložili za 500 ur novih posnetkov. Kako naj se YouTube odloči, komu jih ponuditi v ogled?
Povezave med izdelki — kaj ponuditi ob čem — je potrebno seveda razbrati iz podatkov. Ročno vnašanje bi bilo zamudno, manj natančno in pogosto tudi nemogoče. Priporočilni sistemi temeljijo na opazovanju podobnosti. Dva izdelka, videa, sliki, pesmi … sta si podobna, če zanimata iste ljudi. Če so Ana, Berta in Cilka poleg Taylor Swift poslušale še Duo Lipo, sta si pevki najbrž podobni, vsaj slogovno. (Avtor pričujočega besedila za to sicer ni strokovnjak). Ko bo Dani poslušala eno od njiju, ji bo torej smiselno priporočiti še drugo.
Resnični priporočilni sistemi delajo tako tole kot zgornje in še kaj zraven.
Gremo pa lahko tudi v nasprotno smer. Namesto, da izmerimo podobnosti med glasbeniki (češ, dva glasbenika sta si podobna, če ju poslušajo isti ljudje) ter vsakemu slušatelju Taylor Swift priporočimo še vse njene podobnice, lahko izmerimo podobnosti med uporabniki. Dva kupca, dva gledalca video posnetkov ali dva načrtovalca nedeljskih izletov sta si podobna, če kupujeta, gledata in izbirata iste izdelke, posnetke in izlete. Če je potrebno narediti priporočilo za Jožeta in bomo ugotovili, da sta mu podobna Benjamin in Tone, mu bomo priporočili tisto, kar je bilo všeč njima.
Tule bomo gremo po drugi poti, saj je za izvedbo v razredu zanimivejša: učenci bodo izmerili podobnost svojih okusov za glasbo, risanke, filme, knjige ali karkoli že in si na podlagi tega oblikovali priporočila.
Poglavje 2: Spletna stran za vnos podatkov
Po tem, ko učenci izberejo svoje najljubše risanke, narišejo "okusogram" in iz njega razberejo priporočila, je uro smiselno nadaljevati tako, da s tablicami ali računalniki vnesejo svoje izbore na spletno stran, tako da lahko pokažemo priporočilni sistem iz podatkov za ves razred.

Za to pred uro pripravimo obrazec za vnos podatkov. Najprej izberemo vrsto podatkov: risanke, glasbene skupine, lastne podatke ali podatke iz preteklega dogodba. Prvi in drugi so že pripravljeni. O lastnih podatkih bomo pisali spodaj. Če želimo ponoviti uro s podatki, ki smo jih naložili v preteklosti, pa izberemo četrto možnost in vpišemo ključ. Če je bil URL preteklega dogodka https://data.pumice.si/primer-opica
, tu vpišemo primer-opica
.
Določimo lahko še, koliko najmanj stvari bodo morali in koliko največ stvari bodo smeli izbrati učenci. Trenutna nastavitev, 7, je primerna za skupine z 8-10 člani, ki izbirajo med 50-70 rečmi. Ker so to tudi sicer smiselne velikosti skupin in števila reči, je ta nastavitev najbrž kar primerna.
Aktivnost smo poskušali z različnim številom reči, med katerimi izbiramo. Zdi se, da je primerna velikost izbora enaka številu reči, deljenemu z deset. Čez palec.
Gre za to, da morajo imeti dovolj izbire (da ne bodo izbrali vsi istih stvari, temveč se bodo "profilirali"), obenem pa ne preveč, da se ne bodo tako razpršili, da bo premalo skupnih izborov. Večje število reči, ki so na izbiro, poveča razpršenost. Večje zahtevano število izbranih reči očitno poveča preseke; če morajo izbrati preveč stvari, pa lahko njihovi izbori sovpadajo preveč, poleg tega pa to lahko postane naporno.
Če jih ne omejimo na natančno določeno število stvari, se zaplete izračun podobnosti. To opisujemo v naslednjem razdelku
Možnost "Premešaj vrstni red stvari" uporabimo, če ne bomo uporabljali kartic, temveč bodo učenci izbirali stvari neposredno s spletne strani. V tem primeru je namreč smiselno vsakemu učencu pokazati drugačen vrstni red.

Ko pritisnemo Pripravi stran za aktivnost, dobimo povezavo za vnos podatkov, ki jo vpišemo v tablice ali računalnike, ki jih bodo uporabljali učenci, in povezavo za prenos zbranih podatkov, ki jo vnesemo v Orangov delotok. Če kliknemo slednjo povezavo kar v brskalniku, pa si bomo prenesli Excelovo datoteko s podatki o izboru — seveda po tem, ko bodo učenci vnesli svoje izbore.
Poleg tega lahko tu dobimo PDF s karticami.
Priprava lastnih podatkov
Če želimo naložiti lastne podatke, jih pripravimo v Excelu. Možni sta dve obliki.
Pripravimo lahko tabelo z dvema stolpcema. V prvem so povezave na slike (na primer posterji risank), v drugem imena (naslovi risank), ki bodo izpisana pod karticami. Ogledate si lahko primer datoteke s serijami.
Druga možnost je tabela z več stolpci. Vsebina prvih dveh je takšna, kot opisujemo zgoraj, v ostalih pa so lahko poljubni dodatni podatki. V prvi vrstici tabele morajo biti imena stolpcev. Spletna stran ne bo uporabljala podatkov iz dodatnih stolpcev, pač pa bodo ti stolpci v tabeli s podatki o tem, kateri učenec je izbral katero reč. Naprednejši uporabniki Oranga lahko to uporabijo za bolj poglobljeno analizo, ki pa je tule ne bomo opisovali.
Če naložimo svoje podatke, bo spletna stran pripravili tudi PDF s karticami. Da bodo te lepše, je dobro, da imajo slike podobno (po možnosti: enako) razmerje med višino in širino. Če bodo nekatere slike pokončne, druge ležeče, bo na karticah z ležečimi slikami veliko praznega prostora.
Stran, ki jo uporabljajo učenci

Na povezavi, ko jo dobimo na strani za pripravo obrazca, na primer https://data.pumice.si/skrinja-breskev
je stran, na kateri učenci izbirajo risanke, glasbenike oz. druge stvari. Ko izberejo ustrezno število stvari in vpišejo svoje ime (sistem pazi, da dva učenca ne bi vpisala enakega imena, zato morajo po potrebi dodajati prvo črko priimka) lahko oddajo izbor in predajo tablico naslednjemu učencu.
Stran trenutno ni primerna za uporabo na manjših zaslonih, recimo telefonih.
Poglavje 3: Več o izvedbi z računalnikom
Računalnik za učno uro ni potreben. Po izkušnjah je učencem tudi ta del sicer zanimiv, učitelj pa naj sam presodi, ali ga izvesti ali ne.
Učitelji, ki se ne želijo poglabljati v to, kako je sestavljen delotok za Orange, ki ga bodo uporabili v razredu, bodo tale razdelek brez škode preskočili. S seboj povabim druge vas junake.
Če se odločimo za izvedbo z računalnikom, pred uro pripravimo povezavo za vnos podatkov, tako da na spletni strani izberemo že pripravljene podatke (Risanke ali Glasbene skupine) ali pa naložimo svoje podatke, kot smo opisali v prejšnjem razdelku.
Na računalnikih s slovenskim operacijskim sistemom bi moral biti Orange privzeto nastavljen na slovenski jezik. Če ni, izberemo jezik v nastavitvah programa.
Za delo z računalnikom si je potrebno namestiti program Orange ter dodatka Networks in Pumice. Ta namestimo tako, da ju izberemo v Nastavitve / Dodatki, potrdimo izbor in ponovno zaženemo Orange.
Posebnega znanja uporabe Oranga ne potrebujemo, saj je na spletni strani Pumic objavljen že vnaprej pripravljen delotok za Orange. Vanj vnesemo povezavo za prenos zbranih podatkov in že lahko opazujemo "okusogram" za ves razred in priporočila za vsakega učenca.
Razumevanje delovanja delotoka ni potrebno, je pa koristno, zato v tem gradivu opisujemo njegove sestavne dele.

Gradnik Datoteka prenese zbrane podatke. V polje URL vnesemo povezavo na stran za prenos podatkov, ki smo jih zbrali v razredu. Če je bil URL za zbiranje podatkov, ki smo ga vpisali v tablice, https://data.pumice.si/princesa-zmaj, bodo podatki na https://data.pumice.si/princesa-zmaj/data. Privzeti URL prebere testne podatke.
Gradnik Razdalje izračuna razlike med učenci. Razdalja, ki jo uporabljamo, temelji na Jaccardovi podobnosti. Ta deli velikost preseka izborov z velikostjo njune unije. Čeprav učenci upoštevajo le preseke, bo vrstni red po podobnosti enak, ker vsak učenec izbere enako število objektov.
Tu ni česa spreminjati. Nekatere druge razdalje bodo dale smiselne rezultate, vendar je za naše namene najprimernejša Jaccardova, predvsem pa da rezultate enake postopku, ki ga uporabljajo učenci.
Sledi Omrežje sosedov. Vhod v ta gradnik je matrika razdalj. Iz tega sestavi mrežo tako, da vsakega učenca poveže s tremi najpodobnejšimi.
Gradnik lahko za vsak slučaj odprete in preverite, da je število sosedov nastavljeno na (privzeto) vrednost 3.
Lahko se igramo in spremenimo število sosedov na več ali manj in tako dobimo bolj ali manj splošna priporočila. Ena skrajnost, je, da so vsi sosedje z vsemi: tedaj bomo vsakemu priporočili to, kar je v razredu najpopularnejše. Druga je, da ima vsak le enega soseda: tedaj bo dobil priporočila le na osnovi enega sošolca ali sošolke.

Podobnosti med učenci nam pokaže Raziskovalec omrežja. Povezave so usmerjene: od vsakega učenca vodijo natančno tri puščice. Včasih se zdi, da od koga vodita le dve: to se zgodi, če se črte prekrivajo.

Gradnik Priporočila potrebuje mrežo podobnosti, ki jo dobi iz Omrežje sosedov, ter podatke o risankah, ki jih dobi iz Datoteka, zato ju je potrebno povezati z obema. Podatke o risankah potrebuje zato, da lahko izpiše njihove naslove in pokaže slike; mrežo potrebuje, da izračuna priporočila.
Poglavje 4: Ozadje za vedoželjnejše
Priporočilni sistem, ki smo ga sestavili v razredu, je seveda zelo poenostavljen. Za konec je tule poglavje za učitelje, ki bi se želeli bolj podkovati.
Grafi
Za graf prijateljstev so značilni trikotniki: osebi s skupnim znancem se najbrž poznata. Nasprotno pa so za mrežo sovraštev značilni štirikotniki: osebi s skupnim sovražnikom se ne sovražita, kaj verjetno pa imata še kakega drugega skupnega sovražnika. Tako dobimo štirikotnik sovražnikov.
Podobnosti smo predstavili v obliki grafa. Graf je izraz, ki ga matematiki uporabljajo za množico točk, med katerimi so nekatere povezane. Uporabni so marsikje; razredniki jih nemara največkrat srečate v obliki sociograma učencev.
Graf seveda ni nujno vedno narisan. Facebook in Twitter prav gotovo ne natisneta grafa prijateljev in sledilcev, saj bi bil prevelik (tri milijarde ljudi z bogvekoliko milijardami povezav), pač pa relacijo prijateljstev oziroma sledenj uporabljata za vse, kar počneta, od priporočanja novih povezav do izbiranja reklamnih sporočil. Pri tem so navadno odkriti in povedo, da nam neko osebo priporočajo v sledenje, ker imamo z njo, na primer, skupne sledilce.
Povezave imajo lahko različne teže: nekatere so močnejše, nekatere šibkejše, saj so si nekateri pari podobni bolj, drugi manj. Povezave z večjo težo lahko upoštevamo bolj kot tiste z manjšo. Če uvedemo uteži, ni več potrebno, da je vsak povezan z določenim številom drugih: povežemo lahko vsakega z vsakim, vendar povezave utežimo s podobnostmi, ki so lahko tudi 0.
Grafov je lahko tudi več hkrati. Twitter prav gotovo ne beleži le, kdo sledi komu in komu so všeč čigavi tviti. Gotovo ga zanima tudi, o čem pišemo: dva uporabnika sta si podobna, če pišeta o podobnih temah. Tako dobimo več relacij podobnosti, ki jih združujemo z različno težo.
Izračun podobnosti
V razredu smo podobnost računali preprosto na podlagi skupnega števila izbranih risank. Matematiki bi nas podučili, da se temu reče velikost preseka dveh množic risank.
V praksi bi bila to slaba mera podobnosti, saj bosta imela dva, ki sta izbrala (kupila, poslušala, gledala) veliko stvari, navadno tudi več skupnih stvari, torej bo njuna podobnost precenjena. Običajen način, da upoštevamo število izbranih stvari, je, da število stvari, ki sta jih izbrala oba, delimo s številom stvari, ki jih je izbral vsaj eden. Ali, bi rekli matematiki, velikost preseka delimo z velikostjo unije. Tako definirana podobnost je dovolj uporabna, da si je zaslužila tudi ime: rečemo ji Jaccardova mera.
Če sta si dva učenca torej bolj podobna glede na velikost preseka, ki ga računajo učenci, sta si tudi glede na Jaccardovo mero.
Če vsak učenec izbere stvari in imata dva učenca skupnih, je vsak poleg tega izbral še stvari, ki jih ni izbral drugi, torej je velikost unije in Jaccardova podobnost je .
Recimo, da je velikost preseka Aninega in Bertinega izbora , velikost preseka Aninega in Cilkinega pa . Če je , je tudi . Kdor mi ne verjame naj besedo, naj poračuna sam, ali pa prosi kolegico, ki uči matematiko.
Za učno uro bi bila takšna definicija podobnosti nerodna, saj zahteva bodisi deljenje in decimalna števila bodisi primerjanje ulomkov. Če ima Ana 4 skupne risanke od 12 z Berto, in 3 od 10 s Cilko, kateri od njiju je bolj podobna? Kaj je več, 4 / 12 ali 3 / 10? Takšna izvedba ure je primernejša za višje razrede, pri čemer pa ne spreglejte, da bo zahtevala kar nekaj primerjanj: vsak član skupine bo naračunal podobnosti z vsemi drugimi (recimo sedmimi) člani skupine in moral urediti te ulomke po velikosti, ali pa jih deliti, da bo lahko primerjal (decimalna) števila.
S tem ni seveda nič narobe, če hočemo ponavljati računanje. Če se želimo osredotočiti na priporočila in ne pustiti, da nam vzame vso energijo in čas matematika, pa predpišemo, da mora vsak izbrati točno določeno število reči. V tem primeru da primerjanje po številu skupnih risank enak vrstni red po podobnosti, kot bi ga dobili, če bi računali Jaccardovo mero.
Profili reči in uporabnikov
Sicer pa graf v resnici ni prva reč, ki pride na misel načrtovalcu priporočilnega sistema. Uporabni so za družabna omrežja (mreža oz. omrežje je pravzaprav eden od sopomenk besede graf), manj pa za priporočila v trgovinah in na straneh z glasbo ali videi. Tam uporabnike in reči profilirajo.
Če koga zanima in se ne boji matematike (brez formul, a vseeno: matematike), opišimo postopek s primerom.
V letu 2006 je Netflix objavil anonimizirane podatke za skoraj pol milijona uporabnikov, ki so dajali ocene 18 tisoč filmom. Skupaj se je nabralo 100 milijonov ocen. Slabe tri milijone ocen so skrili in ekipi, ki bi skrite ocene napovedala za več kot 10 % natančnejše od Netflixovega sistema, obljubili milijon dolarjev. Izplačali so ga proti koncu 2009.
Matematika tega je praktično srednješolska: lastnosti vsakega filma in okus vsakega gledalca sta petdeset-dimenzionalna vektorja, predvidena ocena tega filma s strani tega gledalca pa skalarni produkt med vektorjema.
Pristop zmagovalcev je temeljil na ideji, da je vsak film mogoče opisati s kakimi 50 lastnostmi. Lahko si predstavljamo, da gre za različne "dimenzije" filma — je smešen, je romantičen, grozljiv, ima lepe posnetke narave, znane igralce, nenavaden scenarij... Koliko film poseduje določeno lastnost, opišemo s pozitivnimi ali negativnimi števili; število, ki opisuje smešnost, bo tem bolj pozitivno in veliko, čim bolj je film smešen, in tem bolj negativno, čim bolj je žalosten.
Hkrati je — tako gre predpostavka — mogoče z istimi 50 lastnostmi opisati okuse. Predvidena ocena filma je potem enaka ujemanju med lastnostmi filma in okusom gledalca.
Vendar — kdo bo določil 50 lastnosti in jih ročno vnesel za vsakega od 18.000 filmov? Sploh pa, kdo bo storil isto za pol milijona gledalcev? In kako? Jih bo mogoče intervjuval, da izve, ali so jim bližje komedija ali grozljivke?! Nikakor, prav zato imamo podatke.
Tole je zgolj intuitivna razlaga. Kar opisujemo, se matematično izrazi z odvodi: lastnosti filmov in okuse gledalcev spreminjamo proti smeri gradienta.
En možen pristop je, da vsak film in okus vsakega gledalca opišemo s 50 naključnimi (pozitivnimi in negativnimi) števili v primernem obsegu. S tem, kakšne lastnosti bo predstavljalo teh 50 števil, pa se preprosto ne obremenjujemo. Nato za vsako oceno filma, ki ju dobimo kot ujemanje lastnosti in okusa, preverimo, kako odstopa od prave vrednosti in popravimo (izmišljene!) lastnosti filma ter okus gledalca v smer, ki bo zmanjšal napako. Recimo, da je bila ocena filma previsoka. Pogledamo, v katerih lastnostih je film pozitiven; če naj bi bil smešen, zmanjšamo komponento okusa, ki ustreza smešnosti, saj temu gledalcu smešni film niso všeč. Pogledamo, po katerih lastnostih je negativen: če naj ne bil imel znanih igralcev, potem v opisu okusa povečamo gledalčevo naklonjenost k znanim igralcem, saj bo bo zmanjšalo oceno tega filma. Če je bila ocena filma prenizka, ravnamo nasprotno.
Natančno enako ravnamo s filmom: če je bila ocena previsoka ali prenizka, preverimo, kaj je všeč in kaj ni všeč temu gledalcu in ustrezno spremenimo (domnevne) lastnosti tega filma.
Pravzprav … zgoraj smo govorili o smešnosti in znanih igralcih, čeprav so vsi podatki naključno izmišljeni in smo maloprej pravzaprav sklenili celo, da ne bomo vnaprej določali lastnosti filmov in okusa. Prav v tem je čar. Kaj so lastnosti, nam ni mar. Če bomo šli večkrat (recimo štiridesetkrat) čez vse ocene vseh filmov, bodo te vedno natančnejše. Za tistih petdeset ali koliko lastnosti najbrž ne bomo nikoli vedeli, kaj pomeni posamična od njih, vedeli pa bomo, da odražajo lastnosti filmov in okusov na nek način, smiseln za ocenjevanje filmov.
Opisanemu postopku pravimo matrična faktorizacija, tu, konkretno gre, za singularni razcep (singular value decomposition). Resnični sistemi poleg tega upoštevajo še številne druge dejavnike, kot so, na primer, spreminjanje okusa skozi čas.
Vsak film in vsak gledalec je tako opisan s 50 števillkami, ki predstavljajo njegov profil. Kaj pomenijo, ne vemo, vemo pa, da je gledalčevo zadovoljstvo s filmom odvisno od tega, kako se ujemata profil gledalca in filma.
Profili so uporabni še za marsikaj. Par filmov — ali par gledalcev — si je podoben toliko, kolikor sta si podobna njuna profila. Profile lahko uporabimo za to, da poiščemo skupine podobnih filmov; te skupine bodo odražale "žanre", definirane prek okusov gledalcev. Ali pa poiščemo skupine gledalcev; to utegne priti prav marketinškemu oddelku, ki ga morda zanima, kako čimbolj zadovoljiti potrebe različnih vrst gledalcev.
Podobna ideja profiliranja se — z nekoliko drugačno matematiko — uporabljajo tudi v globokih nevronskih mrežah, s katerimi prepoznavamo, urejamo, iščemo slike, analiziramo besedila … Vendar to res ne sodi več v gradivo o priporočilnih sistemih.