ML · Paieška · Rekomendacijos

Modelių palyginimas

Trys sistemos, trys skirtingi uždaviniai – ir kaip juos teisingai palyginti

KAIP VEIKIA SISTEMA
SVD

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“.

TruncatedSVD 50 komponentų kosinusinis panašumas
NCF v28

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.

PyTorch Embedding 64d MLP SHAP
⚖️ Kodėl nėra vieno „geriausio modelio“

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.

REZULTATAI
A) Ar vartotojui patiks žaidimas? (klasifikacija)

Tai uždavinys, kuriam mokytas NCF. Vertinama visoje natūralioje test aibėje.

ModelisAccuracyF1AUC
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
B) Kokius žaidimus parodyti? (Top-10 rekomendacijos)

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ų.

ModelisRecall@10NDCG@10HitRate@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ų.

📊 Ką rodo skaičiai

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.

APRIBOJIMAI
METRIKOS
Accuracy · F1 · AUC

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@K · NDCG@K · HitRate@K

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.