Plan
- Opis problemu: Rekomendacje
- Żródła danych / źródła wiedzy
- Model bezkontekstowy: Matrix Factorization
- Model kontekstowy: Factorization Machine
- Trenowanie i testowanie
- Skuteczność
Problem
Rekomendacja - zestaw przedmiotów przygotowany dla konkretnego użytkownika, na podstawie informacji o jego preferencjach, prezentowany zwykle w celu zachęcenia użytkownika do kupna.
Model rekomendacyjny - algorytm filtrowania umożliwiający utworzenie rekomendacji.
Rodzaje filtrowania
Bazujące na treści - content-based filtering - związane tylko z cechami przedmiotów.
Kolaboracyjne - colaborative filtering - biorące pod uwagę preferencje wielu użytkowników.
Systemy hybrydowe - hybrid recommender systems - korzystające z obu rodzajów filtrowania.
Informacje o preferencjach
Bezpośrednie - explicit feedback - pochodzą z bezpośrednich deklaracji użytkownika (oceny, gwiazdki).
Niebezpośrednie - implicit feedback - wskazują na preferencje użytkownika, nie są jego deklaracjami (zakupy, oglądanie produktów).
Główne problemy
- Niepewność co do jakości danych,
- Dużo rodzajów danych,
- Duży wymiar danych,
- Rzadkie dane.
Dwa dzisiejsze modele
- Matrix factorization
- Factorization Machines
Matrix factorization
Aproksymacja macierzy rzadkiej R o wymiarach m×n zawierającej oceny użytkowników u1...um wobec produktów i1...in dwoma macierzami P i Q o wymiarach odpowiednio m×k i k×n.
Aproksymacja
Aproksymacja
Problem optymalizacyjny, solvery: ALS, SGD, CCD, itd.
Biblioteki: Spark ML, sklearn, cuMF, NIMFA, LIBMF, itd.
zbiór znanych obserwacji
parametr regularyzacyjny
ocena użytkownika u wobec przedmiotu i
Wymiar k
k - liczba ukrytych czynników - latent factors
Grafika: Koren, Bell, Volinsky Computer, 2009
Wynik
Wartości rzeczywiste, możliwość stworzenia rankingu, nawet klasyfikacji binarnej.
Matrix factorization
Czego nie uwzględniamy:
- Kim jest użytkownik?
- Co to za przedmiot?
- Kiedy została wykonana transakcja?
- W jaki sposób?
- Jaka była wtedy pogoda?
Brak kontekstu.
Factorization Machine
Rozszerzona wersja SVM, gdzie interakcje między atrybutami macierzy X są modelowane za pomocą faktoryzacji.
Oceny są dostępne w niezależnym wektorze Y.
Macierz X, decyzja Y
Grafika: Yahoo Research, 2015
Równanie
Parametry: bias w0, wektor w, macierz V
bias
interakcja między dwoma zmiennymi
zależność liniowa
Faktoryzacja x
Parametry: wymiar k
film
Alice
Wynik
Predykcja to wartość rzeczywista dla każdej pary użytkownik, produkt.
Można interpretować wprost jako zadanie regresji lub utworzyć ranking, klasyfikację binarną.
Implementacje
- libFM - http://libfm.org/
- fastFM - https://github.com/ibayer/fastFM
- lightFM - https://github.com/lyst/lightfm
- DiFacto - https://github.com/dmlc/difacto
Trenowanie i testowanie
Trenowanie jak w problemie regresji:
- Podział obserwacji na zbiór treningowy i testowy,
- Trenowanie na treningowym,
- Predykcje dla zbioru testowego,
- Przeliczenie wielkości różnic między predykcją, a testem: MAE, RMSE, itd.
Problem: Data leakage!
Trenowanie i testowanie
Podział na zbiór treningowy i testowy z uwzględnieniem czasu powstania obserwacji.
Usunięcie wszystkich dodatkowych informacji, które w standardowych warunkach nie byłyby znane.
Testowanie w warunkach jak najbardziej zbliżonych do produkcyjnych.
Trenowanie i testowanie
Zwiększenie stabilności wyników:
np. k - folds
Optymalizacja hiperparametryczna:
np. grid search, random search
Test alternatywnym modelem profilującym użytkownika.
Skutecz
ność
Bibliografia
-
Matrix Factorization Techniques For Recommender Systems: https://datajobs.com/data-science-repo/Recommender-Systems-%5BNetflix%5D.pdf
-
Collaborative Filtering for Implicit Feedback Datasets: http://yifanhu.net/PUB/cf.pdf
-
Factorization Machines: http://www.algo.uni-konstanz.de/members/rendle/pdf/Rendle2010FM.pdf
-
Random Search: http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf
-
Test FM alternatywnym modelem: https://yahooresearch.tumblr.com/post/133013312756/birds-apps-and-users-scalable-factorization
- Steffen Rendle na Kaggle: https://www.kaggle.com/25112-SteffenRendle
Dziękuję!
Pytania?
Data Science Summit
By Magdalena Wójcik
Data Science Summit
- 1,209