Chcę wdrożyć model dynamiczny, aby polecić film użytkownikowi. Zalecenia należy aktualizować za każdym razem, gdy użytkownik ogląda film lub ocenia go. Dla uproszczenia myślę o wzięciu pod uwagę dwóch czynników:
- wcześniejsze oceny innych filmów użytkownika
- czas, w którym użytkownik obejrzał niektóre poprzednie filmy
Jak skonfigurować taki model i co poleca literatura akademicka?
Jestem nowy w tej dziedzinie i domyślam się, że liniowy model regresji może zapewnić dobry wynik, a nie zbyt skomplikowane metody, aby uniknąć nakładania niepotrzebnej niepewności w oszacowaniach parametrów. Ale może istnieją już ustalone metody, które są powszechnie stosowane w praktyce?
machine-learning
recommender-system
dynamic-regression
JohnAndrews
źródło
źródło
Odpowiedzi:
Jest to właściwie stosunkowo znany problem w dziedzinie uczenia maszynowego. W ~ 2006 r. Netflix zaoferował algorytmowi 1 mln USD, który zapewnił najlepszą rozsądną poprawę systemu rekomendującego. Teorię zwycięskiego rozwiązania omówiono pokrótce w tym podręczniku Caltech na temat wstępnego uczenia maszynowego.
Zasadniczo zastosowano kompleksową metodę uczenia się . W szczególności zastosowano rodzaj mieszania lub układania w stos . Jest to nietrywialne, ale trochę intuicyjne. Aby zrozumieć intuicję korzystania z różnych metod statystycznych w harmonii, rozważ różne powody, dla których różni ludzie lubią te same filmy: np. Joe może lubić Topgun, ponieważ uwielbia filmy akcji z lat 80., a Jane lubi Topgun, ponieważ lubi filmy ze ścieżkami dźwiękowymi Kenny'ego Logginsa. Tak więc fakt, że obaj oglądali (i wysoko ocenili film) niekoniecznie oznacza, że polubią inne filmy z dużym prawdopodobieństwem. Algorytm predykcji idealnie byłby w stanie uwzględnić te różnice, przynajmniej w pewnej mierze.
Może to sprawić, że rozwiązanie będzie wydawać się dość proste, ale równoważenie konkurencyjnych algorytmów i ustalanie priorytetów dla każdego przypadku zdecydowanie nie jest proste. Fakt, że Netflix oferował tak dużą nagrodę, powinien uczynić skalę wyzwania dość oczywistym.
Jeśli dopiero zaczynasz uczenie maszynowe, sprawdzenie powyższych zasobów może być pomocne w zależności od poziomu zainteresowań i tła matematycznego. Zatem regresja prawdopodobnie działałaby dobrze w porządku, ale możliwa jest znacznie lepsza wydajność.
źródło
Połowa wyzwań związanych z tymi problemami to wiedza, czego szukać.
Być może dodałeś tag, nie zdając sobie z tego sprawy, ale tak naprawdę szukasz informacji o systemach rekomendujących . Być może warto zacząć od wspólnego filtrowania , a jeszcze lepiej we wprowadzeniu do podręcznika Systemów rekomendujących Ricci, Rokach i Shapiry cytowanego na tej stronie.
źródło
Powinieneś sprawdzić kurs Andrew Ng na Coursera: https://www.coursera.org/learn/machine-learning. Zawiera lekcję budowania systemów rekomendujących, które wydają się być tym, czego szukasz. Zasadniczo jest to forma regresji liniowej, która uczy się syntetycznych atrybutów filmów od osób, które oceniały filmy i używa ich do przewidywania rekomendacji dla osób, które nie oceniały / nie oglądały filmów.
źródło
W Netflix Challenge (październik 2006 r. - wrzesień 2009 r.) Bardzo duży zespół (107 osobnych podmodeli) zdobył w końcu główną nagrodę w wysokości 1 mln USD, ale warto zauważyć, że pierwsze proste (niepołączone) algorytmy, które pokonały Netflix Cinematch punkt odniesienia oparto na uogólnionej (rzadkiej macierzy) SVD. Ten pierwszy kamień milowy pokonania Cinematch został osiągnięty zaledwie 6 dni po zawodach rozpoczętych przez zespół o nazwie WXYZConsulting.
SVD (Singular Value Decomposition) to algorytm faktoryzacji macierzy, w którym zaczynasz od
[user, movie]
macierzy 2d z oceną (1 do 5 gwiazdek) w każdej[u, m]
pozycji (*) i dzielisz ją na 3 macierze, w których środkowa macierz jest macierzą kwadratową ukryte interakcje między użytkownikami a filmami.Możesz zmniejszyć lub zwiększyć rangę macierzy kwadratowej, aby uwzględnić odpowiednio mniej lub więcej takich interakcji z utajonym czynnikiem.
Istnieje kilka implementacji darmowego oprogramowania szybkiego / wydajnego rzadkiego SVD. Na przykład redsvd lub wedpal-wabbit, więc zanim napiszesz własne, możesz je wypróbować.
(*) Większość z tych wpisów to zero, ponieważ większość użytkowników nie oceniło większości filmów. tj. matryca jest bardzo rzadka.
Bibliografia:
źródło