Dynamiczne systemy rekomendujące

14

Recommender system będzie mierzyć korelację między ocenie różnych użytkowników i zaleceń dochodowości dla danego użytkownika na temat elementów, które mogą być interesujące dla niego.

Jednak gusta zmieniają się z czasem, więc stare oceny mogą nie odzwierciedlać obecnych preferencji i odwrotnie. Być może kiedyś umieściłeś „doskonałą” w książce, którą teraz oceniasz jako „niezbyt obrzydliwą” i tak dalej. Co więcej, same interesy również się zmieniają.

Jak systemy rekomendujące powinny działać w zmieniającym się środowisku?

  1. Jedną z opcji jest odcięcie „starych” ocen, które mogą działać dobrze, zakładając, że poprawnie zdefiniujesz „stare” (możesz nawet powiedzieć, że oceny nigdy nie wygasają i udawać, że problem nie istnieje). Ale nie jest to najlepsza możliwa opcja: oczywiście smaki ewoluują, jest to normalny przebieg życia i nie ma powodu, dla którego nie możemy skorzystać z dodatkowej wiedzy o wcześniejszych prawidłowych ocenach.
  2. Inną opcją jest jakoś dostosowanie tej dodatkowej wiedzy. Dlatego nie mogliśmy po prostu znaleźć „natychmiastowego dopasowania” do twoich bieżących zainteresowań, ale zasugerować Ci to, co może Ci się podobać w przyszłości (w przeciwieństwie do rzeczy, które możesz teraz lubić ).

Nie jestem pewien, czy wyjaśniam to wystarczająco dobrze. Zasadniczo opowiadam się za drugim podejściem i mówię o systemie rekomendującym, który mierzyłby korelacje trajektorii smaku i rekomendacji wydajności, które zaspokoją ... no to nazwijmy to rozwojem osobistym - ponieważ będą pochodzić od ludzi, których „trajektoria smaku” (i nie tylko „migawka smaku”) jest podobna do twojej.

Teraz pytanie: zastanawiam się, czy coś podobnego do „opcji 2” już istnieje, a jeśli tak, zastanawiam się, jak to działa. A jeśli nie istnieje, możesz przedyskutować, jak to powinno działać! :)

andreister
źródło

Odpowiedzi:

8

Naprawdę polecam artykuł Filtrowanie współpracy z dynamiką czasową autorstwa Yehuda Koren (Konkurs Netflix!), W którym szczegółowo omówiono ten problem.

Zgadzam się z autorem, że pierwsza opcja („odcięcie”) nie jest dobrym rozwiązaniem. Prawdą jest, że przestarzałe preferencje są ignorowane w ten sposób, ale a) niektóre preferencje nigdy się nie zmieniają, dlatego zabija się dane w celu zidentyfikowania evergreenów i b) niektóre preferencje w przeszłości są wymagane, aby zrozumieć preferencje na przyszłość ( np. kup sezon 1 -> prawdopodobnie kupisz sezon 2).

Koren nie próbuje jednak jednoznacznie identyfikować takich trajektorii (tj. Aby można było przewidzieć przyszłe zmiany zachowań użytkownika), ponieważ jest to bardzo trudne zadanie. Możesz to sobie wyobrazić, pamiętając o tym, że „stacje” preferencji wzdłuż trajektorii NIE są związane z czasem, ale z osobistym rozwojem użytkownika, mogą być przerwane lub przekroczone przez inne trajektorie lub wyrażone po prostu w inny sposób. Np. Jeśli przechodzimy od filmów akcji twardych do filmów akcji, nie ma czegoś takiego jak określony „film akcji akcji miękkiej” lub coś w tym rodzaju. Użytkownik może wejść w ten obszar w dowolnym momencie (w czasie i przestrzeni przedmiotów). Te problemy w połączeniu z rzadkością danych sprawiają, że prawie niemożliwe jest stworzenie tutaj wykonalnego modelu.

Zamiast tego Koren próbuje rozdzielić przeszłe dane na długoterminowe sygnały wzorcowe i codzienny hałas w celu zwiększenia skuteczności prognozowania. Stosuje to podejście zarówno do SVD, jak i do prostego modelu współpracy neigborbood. Niestety jeszcze nie skończyłem matematyki, więc nie mogę podać więcej szczegółów na ten temat.

Dodatkowa uwaga na temat jawnego modelowania trajektorii

Obszar Sequence Mining zapewnia metody do wykonania, ale krytycznym punktem jest znalezienie odpowiedniej abstrakcyjnej reprezentacji elementów (ponieważ samo użycie elementów nie zadziała z powodu rzadkości), np. Grupowanie w znaczniki. Jednak chociaż to podejście może zapewnić pewne wgląd w zachowanie niektórych użytkowników (Data Mining!), Może nie być istotne, jeśli chodzi o aplikację dla wszystkich klientów (tj. Masę), tak więc modelowanie niejawne sugerowane przez Korena może być lepiej na końcu.

steffen
źródło
Artykuł Yehudy jest bardzo zbliżony do tego, o czym mówiłem, chociaż w rzeczywistości nie mówi o „trajektoriach smaku”. Być może masz rację, a „szybkość zmiany smaku” nie jest ustalona dla żadnej osoby. Dzięki za link!
andreister
Tak, to pierwsza rzecz, o której myślałem.
Stumpy Joe Pete,
2

Nie znam działającego systemu, ale nie zdziwiłbym się, gdyby Amazon, NetFlix lub ktoś miał taki system. Nawet wyszukiwarka Google może mieć podobny typ systemu.

Myślałem o tym, biorąc udział w kursie Dr. Ng w ostatnim semestrze. Podejście, które po raz pierwszy uznałem za optymalne, polegałoby na dodaniu współczynnika ważenia na podstawie wieku. Im bardziej aktualny jest kawałek danych, tym bardziej będzie ważony. Takie podejście byłoby stosunkowo proste i niedrogie obliczeniowo do wdrożenia.

Jednak po dokładniejszym przemyśleniu tego podejścia wydaje mi się, że ma on poważne wady w wielu zastosowaniach. Osobiście często śledzę gatunek lub program przez jakiś czas, męczę się nim, przechodzę do czegoś innego, ale później wracam do oryginalnego gatunku. Ten wypalający się cykl na nowo pojawia się również w społeczeństwie.

Dlatego skłaniam się ku nieco bardziej skomplikowanemu systemowi. Dane musiałyby zostać podzielone na dwa zestawy; aktualne dane - próg musiałby się różnić w zależności od zastosowania i długości interakcji poszczególnych osób - które byłyby ważone bardziej, a dane „historyczne”, które byłyby oceniane niżej przy powolnym spadku wartości w czasie. Po drugie, uwzględniono by próbę wykrycia „wyłączenia”, gdy nagle zanika duże zainteresowanie lub zaangażowanie. „Aktualne” dane, które są podobnie sklasyfikowane, zostałyby przeklasyfikowane, jakby były historyczne.

Żadne z tych podejść nie ma żadnego rygoru ani uzasadnienia, ale uważam, że warto byłoby zbudować kilka prób hipotezy.


źródło
Twój pomysł na niższe wagi dla starych danych jest w rzeczywistości podobny do „opcji 1”. Zamiast tego mówię, że cała trajektoria zmieniającego się smaku jest ważna - tj. Jeśli wczoraj lubiłeś gatunek A, a dzisiaj lubisz gatunek B, system patrzyłby na innych ludzi z tym samym „AB-?” smakuje ruchy i sugeruje, że jutro spodoba ci się gatunek C.
ireister
1

Według mnie zmodyfikowana wersja filtrowania grupowego może działać. Będziesz jednak musiał zachować znacznik czasu na każdym rankingu i nałożyć karę, obliczając wagę rangi, która jest starsza.

vonPetrushev
źródło