Plan

  1. Opis problemu: Rekomendacje
  2. Żródła danych / źródła wiedzy
  3. Model bezkontekstowy: Matrix Factorization
  4. Model kontekstowy: Factorization Machine
  5. Trenowanie i testowanie
  6. 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

  1. Matrix factorization
  2. 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:

  1. Podział obserwacji na zbiór treningowy i testowy,
  2. Trenowanie na treningowym,
  3. Predykcje dla zbioru testowego,
  4. 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