Systemy rekomendujące — kompletny przewodnik po modelach uczenia maszynowego

Nov 25 2022
Wykorzystanie danych, aby pomóc użytkownikom w odkrywaniu nowych treści Systemy rekomendacji: dlaczego i jak? Systemy rekomendujące to algorytmy dostarczające spersonalizowane sugestie dotyczące elementów, które są najbardziej odpowiednie dla każdego użytkownika. Wraz z ogromnym wzrostem dostępnych treści online, użytkownicy zostali zasypani możliwościami wyboru.

Wykorzystanie danych, aby pomóc użytkownikom odkrywać nowe treści

Zdjęcie Javiera Allegue Barrosa na Unsplash

Systemy rekomendujące: dlaczego i jak?

Systemy rekomendujące to algorytmy dostarczające spersonalizowane sugestie dotyczące elementów, które są najbardziej odpowiednie dla każdego użytkownika. Wraz z ogromnym wzrostem dostępnych treści online, użytkownicy zostali zasypani możliwościami wyboru. Dlatego kluczowe znaczenie ma, aby platformy internetowe oferowały rekomendacje produktów każdemu użytkownikowi, aby zwiększyć jego satysfakcję i zaangażowanie.

YouTube rekomenduje użytkownikom filmy, aby pomóc im odkrywać i oglądać interesujące ich treści pośród ogromnej liczby dostępnych treści. (Obraz autorstwa autora)

Poniższa lista pokazuje przykłady dobrze znanych platform internetowych z ogromną liczbą dostępnych treści , które potrzebują wydajnych systemów rekomendacji, aby utrzymać zainteresowanie użytkowników.

  1. YouTube . W każdej minucie ludzie przesyłają 500 godzin filmów , co oznacza, że ​​obejrzenie wszystkich filmów przesłanych w ciągu ostatniej godziny zajęłoby użytkownikowi 82 lata.
  2. Spotify . Użytkownicy mogą słuchać ponad 80 milionów utworów muzycznych i podcastów .
  3. Amazonka . Użytkownicy mogą kupić ponad 350 milionów różnych produktów .

Jawna informacja zwrotna a niejawna informacja zwrotna

W systemach rekomendujących modele uczenia maszynowego są używane do przewidywania oceny rᵤᵢ użytkownika u na pozycji i . W czasie wnioskowania rekomendujemy każdemu użytkownikowi pozycje l mające najwyższą przewidywaną ocenę rᵤ .

Dlatego musimy zebrać opinie użytkowników, abyśmy mogli mieć podstawy do szkolenia i oceny naszych modeli. W tym miejscu należy dokonać ważnego rozróżnienia między jawną informacją zwrotną a niejawną informacją zwrotną .

Jawna kontra niejawna informacja zwrotna dla systemów rekomendujących. (Obraz autorstwa autora)

Jawna informacja zwrotna to ocena wyraźnie wystawiona przez użytkownika w celu wyrażenia jego zadowolenia z produktu. Przykładami są: liczba gwiazdek w skali od 1 do 5 przyznawana po zakupie produktu, kciuk w górę/w dół wystawiany po obejrzeniu filmu itp. Ta informacja zwrotna dostarcza szczegółowych informacji o tym, jak bardzo użytkownikowi podobał się przedmiot, ale trudno zbierać , ponieważ większość użytkowników zazwyczaj nie pisze recenzji ani nie wystawia wyraźnych ocen dla każdego zakupionego przedmiotu.

Z drugiej strony niejawna informacja zwrotna zakłada, że ​​interakcje użytkownika z elementem wskazują na preferencje. Przykładami są: historia zakupów/przeglądania użytkownika, lista utworów granych przez użytkownika itp. Opinii tych jest bardzo dużo , ale jednocześnie jest mniej szczegółowa i bardziej głośna (np. ktoś może kupić produkt na prezent dla ktoś inny). Jednak ten szum staje się nieistotny w porównaniu z samą wielkością dostępnych danych tego rodzaju, a większość nowoczesnych systemów rekomendujących zwykle polega na niejawnych informacjach zwrotnych .

Macierz ocen pozycji użytkownika dla jawnych i niejawnych zestawów danych opinii. (Obraz autorstwa autora)

Po zebraniu jawnych lub dorozumianych informacji zwrotnych możemy utworzyć macierz oceny pozycji użytkownika rᵤᵢ . Aby uzyskać informację zwrotną, każdy wpis w rᵤᵢ jest wartością liczbową — np . rᵤᵢ = „gwiazdki przyznane przez ciebie filmowi i ” — lub „?” jeśli użytkownik nie ocenił elementu i . W przypadku niejawnego sprzężenia zwrotnego wartości w rᵤᵢ są wartościami boolowskimi reprezentującymi obecność lub brak interakcji — np . rᵤᵢ = „czy użytkownik oglądał film i ?”. Zauważ, że macierz rᵤᵢjest bardzo rzadki, ponieważ użytkownicy wchodzą w interakcje z kilkoma elementami spośród wszystkich dostępnych treści i recenzują jeszcze mniej elementów!

Podejścia do filtrowania oparte na treści a oparte na współpracy

System rekomendujący można sklasyfikować według rodzaju informacji wykorzystywanych do przewidywania preferencji użytkownika jako filtrowanie oparte na treści lub filtrowanie oparte na współpracy.

Podejścia oparte na treści a filtrowanie oparte na współpracy dla systemów rekomendujących. (Obraz autorstwa autora)

Podejście oparte na treści

Metody oparte na treści opisują użytkowników i elementy za pomocą ich znanych metadanych . Każdy element i jest reprezentowany przez zestaw odpowiednich tagów — np. filmy z platformy IMDb można oznaczyć jako „akcja”, „komedia” itp. Każdy użytkownik u jest reprezentowany przez profil użytkownika, który można utworzyć na podstawie znanych informacji o użytkowniku — np. płeć i wiek — lub z wcześniejszej aktywności użytkownika.

Aby wytrenować model uczenia maszynowego za pomocą tego podejścia, możemy użyć modelu k-NN . Na przykład, jeśli wiemy, że użytkownik kupił przedmiot i , możemy polecić Ci dostępne przedmioty o cechach najbardziej podobnych do i .

Zaletą tego podejścia jest to , że metadane elementów są znane z wyprzedzeniem, więc możemy je również zastosować w scenariuszach zimnego startu, w których nowy element lub użytkownik jest dodawany do platformy i nie mamy interakcji użytkownik-element, aby wytrenować nasz model . Wadą jest to, że nie wykorzystujemy pełnego zestawu znanych interakcji użytkownika z elementem (każdy użytkownik jest traktowany niezależnie) oraz że musimy znać informacje o metadanych dla każdego elementu i użytkownika.

Podejście oparte na filtrowaniu opartym na współpracy

Metody filtrowania oparte na współpracy nie wykorzystują metadanych elementu ani użytkownika, ale zamiast tego próbują wykorzystać informacje zwrotne lub historię aktywności wszystkich użytkowników , aby przewidzieć ocenę użytkownika dotyczącą danego elementu, wnioskując o współzależnościach między użytkownikami a elementami na podstawie obserwowanych działań.

Aby wytrenować model uczenia maszynowego za pomocą tego podejścia, zwykle próbujemy grupować lub rozkładać na czynniki macierz ocen rᵤᵢ w celu przewidywania na nieobserwowanych parach ( u,i ), tj. gdzie rᵤᵢ = „?”. W dalszej części tego artykułu przedstawiamy algorytm Matrix Faktoryzacji , który jest najpopularniejszą metodą tej klasy.

Zaletą tego podejścia jest to, że wykorzystuje się cały zestaw interakcji użytkownik-element (czyli macierz rᵤᵢ ), co zazwyczaj pozwala na uzyskanie większej dokładności niż przy użyciu modeli Content-Based. Wadą tego podejścia jest to, że wymaga kilku interakcji użytkownika, zanim model będzie mógł zostać dopasowany.

Podejścia hybrydowe

Istnieją wreszcie metody hybrydowe, które próbują wykorzystywać zarówno znane metadane, jak i zestaw obserwowanych interakcji użytkownika z elementem. Podejście to łączy w sobie zalety metody Content-Based i Collaborative Filtering i pozwala na uzyskanie najlepszych wyników. W dalszej części artykułu przedstawiamy LightFM , który jest najpopularniejszym algorytmem tej klasy metod.

Filtrowanie oparte na współpracy: faktoryzacja macierzy

Algorytmy faktoryzacji macierzowej są prawdopodobnie najbardziej popularnymi i najskuteczniejszymi metodami filtrowania opartego na współpracy w systemach rekomendujących. Faktoryzacja macierzowa jest modelem czynników utajonych, zakładającym, że dla każdego użytkownika u oraz pozycji i istnieją ukryte reprezentacje wektorowe pᵤ, qᵢ R ᶠ st rᵤᵢ można jednoznacznie wyrazić — tj. „rozłożyć na czynniki” — za pomocą pᵤ i qᵢ . Biblioteka Pythona Surprise zapewnia doskonałe implementacje tych metod.

Faktoryzacja macierzy dla jawnej informacji zwrotnej

Najprostszym pomysłem jest modelowanie interakcji użytkownika z elementem za pomocą modelu liniowego . Aby poznać wartości pᵤ i qᵢ , możemy zminimalizować uregulowaną stratę MSE w zbiorze K par ( u , i ), dla których znane jest rᵤᵢ . Otrzymany w ten sposób algorytm nazywa się probabilistyczną faktoryzacją macierzy (PMF) .

Probabilistyczny rozkład na czynniki macierzy: model dla rᵤᵢ i funkcji straty.

Funkcję straty można zminimalizować na dwa różne sposoby. Pierwszym podejściem jest użycie stochastycznego spadku gradientu (SGD) . SGD jest łatwy do wdrożenia, ale może mieć pewne problemy, ponieważ zarówno pᵤ , jak i qᵢ są nieznane, a zatem funkcja strat nie jest wypukła. Aby rozwiązać ten problem, możemy alternatywnie ustalić wartości pᵤ i qᵢ i otrzymać problem wypukłej regresji liniowej, który można łatwo rozwiązać za pomocą zwykłej metody najmniejszych kwadratów (OLS) . Ta druga metoda jest znana jako metoda naprzemiennych najmniejszych kwadratów (ALS) i umożliwia znaczną równoległość i przyspieszenie.

Algorytm PMF został później uogólniony przez algorytm dekompozycji wartości osobliwej (SVD) , który wprowadził do modelu warunki odchylenia . Dokładniej, bᵤ i bᵢ mierzą zaobserwowane odchylenia oceny odpowiednio użytkownika u i pozycji i , podczas gdy μ to ogólna średnia ocena. Terminy te często wyjaśniają większość obserwowanych ocen rᵤᵢ , ponieważ niektóre pozycje często otrzymują lepsze/gorsze oceny, a niektórzy użytkownicy są konsekwentnie bardziej/mniej hojni w swoich ocenach.

Algorytm SVD, uogólnienie probabilistycznej faktoryzacji macierzy.

Faktoryzacja macierzy dla niejawnego sprzężenia zwrotnego

Metodę SVD można dostosować do niejawnych zestawów danych zwrotnych . Chodzi o to, aby spojrzeć na niejawną informację zwrotną jako na pośrednią miarę pewności . Załóżmy, że ukryta informacja zwrotna tᵤᵢ mierzy procent filmu i , który użytkownik obejrzał — np . tᵤᵢ = 0 oznacza, że ​​nigdy nie oglądałeś i , tᵤᵢ = 0.1 oznacza, że ​​obejrzał tylko 10%, tᵤᵢ = 2 oznacza, że ​​oglądał to dwa razy. Intuicyjnie użytkownik jest bardziej skłonny do zainteresowania się filmem, który obejrzał dwa razy, niż filmem, którego nigdy nie oglądał. Dlatego definiujemy a macierz ufności cᵤᵢ i macierz oceny rᵤᵢ w następujący sposób.

Matryca zaufania i macierz ocen dla niejawnej informacji zwrotnej.

Następnie możemy modelować obserwowany rᵤᵢ , używając tego samego modelu liniowego, co w przypadku SVD, ale z nieco inną funkcją strat. Najpierw obliczamy stratę dla wszystkich par ( u , i ) — w przeciwieństwie do jawnego przypadku, jeśli użytkownik u nigdy nie wchodzi w interakcję z i , otrzymujemy rᵤᵢ = 0 zamiast rᵤᵢ = „?” . Po drugie, ważymy każdy okres straty według ufności cᵤᵢ , którą lubisz i .

Funkcja straty dla SVD dla niejawnego sprzężenia zwrotnego.

Wreszcie, algorytm SVD++ może być używany, gdy mamy dostęp zarówno do jawnych, jak i niejawnych informacji zwrotnych. Może to być bardzo przydatne, ponieważ zazwyczaj użytkownicy wchodzą w interakcje z wieloma elementami (= niejawne informacje zwrotne), ale oceniają tylko niewielki ich podzbiór (= jawna informacja zwrotna). Oznaczmy, dla każdego użytkownika u , zestaw N(u) elementów, z którymi wchodziłeś w interakcję. Następnie zakładamy, że niejawna interakcja z elementem j jest powiązana z nowym utajonym wektorem zⱼR . Algorytm SVD++ modyfikuje liniowy model SVD poprzez włączenie do reprezentacji użytkownika ważonej sumy tych ukrytych czynników zⱼ.

SVD++ dla mieszanych (jawnych + niejawnych) informacji zwrotnych

Podejście hybrydowe: LightFM

Wspólne metody filtrowania oparte na faktoryzacji macierzy często dają doskonałe wyniki, ale w scenariuszach zimnego startu — gdy dostępnych jest niewiele danych o interakcjach dla nowych elementów i użytkowników lub nie ma ich wcale — nie mogą one zapewnić dobrych prognoz, ponieważ brakuje im danych do oszacowania ukrytych czynników. Podejścia hybrydowe rozwiązują ten problem, wykorzystując znane metadane elementu lub użytkownika w celu ulepszenia modelu faktoryzacji macierzy. Biblioteka Pythona LightFM implementuje jeden z najpopularniejszych algorytmów hybrydowych.

W LightFM zakładamy, że dla każdego użytkownika u zebraliśmy zestaw adnotacji tagów Aᵁ(u) — np . „mężczyzna” , „wiek < 30” , … — i podobnie każdy element i ma zestaw adnotacji Aᴵ(i) — np . „cena > 100 $” , „książka” , … Następnie modelujemy każdy tag użytkownika za pomocą ukrytego czynnika xᵁₐ R ᶠ i składnika odchylenia bᵁₐ R , i zakładamy, że reprezentacja wektora użytkownika pᵤ i związana z nią tendencja bᵤ można wyrazić po prostu jako sumę tych wyrazów xᵁₐi bᵁₐ odpowiednio. Przyjmujemy to samo podejście do znaczników pozycji, używając ukrytych czynników xᴵₐ ∈ Rᶠ i terminów odchylenia bᴵₐ ∈ R. Po zdefiniowaniu pᵤ, qᵢ, bᵤ, bᵢ za pomocą tych wzorów, możemy użyć tego samego liniowego modelu SVD do opisania relacji między tymi terminami a rᵤᵢ .

LightFM: osadzenie i uprzedzenia użytkownika/przedmiotu to suma ukrytych wektorów powiązanych z każdym użytkownikiem/przedmiotem.

Zauważ, że istnieją trzy interesujące przypadki tego hybrydowego podejścia LightFM.

  1. Chłodny początek. Jeśli mamy nowy element i ze znanymi znacznikami Aᴵ(i) , to możemy użyć ukrytych wektorów xᴵₐ (uzyskanych przez dopasowanie naszego modelu do poprzednich danych) do obliczenia jego osadzenia qᵢ , a zatem oszacowania dla dowolnego użytkownika u jego oceny rᵤᵢ .
  2. Brak dostępnych tagów. Jeśli nie mamy żadnych znanych metadanych dla elementów lub użytkowników, jedyną adnotacją, jakiej możemy użyć, jest funkcja wskaźnika, czyli inna adnotacja a dla każdego użytkownika i każdego elementu. Następnie macierze cech użytkownika i elementu są macierzami tożsamości, a LightFM redukuje się do klasycznej metody filtrowania opartego na współpracy, takiej jak SVD.
  3. Oparte na treści a hybrydowe. Gdybyśmy używali tylko tagów użytkownika lub elementu bez adnotacji wskaźników, LightFM byłby prawie modelem opartym na treści. W praktyce więc, aby wykorzystać interakcje użytkownika z elementem, dodajemy również do znanych tagów adnotację wskaźnika inną niż dla każdego użytkownika i elementu.
  • Systemy rekomendujące wykorzystują algorytmy uczenia maszynowego, aby pomóc użytkownikom zalewanym wyborem w odkrywaniu odpowiednich treści.
  • Jawna kontra niejawna informacja zwrotna : pierwsza jest łatwiejsza do wykorzystania, ale druga jest znacznie liczniejsza.
  • Modele oparte na zawartości działają dobrze w scenariuszach zimnego startu, ale wymagają znajomości metadanych użytkownika i elementu .
  • Modele filtrowania opartego na współpracy zazwyczaj wykorzystują faktoryzację macierzy: PMF, SVD, SVD dla niejawnego sprzężenia zwrotnego, SVD++.
  • Modele hybrydowe wykorzystują to, co najlepsze w filtrowaniu opartym na treści i współpracy. LightFM jest doskonałym przykładem takiego podejścia.
  • Wikipedia, system rekomendacji .
  • „Niespodzianka”, dokumentacja pakietu Pythona .
  • (S. Funk 2006), Aktualizacja Netflix: Wypróbuj to w domu.
  • (R. Salakhutdinov 2007), Probabilistyczna faktoryzacja macierzy.
  • ( Y. Hu 2008), Collaborative Filtering for Implicit Feedback Datasets .
  • (Y. Koren 2009), Techniki faktoryzacji macierzy dla systemów rekomendujących .
  • (Y. Koren 2008) Faktoryzacja spotyka sąsiedztwo: wielopłaszczyznowy model filtrowania opartego na współpracy.
  • ( M. Kula 2015), Osadzanie metadanych dla zaleceń dotyczących zimnego startu użytkownika i elementu .