300 likes | 452 Views
Ontwikkeling van aanbevelingsalgoritmen voor online social games. Jan Heuninck. Overzicht. Massive Media Masterproef Onderzoek Implementatie Conclusie. Massive Media. Online mediagroep Netlog Sociale netwerksite 76 miljoen leden (juni 2011) Gatcha! Online gameplatform
E N D
Ontwikkeling van aanbevelingsalgoritmen voor online social games Jan Heuninck
Overzicht • Massive Media • Masterproef • Onderzoek • Implementatie • Conclusie
Massive Media • Online mediagroep • Netlog • Sociale netwerksite • 76 miljoen leden (juni 2011) • Gatcha! • Online gameplatform • Netlog & Facebook
Masterproef • Doel • Onderzoek en implementatie van aanbevelingsalgoritmen • Games aanbevelen aan de gebruiker • Snelheid en performantie!
Masterproef • Twee luiken • Onderzoek • Gatcha!-data • Collaborative filtering • Evaluatie • Implementatie
Gatcha!-data • Algemeen • Enkele cijfers • Miljoenen gebruikers • ± 235 games • > 25 miljoen gameplays per maand • Nodig om appreciatie voor games numeriek voor te stellen • Interval Masterproef > Onderzoek
Gatcha!-data • Expliciete ratings • Waardering met sterren • Niet elke gebruiker geeft een score • Impliciete ratings • Gameplays • Combinatie Game-afhankelijk Masterproef > Onderzoek
Gatcha!-data Masterproef > Onderzoek
Collaborative filtering • Algemeen • Aanbevelingen genereren a.d.h.v. data van alle gebruikers • Toch gepersonaliseerd • Score voorspellen en ranglijst opstellen • Gebruikt bij o.a. Amazonen Netflix Masterproef > Onderzoek
Collaborative filtering • Implementatie • Geheugengebaseerd • Aanbevelingen rechtstreeks genereren • Geen trainingsfase • Slecht schaalbaar • Modelgebaseerd • Eerst model opbouwen • Rekenintensief, maar periodiek • On the fly Masterproef > Onderzoek
Collaborative filtering • Gelijkaardigheidsmetrieken (1) • Euclidische afstand • Meetkunde • Afstand in tweedimensionaal vlak • Pearson correlatiecoëfficiënt • Lineaire onafhankelijkheid tussen 2 vectoren • Brengt ratinggedrag van de gebruiker in rekening Masterproef > Onderzoek
Collaborative filtering • Gelijkaardigheidsmetrieken (2) • Cosinusgelijkaardigheid • Hoek tussen 2 vectoren • Jaccard-coëfficiënt • Doorsnede / unie van 2 sets Masterproef > Onderzoek
Collaborative filtering • Item-based collaborative filtering • Games onderling met elkaar vergelijken • Geheugengebruik Masterproef > Onderzoek
Collaborative filtering • User-based collaborative filtering • Gebruikers onderling met elkaar vergelijken • Geheugengebruik • Niet gebruikt omwille van groot aantal gebruikers bij Gatcha! Masterproef > Onderzoek
Onderzoek • Evaluatie • Algemeen • Evaluatiemetrieken • Parameters • Resultaten Masterproef
Evaluatie • Algemeen • In samenwerking met IBCN • Training- en testset • Scores voorspellen en vergelijken met werkelijke waarde • Rekencluster Universiteit Gent Masterproef > Onderzoek
Evaluatie • Evaluatiemetrieken • ROC-curve • Kwaliteit beoordelen • Mean absolute error (MAE) • Afwijking voorspelling t.o.v. werkelijke waarde Masterproef > Onderzoek
Evaluatie Masterproef > Onderzoek
Evaluatie • Parameters • User-based / Item-based • Gelijkaardigheidsmetriek • Expliciete en/of impliciete ratings • Cut-off waarde Masterproef > Onderzoek
Evaluatie • Resultaten • User-based collaborative filtering • Extreem lange uitvoeringstijd • Slechte resultaten Masterproef > Onderzoek
Evaluatie • Resultaten • Item-based collaborative filtering • Gecombineerde ratings (50-50) • Pearson correlatiecoëfficiënt • Goede resultaten (AUC en MAE) Masterproef > Onderzoek
Masterproef • Onderzoek • Implementatie • Werkwijze • Optimalisatie • Uitvoeringssnelheid
Werkwijze • Python code → PHP code • Code integreren in Gatcha! • Optimalisatie • Gearman • Memcached • Database Masterproef > Implementatie
Optimalisatie • Gearman • Open source • Jobs distribueren over meerdere processen • Voordelen • Snellere uitvoering van taken • Parallelle uitvoering • Grote schaalbaarheid Masterproef > Implementatie
Optimalisatie • Gearman • Gebruik • Ophalen/converteren data • Gelijkaardigheden berekenen Masterproef > Implementatie
Optimalisatie • Memcached • Open source • Caching • Gebruikt door Netlog, Facebook en Twitter • Query’s, objecten en HTML cachen • Database ontlasten Masterproef > Implementatie
Optimalisatie • Database • Intensief gebruik maken van MySQL • Geheugengebruik minimaliseren • Opslag • Geconverteerde ratings • Item-gelijkaardigheidsmodel Masterproef > Implementatie
Uitvoeringssnelheid • Voorbeeld • berekenen van de impliciete ratings 30 x sneller! Masterproef > Implementatie
Conclusie • Item-based collaborative filtering • Pearson correlatiecoëfficiënt • Belang van impliciete ratings • Performance boost door databank en optimalisatietechnieken