Matrična faktorizacija (*)

Napišite razred MatrixFactorizationPredictor, ki matriko ocen najprej faktorizira in jo potem uporabi za izračun ocen. Matrična faktorizacija je priljubljena metoda za priporočilne sisteme, saj običajno dosega boljše rezultate kot metoda najbljižjih sosedov; več o njej si lahko pogledate v (Y. Koren et al., Matrix factorization techniques for recommender systems ALI G. Takacs et al., Scalable Collaborative Filtering Approaches for Large Recommender Systems).

Matrična faktorizacija v nevronskih mrežah (*)

Matrično faktorizacijo običajno implementiramo z direktno dekompozicijo matrike ocen. Obstaja alternativa z nevronskimi mrežami, s katerimi to lahko simuliramo. Poglejte si princip NCF (Neural Collaborative Filtering) in implementirajte enega od pristopov. 

Primera:
https://towardsdatascience.com/paper-review-neural-collaborative-filtering-explanation-implementation-ea3e031b7f96

https://www.analyticsvidhya.com/blog/2021/05/movie-recommendations-using-keras-recommender-systems/

Priporočilni sistem s klasičnim strojnim učenjem (*)

Že pred dolgo časa so na Kagglu objavili izziv, kjer je bila naloga napovedati artikle v naslednji kupčevi košarici. V tistem primeru se je izkazalo, da s pametnimi značilkami in osnovnimi metodami strojnega učenja dejansko dobimo najboljše rezultate. Napovedovanje naslednjih kupljenih artiklov pa je zelo podobno napovedovanju naslednjega filma. S strojnim učenjem razvijte model, s katerim lahko napovemo, kateri bo naslednji uporabnikov film.  Pri tem naj bo en primer v učni množici kombinacija filma in uporabnika, kjer je razred zadnji ogledani film, atributi pa se domislite sami.

Povezovalna pravila (*)

Tokrat si poglejmo, kako bi iz podatkov o ocenah filmov zgradili množico zanimivih povezovalnih pravil. Iščemo pravila približno take oblike:

ČE ti je všeč film X in če ti je všeč film Y, POTEM ti bo zelo verjetno všeč tudi film Z.

Ker so povezovalna pravila namenjena podatkom z implicitnimi ocenami (dogodki), a pri filmih imamo eksplicitne vrednosti, moramo le-te najprej spremeniti v dogodke. Predlagam, da za dogodek označimo vse ocene višje od uporabnikovega povprečja.

Napišite program za učenje povezovalnih pravil. Lahko poskusite sami implementirati APRIORI algoritem, lahko pa uporabite kakšno okolje, ki že ima povezovalna pravila, npr. Orange (glej tale blog: Association rules in Orange). Izpišite pravilo z največjo podporo, zaupanjem in dvigom.

 

Priporočilni sistemi, ki temeljijo na LLM (*)

V zadnjem času se je pojavilo veliko idej za uporabo velikih jezikovnih modelov pri implementaciji priporočilnih sistemov. Poiščite kakšno od variant in jo implementirajte. Ni potrebno implementirati celotnega priporočilnega sistema, lahko tudi samo del, ki uporablja LLMje.

En potencialen primer: https://medium.com/@bravekjh/building-a-smart-recommender-engine-with-llm-rag-in-python-47820204a796

Zadnja sprememba: nedelja, 7. december 2025, 21.51