Truncated Singular Value Decomposition — matricos faktorizacijos metodas. User-Item matricą skaido į latentinius faktorius (50 komponentų). Kiekvienas žaidimas ir vartotojas gauna 50d vektorių, reprezentuojantį paslėptus interesus. Rekomendacijos skaičiuojamos pagal kosinusinį panašumą tarp žaidimų vektorių.
Neural Collaborative Filtering — gilus neuroninis tinklas. Vartotojas ir žaidimas koduojami į 64d embeddings, sujungiami ir perduodami per MLP su 3 sluoksniais. Modelis mokosi sudėtingų nelinijinių priklausomybių tarp vartotojų ir žaidimų. Treniruotas 20 epochų su BCELoss.
src/04_recommend.py.
Precision@10 — iš 10 rekomenduotų žaidimų, kiek procentų iš tikrųjų tinka vartotojui.
Pvz. 0.30 reiškia kad 3 iš 10 rekomendacijų yra tinkamos.
Recall@10 — kiek procentų visų tinkamų žaidimų pavyko rasti tarp 10 rekomendacijų.
Mažas Recall@10 normalus — sunku rasti visus tinkamus žaidimus iš tūkstančių.
SVD paprastai geresnis kai duomenys reti (sparse), nes nereikalauja daug treniravimo.
NCF gali būti geresnis su tankiais duomenimis ir sudėtingomis priklausomybėmis.
Tikslumas — iš K rekomenduotų žaidimų, kiek yra relevantiški.
Relevantiškumas apibrėžiamas: du žaidimai laikomi panašiais,
jei juos abu žaidė ≥10 bendrų vartotojų.
Precision@K = |relevantiški ∩ rekomenduoti| / K
Pilnumas — iš visų relevantiškų žaidimų, kiek pavyko
rasti tarp K rekomendacijų. Visada mažas skaičius, nes
relevantiškų žaidimų gali būti šimtai.
Recall@K = |relevantiški ∩ rekomenduoti| / |visi relevantiški|