Rozłożenie macierzy

Wskaźnik matrycy to prosty model umieszczania. Biorąc pod uwagę tablicę opinii A \(\in R^{m \times n}\), gdzie \(m\) to liczba użytkowników (lub zapytań), a \(n\) liczba elementów, model uczy się:

  • Tabela umieszczony przez użytkownika \(U \in \mathbb R^{m \times d}\), gdzie wiersz I oznacza umieszczenie dla użytkownika i.
  • Tabela z umieszczonym elementem \(V \in \mathbb R^{n \times d}\), gdzie wiersz j to element j.

Ilustracja cyklizacji matrycy przy użyciu przykładowego filmu cyklicznego.

Umieszczone informacje są wykorzystywane w taki sposób, że usługa \(U V^T\) jest w przybliżeniu przybliżenia zestawu opinii A. Zwróć uwagę, że \((i, j)\) wpis \(U . V^T\) produktu to kropka \(\langle U_i, V_j\rangle\) elementu umieszczonego na stronie \(i\) i elementu \(j\), które znajdują się w pobliżu \(A_{i, j}\).

Wybór funkcji celu

Intuicyjną funkcją celu jest odległość do kwadratu. Aby to zrobić, zminimalizuj sumę kwadratów błędów dla wszystkich par obserwowanych wpisów:

\[\min_{U \in \mathbb R^{m \times d},\ V \in \mathbb R^{n \times d}} \sum_{(i, j) \in \text{obs}} (A_{ij} - \langle U_{i}, V_{j} \rangle)^2.\]

W tej funkcji liczysz tylko pary obserwowanych (i, j), czyli wartości inne niż zero w tabeli opinii. Podsumowywanie wartości tylko z jednej wartości nie jest dobrym pomysłem. Tablica wszystkich elementów będzie miała minimalną stratę i utworzy model, który nie zapewni skutecznych rekomendacji i uogólni.

Ilustracja z 3 matrycami: obserwacja tylko rozkładu matrycy, ważenia ważonego i rozkładu wartości pojedynczej.

Być może możesz potraktować nieobserwowane wartości jako zero i zsumować wszystkie wartości z tabeli. Odpowiada to minimalizacji kwadratowej Frobenius odległości między \(A\) i jej przybliżonej \(U V^T\):

\[\min_{U \in \mathbb R^{m \times d},\ V \in \mathbb R^{n \times d}} \|A - U V^T\|_F^2.\]

Możesz rozwiązać ten problem kwadratowy, korzystając z rozkładu pojedynczej wartości (SVD) macierzy. SVS nie jest jednak dobrym rozwiązaniem, ponieważ w rzeczywistych aplikacjach matryca \(A\) może być bardzo obszerna. Pomyśl na przykład o wszystkich filmach w YouTube w porównaniu ze wszystkimi filmami, które oglądał określony użytkownik. Rozwiązanie \(UV^T\) (odpowiadające przybliżeniu modelu wejściowego) w przypadku tablicy wejściowej będzie prawdopodobnie bliskie zera, co może prowadzić do obniżonej skuteczności uogólnienia.

Dla porównania funkcja Ważona matryca matrycy dzieli cel na dwie następujące sumy:

  • Suma obserwowanych wpisów.
  • Suma niezarejestrowanych wpisów (traktowana jako zero).

\[\min_{U \in \mathbb R^{m \times d},\ V \in \mathbb R^{n \times d}} \sum_{(i, j) \in \text{obs}} (A_{ij} - \langle U_{i}, V_{j} \rangle)^2 + w_0 \sum_{(i, j) \not \in \text{obs}} (\langle U_i, V_j\rangle)^2.\]

Tutaj \(w_0\) jest to parametr hiperparametrowy przydzielający 2 warunki,tak aby cel nie został zdominowany przez jeden lub drugi cel. Dostrajanie tego hiperparametru jest bardzo ważne.

\[\sum_{(i, j) \in \text{obs}} w_{i, j} (A_{i, j} - \langle U_i, V_j \rangle)^2 + w_0 \sum_{i, j \not \in \text{obs}} \langle U_i, V_j \rangle^2\]

gdzie \(w_{i, j}\) jest funkcją częstotliwości zapytań i i elementu J.

Minimalizowanie funkcji celu

Popularne algorytmy, które minimalizują funkcję celu:

  • Zjazd gradientowy Sato (SGD) to ogólna metoda minimalizująca funkcje utraty.

  • Wagujące najmniejsze kwadraty (WALS) specjalizuje się w tym konkretnym celu.

Cel jest kwadratowy w każdej z matryc U i V (pamiętaj jednak, że problem nie jest jednocześnie wspólny). Działanie WALS polega na inicjowaniu umieszczania w losowej kolejności, a następnie na przemian:

  • Naprawianie \(U\) i rozwiązywanie problemów \(V\).
  • Naprawianie \(V\) i rozwiązywanie problemów \(U\).

Każdy etap można rozwiązać dokładnie (za pomocą rozwiązania liniowego) i rozkładać. Ta metoda gwarantuje konwersję, ponieważ każdy krok zmniejsza stratę.

SGD i WALS

SGD i WALS mają swoje wady i zalety. Aby dowiedzieć się, jak wypadają na tle innych, przejrzyj poniższe informacje:

SGD

Bardzo elastyczne – można używać innych funkcji utraty danych.

Można ustawić równolegle.

Wolniej – nie łączy się tak szybko.

Trudno jest obsłużyć nieobserwowane wpisy (musisz użyć negatywów lub grawitacji).

WALIA

Wykorzystują tylko kwadraty Loss.

Można ustawić równolegle.

Zrównoważony szybciej niż SGD.

Łatwiejsza obsługa obserwowanych wpisów.