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.