Inleiding
Op deze website is meer informatie te vinden over het thesisproject van Jan Heuninck, student industriële wetenschappen informatica aan Hogeschool Gent. Deze thesis is uitgewerkt in samenwerking met Intec en Gatcha! (onderdeel van de online social mediagroep Massive Media).
Opdracht
Doelstelling van het project
Netlog.com is Europa’s grootste social network (met meer dan 70 miljoen leden en beschikbaar in meer dan 35 talen), ontwikkeld en onderhouden vanuit hartje Gent. Naast de sociale componenten biedt Netlog ook vele games aan via het Gatcha! platform, een nevenproduct van Netlog.
Doel van deze masterproef is de ontwikkeling van aanbevelingsalgoritmen voor online social games. Elke gebruiker moet naast een compleet overzicht van alle games op Gatcha! ook een gepersonaliseerd aanbod krijgen van interessante games. Door dit aanbod zo correct mogelijk weer te geven ziet de gebruiker in een oogopslag welke andere games hem/haar ook zullen interesseren. Hierdoor wordt er vermeden dat gebruikers hun weg kwijtraken in de steeds groeiende lijst van games om voor hen interessante games te ontdekken.
Bestaande situatie en probleemstelling
Momenteel worden games enkel aanbevolen op basis van hun categorie. Omdat er enkel op dit criterium suggesties aangeboden worden, krijgt de gebruiker geen gepersonaliseerde lijsten van games die hij/zij graag zou spelen. Omdat de huidige aanbevelingslijsten niet aangepast zijn aan de noden van de gebruiker wordt hij niet aangezet om deze lijst intensief te raadplegen. De enige methode om leuke games te ontdekken is de hele lijst af te lopen. Momenteel biedt Gatcha! ongeveer 150 games aan. In de toekomst zal dit aantal sterk groeien wat ook met zich meebrengt dat gebruikers het steeds lastiger krijgen om voor hen interessante games te vinden. Deze zoektocht is ook tijdrovend en niet echt efficiënt.
Gedetailleerde omschrijving van de opdracht
Voor het zoeken naar aanbevolen games voor een gebruiker zal men onder andere gebruik dienen te maken van de correlatie tussen de verschillende games. Ook zal er aan de hand van de games die vrienden spelen een lijst opgesteld worden van games die de gebruiker eventueel ook graag zal spelen.
De bedoeling is dat algoritmen worden ontworpen die autonoom voor iedere speler zoeken naar voor hem of haar relevante games. Belangrijke voorwaarden hierbij zijn de snelheid waarmee naar deze games gezocht wordt en de schaalbaarheid van het geheel. Voor de integratie van deze functionaliteit zal tevens een generieke module worden gebouwd die eenvoudig op de profielpagina van de speler ingebouwd kan worden.
IBCN verwerft momenteel expertise op het vlak van aanbevelingsalgoritmen en start binnenkort met de uitbouw van een platform op grote rekenclusters voor een snelle evaluatie van dergelijke aanbevelingsalgoritmen. De bedoeling hiervan is om snel de efficiëntie van bestaande of nieuwe algoritmen te evalueren op dumps van Netlog data. De masterproef focust zich hierbij op volgende zaken:
- Testen/implementeren van aanbevelingsalgoritmen op de UGent rekenclusters – normaal gezien in Python.
- Implementatie finaal algoritme (kan combinatie zijn van meerdere geteste algoritmen): afhankelijk van de architectuurkeuze zal dit in Python of PHP zijn.
- Uitbouw van transparante datacommunicatielaag waardoor de algoritmen zeer snel op de bestaande actieve Netlog-data kunnen werken.
- Verbeteren van de algoritmen op basis van deze live data.
De aanbevelingsalgoritmen zullen zich beperken tot enkele basisalgoritmen. Het is niet de bedoeling van de masterproef nieuwe methoden te gaan ontwikkelen, maar om bestaande algoritmen te combineren tot een efficiënte oplossing die gebruikt kan worden met de Netlog-data.
Problemen die moeten opgelost worden
Door de grote hoeveelheid aan data met betrekking tot de games en de ‘speelgewoonten’ van vrienden is het uitermate belangrijk een snelle en efficiënte methode te zoeken om relevante games te zoeken.
Technologieën die aan bod komen
- Python
- PHP
-
Memcached
- Data bewaren in het geheugen
-
Database sharding
- Partitioneren van een databank
-
Apache
- Webserver
-
Sphinx
- Open source zoekmachine (server)
-
lighttpd
- Snelle webserver
-
Squid
- Proxyserver
Naast deze technologieën zullen aanbevelingsalgoritmen een belangrijke rol spelen in de masterproef. Deze aanbevelingsalgoritmen kunnen gebruik maken van volgende technologieën:
-
Gelijkaardigheidsmetrieken
- Bepalen in welke mate elementen overeenkomen
-
Collaborative Filtering
- Voorspellingen genereren a.d.h.v. data van andere gebruikers
-
Content-based Filtering
- Voorspellingen genereren a.d.h.v. data van de huidige gebruiker
- ...
Tijdens het onderzoek naar deze algoritmen zal het duidelijk worden welke technologie het best geschikt is voor de masterproef.
Mogelijke uitbreidingen en opties
- Een mogelijke uitbreiding is het voorzien van een gewichtsfactor per game om nieuwe en populaire games ook op te nemen in de lijst van aanbevolen games.
- Uitbouw van een testfunctie aan Netlogzijde (of testinterface indien blackbox) voor de live evaluatie van de algoritmen op actieve users (bij Netlog). Deze testfunctie zal nagaan of gebruikers de voorgestelde gaan games gaan spelen. De score die de gebruiker aan een game geeft kan nadien vergeleken worden met de voorspelde score.
Vernieuwende aspecten
Eén van de vernieuwende aspecten van deze masterproef is het efficiënt omgaan met grote hoeveelheden data. Netlog heeft momenteel ruim 71 miljoen leden die allen gekoppeld zijn aan een Gatcha!-profiel. Op het Gatcha!-platform zijn er 150 games aanwezig. Door onderzoek te doen naar methoden die efficiënt kunnen omgaan met deze grote hoeveelheden data wordt het inzicht in deze materie vergroot.
Het gebruik van aanbevelingsalgoritmen is voor mij een nieuw aspect. Tijdens mijn masterproef zal ik enkele technieken uit de cursus kunstmatige intelligentie van nabij kunnen bekijken. Dit zal het inzicht in deze materie vergroten. Naast de geziene technieken zal ik zeker in contact komen met andere oplossingsmethoden die toegepast kunnen worden binnen de masterproef.
Overzicht van de items die in de scriptietekst zullen behandeld worden
- Verslag van de activiteiten tijdens de stage
- Beschrijving van de gebruikte technologieën
- Onderzoek naar efficiënte algoritmen om aanbevolen games te zoeken. Eventueel met een vergelijkende studie tussen de meest interessante oplossingen.
- Toepassing van de gevonden algoritmen binnen Gatcha!