Rozważ problem z filtrowaniem grupowym. Mamy macierz rozmiaru #users * #items. jeśli użytkownik lubi przedmiot j, jeśli użytkownik nie lubi przedmiot j, ajeśli nie ma danych o parze (i, j). Chcemy przewidzieć dla przyszłego użytkownika, pary elementów.
Standardowym podejściem do wspólnego filtrowania jest reprezentowanie M jako iloczynu 2 macierzy tak aby było minimalne (np. Minimalizując średni błąd kwadratowy dla znanych elementów ).
Dla mnie funkcja utraty logistyki wydaje się bardziej odpowiednia, dlaczego wszystkie algorytmy używają MSE?
Odpowiedzi:
Używamy strat logistycznych do niejawnego faktoryzacji macierzy w Spotify w kontekście rekomendacji muzycznych (przy użyciu liczników odtworzeń). Właśnie opublikowaliśmy artykuł na temat naszej metody na nadchodzących warsztatach NIPS 2014. Artykuł nosi tytuł Logistic Matrix Factorization for Implicit Feedback Data i można go znaleźć tutaj http://stanford.edu/~rezab/nips2014workshop/submits/logmat.pdf
Kod artykułu można znaleźć na moim Github https://github.com/MrChrisJohnson/logistic-mf
źródło
Większość artykułów na ten temat dotyczy matryc, w których oceny są w skali [0,5]. Na przykład w kontekście nagrody Netflix macierze mają dyskretne oceny od 1 do 5 (+ brakujące wartości). Dlatego błąd kwadratu jest najbardziej rozłożoną funkcją kosztu. Widoczne są inne mierniki błędów, takie jak rozbieżność Kullbacka-Leiblera.
Innym problemem, który może wystąpić przy standardowym rozkładaniu na czynniki pierwsze macierzy, jest to, że niektóre elementy macierzy U i V mogą być ujemne (szczególnie w pierwszych krokach). To jest powód, dla którego nie użyjesz tutaj utraty dziennika jako funkcji kosztu.
Jeśli jednak mówisz o nieujemnej faktoryzacji macierzy , powinieneś być w stanie wykorzystać utratę logów jako funkcję kosztów. Znajdujesz się w podobnym przypadku niż regresja logistyczna, w której utratę logów stosuje się jako funkcję kosztu: zaobserwowane wartości to 0 i 1 oraz przewidujesz liczbę (prawdopodobieństwo) między 0 a 1.
źródło