Wspólne filtrowanie

Aby zlikwidować niektóre ograniczenia filtrowania na podstawie treści, filtrowanie oparte na współpracy wykorzystuje podobieństwa użytkowników elementów jednocześnie, by wyświetlać rekomendacje. Dzięki temu losowych rekomendacji, czyli filtrowania z wykorzystaniem współpracy modele mogą polecić użytkownikowi A produkt na podstawie zainteresowań podobny użytkownik B. Wektory dystrybucyjne są też możliwe automatycznie, bez konieczności ręcznego opracowywania funkcji.

Przykład rekomendacji filmu

Rozważmy system rekomendacji filmów, w którym dane treningowe macierzy opinii, w której:

  • Każdy wiersz odpowiada użytkownikowi.
  • Każda kolumna reprezentuje element (film).

Opinie na temat filmów można podzielić na jedną z dwóch kategorii:

  • Dla pełnoletnich – użytkownicy określają, jak bardzo podoba im się dany film. podając ocenę liczbową.
  • Pośredni – jeśli użytkownik ogląda film, system twierdzi, że jest zainteresowany.

W celu uproszczenia założymy, że macierz sprzężenia zwrotnego jest binarna. czyli wartość wynosi 1 wskazuje zainteresowanie filmem.

Gdy użytkownik odwiedza stronę główną, system powinien polecać filmy na podstawie:

  • podobieństwo do filmów, które użytkownik polubił w przeszłości;
  • filmy polubione przez podobnych użytkowników

Żeby tylko pokazać, narysujmy ręcznie niektóre funkcje opisane w poniższej tabeli:

Film Ocena Opis
Mroczny rycerz powstaje PG-13 Batman próbuje ocalić Gotham City przed zagładą nuklearną w tej kontynuacji Mroczny rycerz, Rozgrywające się w Dystrykcie Kolumbii Świat komiksów.
Harry Potter i kamień filozoficzny PG Osierocony chłopiec odkrywa, że jest czarodziejem, i zapisuje się Szkoła Hogwartu Czary i czarodzieje, w których toczy swoją pierwszą walkę złego Lorda Voldemorta.
Shrek PG Uroczy ogr i jego pomocnik na osiołku wyruszają na misję aby uratować księżniczkę Edowię, uwięziona przez smoka w swoim zamku.
Trójkąty w Belleville PG-13 Kiedy zawodowy zawodowiec Champion zostaje porwany Tour de France, babcia z psem z nadwagą wyruszyła w podróż za granicę, aby go uratować. z pomocą trójki starszych piosenkarzy jazzowych.
Memento R Amnezjatyk rozpaczliwie próbuje rozwiązać śmierć żony przez tatuowanie wskazówek na ciele.

Umieszczanie 1D

Załóżmy, że do każdego filmu przypisujemy wartość skalarną \([-1, 1]\) , która opisuje czy film jest przeznaczony dla dzieci (wartości ujemne), czy dla dorosłych (wartości dodatnie). Załóżmy, że każdemu użytkownikowi przypiszemy też wartość skalarną \([-1, 1]\) , która opisuje zainteresowanie filmem dla dzieci (bliższym niż -1) lub filmami dla dorosłych. (bliżej przycisku +1). Iloczyn filmu i użytkownika w przypadku filmów, w których użytkownik powinien umieścić film, powinien znajdować się na wyższym poziomie (bliżej 1). polubić.

Obraz przedstawiający kilka filmów i użytkowników rozmieszczonych wzdłuż jednowymiarowej przestrzeni wektora dystrybucyjnej. Pozycja każdego filmu na tej osi określa, czy jest to film dla dzieci (po lewej) czy dla dorosłych (po prawej). Pozycja użytkownika opisuje jego zainteresowanie filmami dla dzieci lub dorosłych.

Każdy znacznik wyboru na poniższym schemacie wskazuje film, który oglądanych przez użytkownika. Trzeci i czwarty użytkownik ma preferencje, które są dobrze wyjaśniono tę funkcję – trzeci użytkownik preferuje filmy dla dzieci. a czwarty preferuje filmy dla dorosłych. Jednak pierwsze i drugie użytkowników nie są dobrze wyjaśnione przez tę pojedynczą funkcję.

Obraz macierzy opinii, w którym wiersz odpowiada użytkownikowi, a kolumna – filmowi. Każdy użytkownik i każdy film są mapowane na jednowymiarowy wektor dystrybucyjny (jak opisano na poprzedniej ilustracji), tak że iloczyn dwóch wektorów dystrybucyjnych przybliża wartość danych podstawowych (ground truth) w macierzy opinii.

Umieszczanie 2D

Jedna funkcja nie wystarczyła, aby wyjaśnić preferencje wszystkich użytkowników. Do pokonania do tego problemu, dodajmy drugą cechę: stopień, w jakim każdy film jest przebojowego hitu lub filmu studyjnego. Dzięki drugiej funkcji możemy teraz reprezentować każdy film o następującym, dwuwymiarowym osadzeniu:

Obraz przedstawiający kilka filmów i użytkowników rozmieszczonych w dwuwymiarowej przestrzeni wektora dystrybucyjnego. Pozycja każdego filmu wzdłuż osi poziomej określa, czy jest to film dla dzieci (po lewej) czy dla dorosłych (po prawej). jego położenie wzdłuż osi pionowej określa, czy film jest hitem (u góry) czy kino niezależnego (u dołu). Pozycja użytkowników odzwierciedla ich zainteresowania w każdej kategorii.

Umieszczamy naszych użytkowników ponownie w tym samym miejscu, by wyjaśnić, macierz opinii: w każdej parze (użytkownik, element) iloczyn skalarny umieszczania elementu oraz elementu służącego do jego zamknięcia na 1, gdy użytkownik obejrzał film, i na 0, jeśli użytkownik obejrzał film.

Obraz tej samej macierzy opinii. Tym razem każdy użytkownik i każdy film są mapowane na dwuwymiarowy wektor dystrybucyjny (jak opisano na poprzedniej ilustracji), tak że iloczyn skalarny dwóch wektorów dystrybucyjnych przybliża wartość danych podstawowych (ground truth) w macierzy opinii.

W tym przykładzie ręcznie opracowaliśmy wektory dystrybucyjne. W praktyce wektory dystrybucyjne można nauczyć się automatycznie, dzięki czemu możliwe jest filtrowanie oparte na współpracy. modeli ML. W kolejnych 2 sekcjach omówimy różne modele, aby poznać oraz jak je trenować.

Takie podejście dało się zauważyć, gdy model uczył się wektory dystrybucyjne. Załóżmy, że wektory dystrybucyjne dla filmów są stałe. Następnie: model może nauczyć się wektora dystrybucyjnego, aby użytkownicy mogli jak najlepiej wyjaśnić swoje preferencje. W efekcie osadzone grupy użytkowników o podobnych preferencjach będą znajdować się blisko siebie. Podobnie jeśli wektory dystrybucyjne dla użytkowników są stałe, możemy nauczyć się wektorów dystrybucyjnych filmów, aby jak najlepiej wyjaśnić macierz sprzężenia zwrotnego. W rezultacie reprezentacje filmów polubionych przez podobnych użytkowników zostaną wycofane w obszarze osadzania.

Sprawdź swoją wiedzę

Model poleca użytkownikowi aplikację zakupową, ponieważ ostatnio zainstalowali podobną aplikację. Jakiego rodzaju filtrowania jest to przykład?
Filtrowanie na podstawie treści
Dobra robota! Filtrowanie na podstawie treści nie uwzględnia innych użytkowników.
Wspólne filtrowanie
Wspólne filtrowanie uwzględnia innych użytkowników. W w danej sytuacji zależy nam tylko na jednym użytkowniku.