A Netflix nevű amerikai internetes dvd-kölcsönző 2006-ban írta ki 1 millió dolláros versenyét, melynek az volt a célja, hogy a kölcsönző ajánlórendszerének teljesítményét legalább 10 százalékkal javítsák meg a versenyzők. A Tikk Domonkos vezette Gravity (további tagok: Takács Gábor, Pilászy István és Németh Bottyán) nevű magyar csapat első helye csupán 20 percen múlott.

Mindentudás Egyeteme: A versenyen bárki indulhatott, még akár pszichológus is, de egy idő után kiderült, hogy a csapatoknak érdemes összefogniuk. Ennek ti voltatok az elindítói.

gravity_tikk

Tikk Domonkos: Viszonylag korán észrevettük azt a jelenséget, hogy ha kombinálunk különböző, ám elég jól működő megközelítések alapján készített modelleket, akkor pontosabb predikciót lehet elérni, mint az egyes módszerekkel külön-külön. Tehát több elég jó, ám különböző módszer keverésével jobb eredmény érhető el. 10% volt az elérendő határ, s a verseny vége előtt olyan háromnegyed évvel az akkori első csoport 9,6%-nál járt, mi pedig 9,3% körül. Ekkora már nagyon sok időt és energiát fektettünk a feladatba, és kezdtünk belefásulni, illetve a megélhetésünkre is gondolnunk kellett. Láttuk, hogy egyedül nem fogjuk tudni utolérni az első csoportosulást. Ezért úgy gondoltuk, hogy mi leszünk a kezdeményezők és létrehozunk egy monstre konglomerátumot. Készítettünk egy szabályzatot is, hogy mi alapján léphetnek be a többiek. Optimistán Grand Prize Team névre kereszteltük ezt a csapatot és bevezettünk egy pontozásos rendszert is, hogy a végén a fődíj milyen arányban oszlik el a csoport tagjai között. Gyakorlatilag azt pontoztuk, hogy ki mennyivel javítja meg a mi eredményeinket. Az első körben 4-5 csapat csatlakozott hozzánk, ekkor értünk föl a második helyre, egy századra megközelítve az akkor első helyen álló csapatot. Azonban erre ők is elkezdtek szervezkedni. A következő nagyobb lépés akkor történt meg, amikor ők elérték a 10%-ot és megnyílt az egy hónapos moratórium. Ha ez idő alatt bármely más csapat eléri, utoléri vagy megelőzi őket, akkor az lesz a nyertes. Ebben az időszakban még többen csatlakoztak hozzánk, így sikerült elérni, hogy utolérjük őket. Sőt, bizonyos szempontból meg is előztük őket. Az eredmény ellenőrzése ugyanis két lépcsőből állt. A megadott kb. hárommilliós teszthalmaz egyik felén (legyen A) elért eredményt hozták nyilvánosságra, de a végső sorrendet a másik (B) felén mért eredmény alapján állapították meg. Erre azért van szükség, mert ha egy adott teszthalmazon sok módszer eredményét ismerjük, akkor lehetőség van erre a teszthalmazra optimalizálni a modellt. Ez az optimalizált modell azonban lehet, hogy más teszthalmazon lényegesen rosszabb lesz, azaz általánosan nem fog jól működni. Így végül hiába vertük meg őket az A halmazon 0,01%-kal, a B halmazon az eredmények megegyeztek, csak ők ezt a megoldást 20 perccel korábban küldték be. Így végül ők nyertek.

ME: A csatlakozásnak szabtatok valamilyen feltételt?

TD: Az új csapat által hozott megoldásnak javítania kellett az egyesített csapatnak az eredményén. Amennyiben pedig egyszerre többen jelentkeznek, akkor azt vettük be elsőként, aki a legtöbbet javított az eredményeken.

ME: A versenyt kiírók mennyire számítottak arra, hogy ilyen sokáig – majdnem három évig – elhúzódik a verseny?

TD: Nem gondoltak erre az elején, ezért találták ki az egy hónapos moratóriumot is, hogy még izgalmasabbá tegyék a versenyt. Tehát amennyiben valaki nagyon gyorsan eléri a 10%-os határt, akkor legyen még egy forduló és esély a többieknek. A versenyt 2006 októberében írták ki és két héttel később a versenyzők már 5%-kal megjavították az eredményt. Akkor úgy nézett ki, hogy néhány hét alatt lezajlik az egész. De aztán természetesen egyre nehezebbé vált további javulást elérni. A 6%-ot januárra értük el, akkor mi vezettünk a versenyben, a 7% az valamikor 2007 közepére lett meg, a 8% 2007 őszére. A 9%-hoz még egy félév kellett, a 10% pedig majdnem plusz másfél év volt. Vagyis egyre nehezebb volt egy-egy százaléknyi javulást kicsikarni a módszerekből, ráadásul addigra már annyi mindent kipróbáltunk, hogy egyre nehezebb volt valami új ötlettel előállni és a megszokott probléma-megoldási sémáktól eltávolodni

ME: Az kiderült, hogy miért éppen 10%-kal kellett javítani az ajánlórendszer teljesítményén?

TD: A Netflix eredeti módszere 10%-kal volt jobb az egyik legegyszerűbb megoldásnál. Úgy gondolták, hogy megdupláznák ezt a különbséget. Szóval egyszerű hasra ütéssel találták ki, tudományos szempontból semmilyen megalapozottsága nem volt. Utólag tudjuk, hogy a 9% sokkal könnyebben, elegánsabb megoldással elérhető cél lett volna. A 10% az már nagyon izzadtság szagú lett a végére.

ME: Mit jelent ez a 0.85 hibaérték, amit végül el kell érni?

TD: Azt mondja meg, hogy egy film felhasználói értékelésének a megbecslésénél átlagosan ennyit téved a módszer. Tehát, ha valaki 4-esre értékel egy filmet, akkor 3.15-öt, vagy 4.85-öt is mondhat a rendszer. Ez a mérőszám ideális arra, hogy a versenyzők módszereit összehasonlítsák, de közvetlen hatása az ajánlások minőségére nem magától értetődő, ugyanis az ajánlatok közé olyan filmek kerülnek csak, amit a felhasználó magasra értékel, tehát látszólag nem segít sokat, ha az általuk nem kedvelt filmekre is jól működik egy modell. Kimutatható azonban, hogy ennek a hibaértéknek kicsiny javítása is lényeges javulást okoz az ajánlások pontosságában, azaz jelentősen befolyásolja az ajánlások minőségét.

ME: A Netflix versenyében elért hibaérték mennyire tekinthető végső határnak?

TD: Lehet kicsit tovább menni, de nem tudni mennyivel. Amikor az első két csapat eredményeit kombinálták, akkor további 0,2%-kal jobb lett a hibaérték. De nagyon fontos elmondani, hogy ez konkrétan erre a feladatra, a megadott adatok mellett igaz. Ez nem egy olyan szám, ami általános jellemzi az ajánlórendszereket. Hogy mennyire lehet javítani az egyes ajánlórendszereken, az függ az adatokban lévő zajtól is. A zaj ebben az esetben azt jelenti, hogy az adatban vannak nem megbecsülhető véletlenek is. Vagyis olyan adatok is, amelyek az előzményektől függetlenek, megbecsülhetetlenek és így a modellek sem képesek rá reagálni.

ME: A Grand Prize Team létrehozását egyrészt az is ösztönözte, mint már említetted, hogy a különböző módszerek jobb eredményeket szültek. De mennyire véges a szemléletmódokat tükröző modellek száma?

TD: Alapvetően nem tértek el az egyes csapatok által alkalmazott módszerek egymástól. Mintegy 4-5 lényegében eltérő megközelítés van, amelyek elég jól működtek erre a problémára. Viszont az egyes megközelítésekben lehetett elágazásokat, eltérő részmegoldásokat alkalmazni. Különböző paraméter beállítások vagy programozási megvalósítások is kiadhattak apró eltéréseket, de az is számít, hogy az ember mekkora számítógépen futtatja le az adatokat.

gravity_csoport

A képen balról: Urbancsek Tamás, Pilászy István, Tikk Domonkos, Csíkos Péter, Németh Bottyán, Petres Zoltán

ME: Hiába pusztán a második hely ezen a versenyen, cégetek nem szenved hiányt megrendelőkben. A feszített és erős versenynek köszönhetően mindentudókká váltatok az ajánlórendszerekben?

TD: Egy adott szinten, adott algoritmuskészlettel szinte minden ajánlási probléma megoldható. Amikor 2009 nyarán véget ért a verseny, akkor mi is azt gondoltuk, hogy mindent tudunk az ajánlórendszerekről. De az első pár hónapban kiderült, amikor elkezdtük fejleszteni az első vevőink számára az ajánlórendszereket, hogy azért van még mit fejlődni. 2010 első felére értünk el oda, hogy létrejött egy olyan szakmai és technológiai know-how amiből már jól lehet dolgozni. Ha jön egy új vevő, akkor először megnézzük a feladat legfontosabb jellemzőit: hány felhasználó, hány termék és milyen egyéb adatok állnak még a rendelkezésünkre. Az ajánlórendszerek esetében az a legjobb, amikor a felhasználó explicit fejezi ki, mennyire szereti a terméket, mondjuk egy értékelésen keresztül. Az explicit értékelés nagyon értékes és sajnos nagyon ritka adat. Általában ugyanis nincsenek ilyen adatok, mert a felhasználó nem, vagy csak komoly költséggel vehető rá arra, hogy közvetlen visszajelzést adjon, pl. értékelje a terméket, mert az plusz energiába kerül. Ezért többnyire úgy nevezett implicit értékelésekkel dolgozunk, amikor csak következtethetünk a felhasználó termékekkel kapcsolatos eseményeiből, hogy tetszik-e neki vagy sem az adott termék. Például a Randivonal társkereső oldalon ilyen implicit adat lehet egy adatlapnak a megtekintése, egy sms küldése a rendszeren keresztül, míg egy online bolt esetében egy termék megvásárlása, kosárba vagy, netán a kedvencek közé tétele. Minél több ilyen van, annál erősebben utal arra, hogy a felhasználó valóban kedveli az adott terméket vagy termékkategóriát.

ME: Említettem az elején, hogy pszichológus is indult annak idején a versenyen, milyen előnyökkel járhatott az ő más szakterületen szerzett tapasztalata, tudása?

TD: Az ajánlórendszereknél valójában azt kell megérteni, hogy a felhasználó milyen indíttatások alapján mozog egy weboldalon, mi az, ami őt vásárlásra vagy bármilyen más termékkel kapcsolatos interakcióra sarkallja. Ebből a szempontból csupán egy második lépés, ezen tudások, ismeretek átültetése a programok nyelvére. Az origo-nak éppen most készítünk egy hírajánló szoftvert, ahol az elsődleges szempont, hogy minél több időt töltsön el a user az oldalukon, a portfolió tulajdonosának minél több oldalát nézze meg, minél több tartalmat „fogyasszon". Minden megrendelés esetében elsőként megpróbálunk a felhasználók fejével gondolkodni, és olyan algoritmusokat írni, amik megfelelnek ennek. A felhasználók fejével való gondolkodás azt is jelenti, hogy egy adott weboldal eltérő szerepű oldalaira különböző típusú ajánlások érkezzenek. Tehát az ajánlás a kontextustól is függ. Mondok egy példát. Más típusú termékeket ajánlunk ki egy webáruház főoldalára vagy kategória-, netán termékoldalára és megint mást a check out oldalra, ahol már a kosárban vannak a megvásárolandó termékek és a következő lépés a bankkártyaadatok megadása. Ezekre a különbségekre reflektálnia kell az ajánlórendszernek, célszerű kontextusonként külön hipotézist felállítani a felhasználók vásárlási szokásairól.

gravity_absztarkt

ME: Az ajánlórendszereket, mint szolgáltatást lehet igénybe venni. Miért?

TD: Elsősorban úgy gondoljuk, hogy ez kényelmesebb megoldás a vásárlóinknak, mintha ők végeznék az üzemeltetést. Ekkor csupán néhány apró kódrészletet kell beírni a weboldalukra, azt hogy mikor hívja meg a mi oldalunkat, másrészt hogyan jelenítse meg a visszakapott ajánlásokat, és gyakorlatilag néhány órás integrációs munkával el is indítható szolgáltatásként a működő ajánlórendszer. A szolgáltatás egyszerűbb üzemeltetése mellett a kódbázisunk védelme is könnyebben megoldható. Ha kiadjuk a rendszert a kezünkből, akkor annak titkosításra, védelemére is gondolni kell. Vannak azonban olyan esetek, ahol mégsem kivitelezhető szolgáltatásként. Például törvényi előírás szabályozza, hogy milyen típusú adatok nem hagyhatják el Angliát. Ilyenkor a szervereket Angliába kell telepíteni és onnan kell szolgáltatni. Ekkor esetleg célszerűbb, ha az adott cégnek kell az üzemeltetést is végeznie, amihez nekünk egy megfelelően részletes és biztonságos üzemeltetési leírást kell mellékelnünk, hogy az elvállalt minőséget garantálni tudjuk, és az üzemeltetők ne szoruljanak túl gyakran a mi tanácsunkra.

ME: Az igénybe vett ajánlórendszer mennyire formálódik a szolgáltatás ideje alatt?

TD: Kétféle tanulást különböztetünk meg. Vegyük például azt az esetet, amikor egy látogatáskor a felhasználónak van egy új eseménye, mondjuk megvesz egy könyvet. Ez alapján azonnal frissítjük az adott felhasználónak valamint a könyvnek a modelljét, ami már a következő klikkelésnél érezteti hatását az ajánlásokban. Ezek lokális módosítások a rendszerben, és amennyiben sok ilyen típusú frissítés érkezik, akkor maga a modell már nem lesz naprakész. Ezért időnként globális frissítésre van szükség, amit általában éjszakánként szoktuk végrehajtani. Attól függően, hogy mekkora az adathalmaz ez pár perctől akár egy óráig is terjedhet. Természetesen a globális frissítések nem az ajánlószerveren, hanem egy másik szerveren történnek, tehát nincs kieső idő az ajánlások küldésében.

ME: Ezek a frissítések az ajánlórendszer minőségén is javítanak?

TD: Valóban javul az ajánlórendszer minősége, azaz az ajánlási pontosság. Ugyanakkor gyakran alkalmazunk egy ún. avultatási faktor is, vagyis a régi adatokat egyre kisebb súllyal vesszük figyelembe. Idővel változik a felhasználók ízlése, befolyással vannak rájuk a trendek, az újdonságok. Ezért amennyiben elegendő mennyiségű friss adat áll rendelkezésre, a régiek nem tesznek hozzá az ajánlás minőségéhez. A 3 évvel korábban vásárolt könyvek nem lesznek olyan fontosak, mint az elmúlt hónapokban vásárolt 25 könyv.

gravity_kupa_kicsi

Strands $100K Call for Recommender Start-Ups 2008-as versenyének fődíja

ME: Ezek szerint vannak olyan információk, adatok, amelyek nem relevánsak az ajánlórendszer szempontjából?

TD: Vannak olyan információk, amelyek értéktelenek is lehetnek. Vannak például olyan oldalak, ahol be lehet jelölni, hogy az adott terméket ajándékba vásárolja az illető. Ez a vásárlás közvetlenül nem tükrözi a user saját ízlését, de közvetve igen, hiszen a másnak vásárolt könyv is árulkodik az ajándékozó ízléséről. Ebben az esetben elvileg teljesen figyelmen kívül is lehetne hagyni az adatot, mint nem relevánst a felhasználóhoz, de azért valamilyen súllyal ezeket is figyelembe szoktuk venni.

ME: Szokásaink mennyire tetten érhetők például az új digitális szolgáltatások, mondjuk az IPTV esetében?

gravity_filmes

TD: Az IPTV esetében nagyon kézenfekvőnek tűnik, hogy műsorokat ajánljunk. Sajnos legtöbbször ilyenkor is implicit adatokkal dolgozunk, bár megpróbálunk explicit adatokat is gyűjteni. Például van arra mód, hogy a set-top-box automatikusan vegyen fel filmeket. Ezt az ajánlórendszer szabályozza: olyan filmeket vesz fel a set-top-box, amikről azt gondoljuk, hogy a felhasználónak tetszeni fog. Ezeket egyrészt lehet értékelni, ami már explicit adat lesz, és amivel hatékonyan lehet javítani magán az ajánlórendszeren.

ME: Az Interneten a személyes beállítással megspékelt műsorújságok nem szolgálhatnak releváns információkkal a felhasználók ízléséről, szokásairól?

TD: Releváns információk lennének, ha összeköthetők lennének a set-top-boxon futó szoftverrel. Azonban ezek jellemzően zárt rendszerek, melyeket a gyártók nem véletlenül védenek le, korlátozva a set-top-boxon futó szoftverhez való hozzáférést.

ME: A set-top-box ajánlatai, az automatikusan felvett filmek mennyire befolyásolhatják a felhasználók ízlését? Lehetséges-e manipulálni a fogyasztót?

TD: Általánosságban elmondható, hogy inkább a felhasználó ízlése befolyásolja, avagy „manipulálja", szabályozza az ajánlórendszer működését. Ugyanakkor elvileg a szolgáltató is befolyásolhatja az ajánlatokat, azaz előnybe részesíthet bizonyos műsorokat, vagy műsorgyártókat, amit az ajánlórendszer üzleti szabályként figyelembe vesz. Ekkor is kicsiny azonban annak az esélye, hogy olyan ajánlat kerüljön a felhasználó elé, amelyik teljesen távol áll az ízlésétől. Ha ugyanis ilyeneket ajánlunk, akkor a felhasználó, még ha át is kapcsol az adott műsorra, ha az nem tetszik neki, továbblép, és valószínűleg legközelebb már át sem kapcsol. Ezt mi negatív visszajelzésnek vesszük, tehát hátrébb kerül az adott műsor(típus) a felhasználó ízléséről alkotott modellünkben.

ME: Ezek szerint optimistán azt is kérdezhetem, hogy az IPTV-k és az ajánlórendszerek segítségével mennyire befolyásolhatók maguk a szolgáltatók?

TD: Hogy a szolgáltatót mennyire tudják befolyásolni az ajánlórendszeren keresztül begyűjtött visszajelzések, ezt szerintem már a közeljövő eldönti. Ideális piaci helyzetben, amelyik szolgáltató gyorsabban reagál egy ilyen nagyszabású közvélemény-kutatásra, az versenyelőnybe kerül. Tehát érdemes lesz hallgatniuk az ajánlórendszerekből leszűrt tapasztalatokra.

{youtubejw}5C5bX1mPWtg{/youtubejw}

Az interjút készítette: Kőhegyi Ilona