Session alapú gépi tanulás ajánlórendszerek fejlesztése és integrálása JAVA / Scala szerverkörnyeze

2016-2017 tavasz

Téma leírása

A kereső és ajánló rendszerek több ok miatt is egymás komplementer feladatai. Míg a keresőmotorok elsődleges feladata a releváns találatok hatékony, rendkívül alacsony válaszidő alatti listázása és rangsorolása, az ajánlórendszerek célja az így létrehozott lista javítása, további rangsorolása és felhasználókra jellemző egyediségek alapján finomítása, múltbeli döntések, történések alapján tett előrejelzésekkel. Az ajánlórendszer, építve az aktuális felhasználó aktivitására, a keresőtől teljesen független elemeket is javasolhat felhasználva a múltbeli felhasználói döntések azon megtanult aspektusait, melyek direkt módon még a felhasználó előtt is rejtve vannak. Az ajánlórendszerek két fontosabb csoportját szokás megkülönböztetni. Az első csoport, a "content based" ajánlók esetén feltételezzük, hogy valamely tulajdonságai mind a felhasználóknak illetve az entitásoknak ismert, míg a "collaborative filtering" (CF) során csak a felhasználók és entitások múltbeli kapcsolatait tekintjük ismertnek. Miután az utóbbi módszerek kevesebb előre ismert adatot tételeznek fel, mind a szolgáltató, mind pedig a felhasználó részéről, illetve számos kísérlet bizonyítja, hogy teljesítményben is kiválóak, a legtöbb esetben az iparágilag használt ajánlórendszerek pusztán CF alapúak. Ezen belül is a legnépszerűbb modellek a Mátrix Faktorizáció (MF) egyes modelljeire épülnek (Alternating Least Squares (ALS), PQ factorization, Singular Value Decomposition (SVD)) vagy valamely Nearest-Neighbour módszer leszármazottai . A CF-en belül érdemes megkülönböztetni az implicit és az explicit ajánlók családját. Utóbbi esetben feltételezünk egy preferencia értéket az ismert aktivitásokkal kapcsolatban, míg az implicit ajánlás során csak a kapcsolat előfordulását szeretnénk rekonstruálni. Az utóbbi évek során a modellek összehasonlítása illetve használhatósága az ajánlás területén mai napig széles körben kutatott. Ennek oka többek között, hogy egyes, a gyakorlatban általánosan és nálunk is felmerülő esetekben még nem elég hatékonyak és nehezen automatizálhatóak robusztus módon. Emellett a fentebb is említett esetek jelentős részében felmerül session alapú ajánlás (azaz ugyanazon felhasználónak a keresés környezetének megfelelően akár fél óra eltéréssel is teljesen más ajánlásokat teszünk az aktuális kereséshez igazodva), ahol a klasszikus MF (mátrix-faktorizáció) feltételei nem adottak. A felvételt nyert hallgató feladatai közé tartozik egy ajánlórendszer összeállítása, tesztelése valamint integrálása egy létező JAVA / Scala rendszerbe. A kereső és ajánló rendszerek több ok miatt is egymás komplementer feladatai. Míg a keresőmotorok elsődleges feladata a releváns találatok hatékony, rendkívül alacsony válaszidő alatti listázása és rangsorolása, az ajánlórendszerek célja az így létrehozott lista javítása, további rangsorolása és felhasználókra jellemző egyediségek alapján finomítása, múltbeli döntések, történések alapján tett előrejelzésekkel. Az ajánlórendszer, építve az aktuális felhasználó aktivitására, a keresőtől teljesen független elemeket is javasolhat felhasználva a múltbeli felhasználói döntések azon megtanult aspektusait, melyek direkt módon még a felhasználó előtt is rejtve vannak. Az ajánlórendszerek két fontosabb csoportját szokás megkülönböztetni. Az első csoport, a "content based" ajánlók esetén feltételezzük, hogy valamely tulajdonságai mind a felhasználóknak illetve az entitásoknak ismert, míg a "collaborative filtering" (CF) során csak a felhasználók és entitások múltbeli kapcsolatait tekintjük ismertnek. Miután az utóbbi módszerek kevesebb előre ismert adatot tételeznek fel, mind a szolgáltató, mind pedig a felhasználó részéről, illetve számos kísérlet bizonyítja, hogy teljesítményben is kiválóak, a legtöbb esetben az iparágilag használt ajánlórendszerek pusztán CF alapúak. Ezen belül is a legnépszerűbb modellek a Mátrix Faktorizáció (MF) egyes modelljeire épülnek (Alternating Least Squares (ALS), PQ factorization, Singular Value Decomposition (SVD)) vagy valamely Nearest-Neighbour módszer leszármazottai . A CF-en belül érdemes megkülönböztetni az implicit és az explicit ajánlók családját. Utóbbi esetben feltételezünk egy preferencia értéket az ismert aktivitásokkal kapcsolatban, míg az implicit ajánlás során csak a kapcsolat előfordulását szeretnénk rekonstruálni. Az utóbbi évek során a modellek összehasonlítása illetve használhatósága az ajánlás területén mai napig széles körben kutatott. Ennek oka többek között, hogy egyes, a gyakorlatban általánosan és nálunk is felmerülő esetekben még nem elég hatékonyak és nehezen automatizálhatóak robusztus módon. Emellett a fentebb is említett esetek jelentős részében felmerül session alapú ajánlás (azaz ugyanazon felhasználónak a keresés környezetének megfelelően akár fél óra eltéréssel is teljesen más ajánlásokat teszünk az aktuális kereséshez igazodva), ahol a klasszikus MF (mátrix-faktorizáció) feltételei nem adottak. A felvételt nyert hallgató feladatai közé tartozik egy
ajánlórendszer összeállítása, tesztelése valamint integrálása egy létező JAVA / Scala rendszerbe.

Feltételek

  • JAVA, Python

Külső partner: Oktafone Szolgáltató Kft.

Maximális létszám: 2 fő