Polecanie filmów z dodatkowymi funkcjami za pomocą wspólnego filtrowania

17

Próbuję zbudować system rekomendacji przy użyciu filtrowania grupowego. Mam zwykłe [user, movie, rating]informacje. Chciałbym włączyć dodatkową funkcję, taką jak „język” lub „czas trwania filmu”. Nie jestem pewien, jakich technik mógłbym użyć w przypadku takiego problemu.

Proszę sugerować referencje lub pakiety w Pythonie / R.

Sidha
źródło

Odpowiedzi:

17

Oto niektóre zasoby, które mogą być pomocne:

Aleksandr Blekh
źródło
4

Zamiast filtrowania grupowego zastosowałbym metodę faktoryzacji macierzy, w której użytkownicy i filmy reprezentowane są przez wektory utajonych obiektów, których iloczyn skalarny daje oceny. Zwykle wybiera się jedynie rangę (liczbę cech) bez względu na to, co reprezentują cechy, a algorytm zajmuje się resztą. Podobnie jak PCA, wynik nie jest natychmiast interpretowalny, ale daje dobre wyniki. To, co chcesz zrobić, to rozszerzyć matrycę filmową o dodatkowe funkcje, o których wspomniałeś, i upewnij się, że pozostaną one stałe, ponieważ algorytm szacuje dwie matryce za pomocą regularizastionu. Odpowiednie wpisy w matrycy użytkownika zostaną zainicjowane losowo, a następnie oszacowane przez algorytm faktoryzacji macierzy. To wszechstronne i wydajne podejście, ale wymaga pewnej wiedzy na temat uczenia maszynowego,

Widziałem jakiś fajny notatnik ipython, ale nie mogę go teraz znaleźć, więc odsyłam cię do innego, który, choć nie tak miły, wciąż wyjaśnia niektóre matematyki.

Emre
źródło
Dzięki, szukałem czegoś na tych liniach. Byłoby niezwykle pomocne, gdybyś mógł odwołać się do samouczka lub notesu ipython omawiającego to.
Sidhha,