Klausimas: „kuris žaidimas atitinka mano aprašymą?“
Žaidimų aprašymai paverčiami vektoriais (all-mpnet-base-v2) ir ieškomi FAISS indekse. Rezultatų tvarką galima keisti 7 režimais: nuo grynai „pagal prasmę“ iki prasmės, reitingo ir apžvalgų kiekio mišinio.
Klausimas: „kokie žaidimai panašūs į šiuos?“
Vartotojų ir žaidimų matrica (svoris – log(1+valandos)) suspaudžiama į 50 paslėptų faktorių. Žaidimai, kuriuos žaidžia tie patys žmonės, atsiduria arti vienas kito. Naudojamas žaidimo puslapyje „Panašūs žaidimai“.
Klausimas: „ar šis žmogus rekomenduos šį žaidimą?“
Neuroninis tinklas: vartotojo ir žaidimo 64d vektoriai kartu su kaina, reitingu ir žanrais eina per 3 sluoksnių MLP. Išbandyta 32 versijos; v28 mokyta 15 epochų (BCELoss). Dengia apie 670 populiariausių žaidimų. Prognozes paaiškina SHAP.
SVD ir NCF atsako į skirtingus klausimus, todėl vienu skaičiumi jų lyginti negalima. Todėl žemiau kiekvienas vertinamas dviem būdais, visada ant tos pačios test aibės, kurios modeliai treniravimo metu nematė, ir kartu su paprastais baseline'ais – be jų skaičius neturi atskaitos taško.
Tai uždavinys, kuriam mokytas NCF. Vertinama visoje natūralioje test aibėje.
| Modelis | Accuracy | F1 | AUC |
|---|---|---|---|
| Visada „rekomenduoja“ | 0.8451 | 0.916 | 0.5 |
| Žaidimo vidutinis įvertinimas | 0.846 | 0.9162 | 0.7015 |
| NCF v28 | 0.8605 | 0.922 | 0.821 |
Tai uždavinys, kurį sprendžia visos rekomendacijos. Kiekvienam vartotojui modelis sudaro 10 žaidimų sąrašą iš žaidimų, kurių jis dar nematė; tikrinama, kiek iš jų vartotojui vėliau tikrai patiko. Vertinta 3 000 vartotojų.
| Modelis | Recall@10 | NDCG@10 | HitRate@10 |
|---|---|---|---|
| Populiariausi žaidimai | 0.0608 | 0.0586 | 0.3263 |
| SVD (panašūs žaidimai) | 0.1015 | 0.0944 | 0.4263 |
| NCF v28 | 0.0272 | 0.0253 | 0.156 |
Duomenys: 37 101 vartotojų · 668 žaidimų (bent 1000 apžvalgų) · test aibė 284 848 apžvalgų (84.5% teigiamų) · suskaičiuota 2026-10-06. Visi modeliai vertinti ant tų pačių žaidimų.
Test aibėje 85% apžvalgų yra teigiamos, todėl net modelis, kuris visada sako „rekomenduoja“, gauna F1 = 0.916. NCF gauna 0.922 (skirtumas +0.006), todėl čia informatyviausias rodiklis yra AUC: NCF 0.821 (0,5 = atsitiktinis spėjimas).
Top-10 reitinguose geriausią NDCG@10 turi „SVD (panašūs žaidimai)“ (0.0944); paprasčiausio baseline'o (populiariausi žaidimai) rodiklis – 0.0586.
NCF treniruotas atskirti „patinka / nepatinka“, o ne rūšiuoti žaidimus, todėl reitingavimo uždavinyje jis silpnesnis už paprastą populiarumą. Tai nėra klaida – tai skirtingas uždavinys nei tas, kuriam modelis mokytas.
- NCF dengia tik populiariausius (~670) žaidimus, todėl naujam ar retam žaidimui rekomendacijų nepateiks (cold start). Naujiems vartotojams modelis taip pat neturi savo vektoriaus.
- „Patiko“ čia reiškia Steam apžvalgos „rekomenduoju“ žymą, o ne tikrą įvertinimą. Dauguma apžvalgų teigiamos, todėl vien F1 / Accuracy klaidina – žr. baseline'ą lentelėje.
- Žmonės apžvelgia tik tai, ką jau žaidė, todėl duomenys šališki populiarių žaidimų link.
- Vertinimui SVD perkeltas treniruoti tik ant train dalies (kitaip jis „matytų“ test duomenis), todėl jo skaičiai gali šiek tiek skirtis nuo svetainėje naudojamo SVD, kuris apima daugiau žaidimų.
- Tai offline metrikos. Jos nepasako, ar rekomendacijos realiai patiko žmonėms – tam reikėtų vartotojų testo.
Accuracy – teisingų spėjimų dalis. F1 – balansas tarp tikslumo ir pilnumo teigiamai klasei. AUC – tikimybė, kad modelis patikusį žaidimą įvertins aukščiau nei nepatikusį; 0,5 = metimas monetą, 1,0 = tobula. AUC nepriklauso nuo to, kad dauguma apžvalgų teigiamos.
Recall – kokią dalį vartotojui patikusių (ir dar nematytų) žaidimų radome tarp K rekomendacijų. NDCG – kaip Recall, bet geriau vertina, kai tinkami žaidimai sąraše aukščiau. HitRate – kokiai daliai vartotojų bent vienas iš K tiko.