Rozkład macierzy to prosty model wektora dystrybucyjnego. Biorąc pod uwagę tablica opinii A , gdzie jest liczby użytkowników (lub zapytań) i liczby elementów, model uczy się:
- Macierz wektora dystrybucyjnego , gdzie wiersz i to wektor dystrybucyjny dla użytkownika i.
- Macierz wektora dystrybucyjnego elementu , gdzie wiersz j to wektor dystrybucyjny dla elementu j.
Wektory dystrybucyjne są nauczane w taki sposób, że produkt jest dobre przybliżenie macierzy opinii A. Zwróć uwagę, że wejście do jest po prostu iloczynem skalarnym wektorów dystrybucyjnych użytkownika i elementu , który chcesz wyświetlić w pobliżu .
Wybór funkcji celu
Jedną z intuicyjnych funkcji celu jest odległość do kwadratu. Aby to zrobić: zminimalizuj sumę błędów podniesionych do kwadratu we wszystkich parach zaobserwowanych wpisów:
W tej funkcji celu sumujesz tylko zaobserwowane pary (i, j), czyli nad wartościami innymi niż 0 w tablicy informacji zwrotnych. Jednak tylko sumowanie to nie jest dobry pomysł. Macierz wszystkich wartości będzie miała a więc minimalną stratę i stworzyć model, który nie będzie generował skutecznych rekomendacji. i to kiepsko uogólnia.
Być może można potraktować nieobserwowane wartości jako zero i zsumować je wpisów w macierzy. Ma to na celu zminimalizowanie kwadrat Frobenius odległość między a jej przybliżoną :
Możesz rozwiązać ten problem kwadratowy przez Rozkład wartości pojedynczej (SVD) macierzy. Pamiętaj jednak: SVD też nie jest najlepszym rozwiązaniem, ponieważ w prawdziwych aplikacjach macierz może być bardzo rozproszona. Weźmy na przykład wszystkie filmy w YouTube w porównaniu do wszystkich filmów obejrzanych przez danego użytkownika. Rozwiązanie (odpowiadające przybliżeniu modelu macierzy wejściowej) będzie najprawdopodobniej bliska 0, co będzie słabą wydajności uogólniania.
Natomiast rozkładana matrycy ważonej rozkłada cel na czynniki pierwsze. na dwie następujące sumy:
- Suma odnotowanych wpisów.
- Suma ponad niezarejestrowanych wpisów (traktowana jako zera).
W tym przykładzie jest hiperparametrem,który przypisuje wagę dwóm wyrazom aby jedno z tych celów nie było zdominowane przez jedną z tych grup. Dostrajanie tego hiperparametru jest bardzo ważne.
gdzie jest funkcją częstotliwości zapytania i i elementu j.
Minimalizowanie funkcji celu
Typowe algorytmy minimalizujące funkcję celu to między innymi:
Stochastyczny gradient gradientowy (SGD) to ogólna metoda minimalizowania funkcji straty.
Ważony naprzemienne najmniejsze kwadraty (WALS) specjalizują się w tych aspektach dla konkretnego celu.
Cel jest równa kwadratowi w każdej z dwóch macierzy U i V (uwaga, jednak problem nie jest powszechnie wypukły). WALS działa przez inicjowanie wektory dystrybucyjne są losowe, a później naprzemiennie:
- Naprawianie i rozwiązywanie problemów z: .
- Naprawianie i rozwiązywanie problemów z: .
Każdy etap można rozwiązać dokładnie (za pomocą rozwiązania w układzie liniowym) być rozpowszechniana. Technika ta będzie zbieżna, ponieważ każdy etap na pewno zmniejszyć stratę.
SGD a WALS
SGD i WALS mają zalety i wady. Poniżej znajdziesz informacje na temat tego, jak wypadają na tle innych kampanii.
SGD
Duża elastyczność – może uwzględniać inną stratę .
Możliwe do równoległego.
Wolniej – nie przechodzi tak szybko.
Trudniej jest obsłużyć nieodnotowane wpisy (trzeba aby użyć próbkowania ujemnego lub grawitacji).
WALS
Funkcja dostępna tylko w przypadku kwadratów straty.
Możliwe do równoległego.
Konwersja przebiega szybciej niż w SGD.
Łatwiejsza obsługa niezarejestrowanych wpisów.