Otwarty silnik rekomendacji filmów

  • Home
  • /
  • Blog
  • /
  • Otwarty silnik rekomendacji filmów

Data: 5 maja, 2010

Od kilku dni rekomendacje filmów w społecznościowym serwisie Filmaster generuje nowy algorytm dostępny na licencji AGPLv3.

Nowy silnik rekomendacji serwisu stworzony został w oparciu o dobre praktyki wypracowane przez programistów pracujących nad rozwiązaniem konkursu Netflix (zwiększenie o 10% celności filmowych rekomendacji).
Trafność rekomendacji nowego algorytmu Filmastera wyliczona za pomocą testu silników rekomendacji, jest prawie 20% większa niż wcześniejszego algorytmu. Konkretnie, wartość RMSE wyliczona na podstawie około ćwierć miliona ocen wynosi:
– 1,55 dla starego algorytmu
– 1,30 dla nowego

Nowy algorytm pobiera dane dotyczące głosów z bazy danych, następnie przetwarza je generując rekomendacje, by ostatecznie nadpisać wcześniej wygenerowane rekomendacje w bazie. Pierwsza i ostatnia część jest oczywiście specyficzna dla Filmastera. Sam algorytm jednak, będący sercem silnika, jest całkowicie uniwersalny i może być wykorzystany w dowolnym projekcie open source.

Nad nowym algorytmem rekomendacji pracował Jakub Tlałka. W zeszłym roku licealista w Staszicu i finalista Olimpiady Matematycznej, obecnie student pierwszego roku matematyki i informatyki Uniwersytetu Warszawskiego oraz dorywczo programista Filmastera.

Mimo że serwis Filmaster napisany jest w większości w Pythonie (framework django), silnik rekomendacji zaimplementowany został w C++ ze względu na większą wydajność. Kod nowego silnika pobrać można z repozytorium. Podobnie jak całość kodu Filmastera dostępny jest on na licencji AGPLv3.

Szczegółowa dokumentacja techniczna nowego algorytmu znajduje się na wiki: New recommendation engine. Porównać ją można z wcześniejszym algorytmem oraz z niezaimplementowanym pomysłem na alternatywny algorytm rekomendacji.

Algorytm przetestować możecie oceniając co najmniej 20 filmów w serwisie Filmaster (wymagane jest konto), a następnie przechodząc na stronę rekomendacji filmów. Alternatywnie, możecie zaaplikować mechanizm rekomendacji na własnych danych. W przypadku sukcesów lub porażek, prosimy o komentarze.

Podobne wpisy

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone


  1. Przydałaby się jeszcze dla porównania informacja, że algorytm Netfliksa ma RMSE na poziomie około 0.9 (wiem, że można kliknąć w link do newsa o konkursie, ale dobrze by było zawrzeć taką informację również w tym).
    Jakub Tlałka – świetna robota!
    (ale zawsze może być lepiej ;p)

  2. przemoc pisze:

    <code>#define FOR(i,a,n) for(int i=a;i<=n;i++)
    #define REP(i,n) for (int i=0;i<n;i++)
    #define FORD(i,n,a) for(int i=n;i>=a;i–)</code>

    No tak, nie mogło zabraknąć tych trzech nieśmiertelnych makr… 🙂

    EDIT: WP to straszny złom, kto mu każe interpretować zawartość tekstu między znacznikami code?

      1. sebastian pisze:

        tego uczą przy rozwiązywaniu zadań na olimpiadach/konkursach programistycznych, jak ma się kilka godzin na rozwiązanie zadań przydają się takie tricki 🙂

  3. halish pisze:

    styl w ogóle strasznie zajeżdża olimpiadą informatyczną i innymi konkursami algorytmicznymi:)

    no, ale szacunek należy się za sam algorytm. oby tak dalej!

  4. golem14 pisze:

    lepiej zapytajcie się gości z filmweba jak tam ich system rekomendacji i nowa strona, o których tak BARDZO bardzo szumnie było w marcu, a ktore miały ruszyć w kwietniu i nie ma…

    1. emailtoid.net/i/f491 pisze:

      Pewnie czekają aż Jakub dokończy swój algorytm żeby go wykorzystać u siebie ;>

  5. wujek_bogdan pisze:

    czy to ten sam, który został wprowadzony 1 kwietnia :> ?

    1. michuk pisze:

      Nie, tamtego napisał nam jakiś matematyk z CERNu. Przy Jakubie to płotka :>

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Newsletter OSnews raz w tygodniu. Bez reklam.