Arkadiusz Paterek - walczył o milion dolarów w konkursie Netfliksa, ale... nie obronił trzeciego miejsca
W naszym niedawnym tekście na temat systemu rekomendacji wspomnieliśmy o konkursie Netflixa - Netflix Prize. Po publikacji tekstu odezwał się do nas jeden z uczestników konkursu - Arkadiusz Paterek. Przypomnijmy, konkurs polegał na stworzeniu systemu rekomendacji lepszego o 10% od tego zbudowanego przez Netflix (Cinematch), a uczestnicy rywalizowali o nagrodę w wysokości miliona dolarów.
W konkursie Netfliksa uczestniczyło ponad 5 tysięcy zespołów ze 186 krajów. Algorytm Arkadiusza był w pewnym momencie na trzecim miejscu skuteczności w rywalizacji do nagrody, by ostatecznie, w momencie zakończenia konkursu, znaleźć się w top 50 wszystkich uczestników.
Arkadiusz Paterek zgodził się opowiedzieć nam o swoich wrażeniach z uczestnictwie w konkursie i o tym, czym się teraz zajmuje.
Hubert Taler, Spider's Web: Dzień dobry, powiedz proszę kilka słów o sobie dla naszych Czytelników
Arkadiusz Paterek: Zajmuję się programowaniem i machine learningiem. Jestem twórcą stron 5000best.com i random-strangers.pl. W konkursie Netflix Prize zająłem 43. miejsce na ponad 5000 startujących, a w pewnym momencie byłem trzeci.
Mam kilka prywatnych projektów. Staram się, żeby wszystkie miały krótko- lub długoterminowe uzasadnienie biznesowe. W miarę jak coraz lepiej rozumiem świat internetowego B2C, przychodzą mi do głowy coraz lepsze pomysły, które muszę wypróbować, bo jeśli tego nie zrobię, to do końca życia będę żałował. Ostatnio pracowałem nad kontami premium do mojej strony RandomStrangers. Uważam, że czaty losowe połączone z ocenianiem rozmów i systemem rekomendacji mogą być 10 razy bardziej popularne niż zwykłe czaty losowe jak Omegle czy Chatroulette. Czas pokaże, czy mam rację.
Rekomendacje filmów mojego autorstwa można przetestować na stronie 5000best.com/movies/Personalized.
Z kolei moje najnowsze przedsięwzięcie, strona Random Strangers, to połączenie Chatroulette z systemem rekomendacji, a więc zamiast polecania filmów, polecanie ludzi innym ludziom.
Na czym polegał konkurs Netflix Prize?
Netflix Prize to był konkurs przewidywania ocen filmów z nagrodą 1 mln dolarów, który rozpoczął się w październiku w 2006 roku. Netflix dziś zajmuje się głównie streamingiem filmów, ale w tamtym czasie zajmował się wypożyczaniem płyt DVD z filmami. Użytkownicy zamawiali płyty przez Internet i po obejrzeniu kolejnego filmu za każdym razem musieli podjąć decyzję, jaki kolejny film wybrać do wysyłki. W decyzji pomagał im system rekomendacji filmów stworzony przez Netflixa i tu pojawiła się potrzeba dokładnego przewidywania, jak dany użytkownik oceniłby dany film.
Netflix udostępnił zbiór danych ze 100 milionami ocen filmów i zadaniem było stworzyć algorytm predykcji lepszy od algorytmu Netflixa o 10% według zadanego kryterium.
Jak dowiedziałeś się o konkursie i jak się w niego zaangażowałeś?
Dowiedziałem się o konkursie Netflix Prize miesiąc po jego rozpoczęciu. Szukałem wtedy konkursu predykcji, na który planowałem poświęcić miesiąc pracy. Netflix Prize na tyle przekraczał moje oczekiwania, zarówno wysoką nagrodą, przydatnością rozwiązywanego zadania i też tym, że zadanie było ciekawe, że zdecydowałem się poświęcić więcej czasu na spróbowanie swoich sił. Mniej więcej dwa miesiące później, jeżeli mnie pamięć nie myli, wszedłem do pierwszej dwudziestki. W tamtym czasie wydawało się, że konkurs zostanie rozstrzygnięty w ciągu kolejnych 2-4 miesięcy. Okazało się jednak inaczej. Konkurs okazał się być na granicy bycia możliwym do wygrania i właściwie każdego miesiąca była do podjęcia decyzja, czy poświęcić
więcej czasu, czy odpuścić.
Dziewięć miesięcy po rozpoczęciu konkursu udało mi się osiągnąć trzecie miejsce z algorytmem o 7.04% lepszym od algorytmu Netflixa. Prowadziła drużyna późniejszych zwycięzców z 7.80% poprawy. W tamtym czasie opublikowałem opis swojego rozwiązania na współorganizowanych przez Netlixa warsztatach będących częścią konferencji KDD - jednej z największych konferencji data mining. Okazało się, że wszystkie cztery pierwsze drużyny zdecydowały się opisać swoje rozwiązania. Ja byłem tą czwartą drużyną.
Od roku 2007 jest to najczęściej cytowana publikacja na wydziale MIM Uniwersytetu Warszawskiego (studiów doktoranckich zdecydowałem się nie kończyć, bo nic nie płacili - nie miałem stypendium).
Netflix bardzo długo nie przyznawał nagrody głównej, jednak zdecydował się przyznawać nagrody pośrednie. Opowiedz o tym.
Netflix rozdawał co roku dodatkową nagrodę Progress Prize 50 tys. dolarów w razie niewygrania nagrody głównej. Kilka dni przed momentem przyznania nagrody razem z jednym uczestnikiem konkursu z USA zdecydowaliśmy się połączyć siły i dzień przed Progress Prize nasza nowo utworzona dwuosobowa drużyna wskoczyła na drugie miejsce. Pisali o tym np. w tym artykule zwycięzcy nagrody Progress Prize, a później całego konkursu.
Zgodnie z regulaminem konkursu, zwycięzcy Progress Prize musieli opublikować swoje dokładne rozwiązanie, i razem z poprzednimi publikacjami czołowych drużyn zmniejszyło to "barierę wejścia" w konkursie. Pojawiło się wielu nowych uczestników z dobrymi wynikami.
Czy miałeś jakieś propozycje ze świata biznesu po swoim sukcesie?
Moja wysoka pozycja w konkursie przyciągała też zainteresowanie biznesu. Na przykład, przedstawiłem wykład zaproszony w banku inwestycyjnym w Nowym Jorku - firmie z listy Fortune 500. Uruchomiłem także samodzielnie w roku 2008 serwis o nazwie "System rekomendujący wszystko", w którym można było oceniać filmy, książki, strony internetowe w skali 1-5, ale to przedsięwzięcie się ostatecznie nie udało.
Czy miałeś jakieś ciekawe propozycje pracy dzięki uczestnictwie w konkursie?
Z zasady propozycje zatrzymuję dla siebie. Skorzystałem z propozycji pracy na Uniwersytecie Kalifornijskim. Było zainteresowanie z z firm mniejszych i większych, i też ze startupów - z USA, Europy Zachodniej i z Polski. Właściwie to jeśli okazywało się, że chodzi tylko o zwykłą propozycję pracy, wtedy byłem raczej zawiedziony, bo znalezienie pracy w Warszawie to nigdy nie był problem, wystarczyło wysłać kilka CV.
Pierwszą pracę jako programista miałem w wieku 19 lat i zarabiałem więcej niż nauczyciele na wydziale, na którym byłem studentem. Zaangażowanie w konkurs Netflixa nie byłoby efektywnym sposobem na szukanie pracy, natomiast, poza zdobyciem wiedzy i szansą na nagrodę, był to jakiś sposób na wyrobienie sobie marki i pokierowanie swoją karierą zawodową.
Programistów są miliony i jeśli masz dodatkowe, unikalne i potrzebne kompetencje, to dobrze jest je w jakiś sposób zademonstrować, żeby poradzić sobie w świecie, w którym jesteś produktem jako pracownik, a nie tylko tworzysz produkty.
Jak rozumiem, konkurs polegał na tym aby ze skutecznością lepszą o 10% przewidzieć ocenę filmu przez konkretnego klienta niż system Netfliksa. Czy operowałeś na danych dostarczonych przez Netflix (oceny)? Jak wyglądały dane jakie dostawałeś? Czy dużo czasu poświęcałeś na tworzenie algorytmu na konkurs?
Wszyscy uczestnicy otrzymali jednakowy zbiór danych ze 100 milionami ocen, wystawionych przez około 500 tys. użytkowników, dla około 20 tys. filmów. Netflix udostępniał stronę, gdzie wysyłało się przewidywane oceny dla danych par użytkownik i oceniany film, a automatyczny system obliczał punktację i nowe miejsce na liście wyników. Nie podejmuję się oszacowania, jak dużo czasu poświęciłem na konkurs. Samej pracy programistycznej było w sumie więcej niż rok.
Czy Twój system opierał się na sieci neuronowej / maszynie uczącej się? Jak myślisz, czy Netflix budując teraz nowy system opiera się na algorytmach otrzymanych w czasie konkursu?
Moje końcowe rozwiązanie było połączeniem około 70 metod i rzeczywiście, wiele z nich można rozumieć jako sieci neuronowe, choć niedokładnie takie, jakich się uczy na internetowych kursach machine learning.
Myślałem o napisaniu własnego tutoriala machine learning, ale zanim się w coś takiego zaangażuję, musiałbym mieć pewność, że taki pomysł ma "uzasadnienie biznesowe".
Nie wiem dokładnie, nad czym pracuje teraz Netflix. Na pewno do tej pory zdązyli skorzystać z pomysłów z konkursu. Netflix zajmuje się dziś po pierwsze streamingiem filmów i, z tego co pisali, przewidywanie ocen i system rekomendacji grają mniejszą rolę niż w przypadku płyt DVD, bo możesz po prostu wskoczyć w środek kilku filmów, żeby sprawdzić czy ci się podobają.
Czy uczestniczyłeś w konkursie całkowicie zdalnie czy byłeś w USA w tym celu? Jak nawiązałeś współpracę z innym uczestnikiem konkursu?
Konkurs był całkowicie zdalny, poza konferencją w USA, gdzie można było porozmawiać z innymi uczestnikami i z organizatorami ze strony Netflixa.
Większość pracy wykonałem z Polski w pierwszym roku konkursu. W momencie utworzenia drużyny jeszcze nie wiedziałem, że później będę mieszkał w USA. W samym USA nie było dużo czasu na pracę nad konkursem.
Jak i kiedy w końcu zakończył się konkurs?
Konkurs Netflix Prize trwał do lipca 2009 roku, a więc prawie trzy lata, i ponad 5000 drużyn nadesłało co najmniej jedno rozwiązanie. Ostatecznie zająłem miejsce 43. indywidualnie, a 34. w drużynie.
Co ciekawe, dwie najlepsze drużyny uzyskały identyczny wynik, a o zwycięstwie i wygraniu miliona zadecydował czas nadesłania rozwiązania - 7-osobowa drużyna zwycięzców "Bellkor's Pragmatic Chaos" była o 20 minut szybsza od ponad 30-osobowej drużyny "The Ensemble".
Moją satysfakcją jest, że wszyscy zwycięzcy konkursu cytowali moją pracę i używali między innymi metod opublikowanych przeze mnie.
Wspominałeś w rozmowie, jak również na swoim blogu, że twoja praca jest najczęściej cytowaną na twoim wydziale, a jednak zdecydowałeś się nie kończyć studiów doktoranckich. Czy porzuciłeś zupełnie karierę naukową?
Tak, na ten moment wyzbyłem się ambicji naukowych i życie jest o wiele prostsze. Niższe rejony piramidy potrzeb Masłowa też dają satysfakcję. Uprawianie nauki poza systemem oczywiście nie ma większego sensu, chyba że ktoś chce być ascetą, który poświęci się dla ludzkości.
Można też zniknąć w korporacji i uprawiać coś w rodzaju nauki, a tak naprawdę pracować na to, żeby duża firma stała się jeszcze większa, ale zamiast tego dlaczego nie zająć się po prostu zarabianiem
pieniędzy?
Czy uważasz że uczelnia mogła coś zrobić aby Cię zatrzymać?
Uczelnia wyżywi się sama i nie potrzebuje takich ludzi jak ja. Miałem wrażenie, że im lepsze mam wyniki, im więcej rozumiem, tym bardziej w tym miejscu przeszkadzam.
Problem nie do ominięcia na uniwersytetach to zjawisko o nazwie "profesorowie informatyki", co to nie wiadomo nawet, czy potrafią programować, o prowadzeniu jakichkolwiek sensownych badań nie wspominając.
Za co wypłacają sobie nawzajem pensje - sami wiedzą to najlepiej.
Czy możesz skomentować ogólną sytuację młodych naukowców w polskich uczelniach?
Z tego co zaobserwowałem, jeżeli ktoś się zdecyduje zostać przydupasem absurdalnych ludzi, to w dłuższej perspektywie czeka go wygodna kariera, pensje, tytuły, granty, fundusze unijne i niewiele pracy.
Natomiast tym prawdziwym pasjonatom informatyki, którzy próbują kariery uniwersyteckiej, życzę szczęścia, ale jak to się mówi, kropla drąży skałę, a z kim przestajesz, takim się stajesz.
Dziękuję za rozmowę i życzę powodzenia w kolejnych przedsięwzięciach.