L'apprentissage automatique a pratiquement pénétré notre vie quotidienne. Certains ne sont plus surpris lorsqu'ils sont informés des réseaux de neurones dans leurs smartphones. L'un des grands domaines de cette science est les systèmes de recommandation. Ils sont partout: lorsque vous écoutez de la musique, lisez des livres, regardez des émissions de télévision ou des vidéos. Le développement de cette science a lieu dans des entreprises géantes telles que YouTube , Spotify et Netfilx . Bien sûr, toutes les réalisations scientifiques dans ce domaine sont publiées à la fois lors des célèbres conférences NeurIPS ou ICML , et lors des RecSys un peu moins connus .aiguisé sur ce sujet. Et dans cet article, nous parlerons de l'évolution de cette science, des méthodes utilisées dans les recommandations d'hier et d'aujourd'hui, et des mathématiques derrière tout cela.

Je me suis inspiré pour écrire cet article en travaillant dans le StatML laboratoire à Skoltech liés aux systèmes recommender.
Pourquoi et pour qui cet article
Pourquoi cela peut-il être important pour chacun de nous? Jetez un œil à la liste ci-dessous:
- Recommandations vidéo: YouTube, Netlix, HBO, Amazon Prime, Disney +, Hulu, Okko
- Recommandations audio: Spotify, Yandex.Music, Yandex.Radio, Apple Music
- Recommandations de produit: Amazon, Avito, litres, MyBook
- Recommandations de recherche: Google, Yandex, Bing, Yahoo, Mail
- : Booking, Twitter, Instagram, ., , GitHub
, . , . , , YouTube.
( ), . , , . , ( ). -, . , -, , - . , . , , , , .
, , , , - . , (, , , ..). , .
, . : — . . , , , , . :
:
, 1 5 ( ) : 1 -1 ( / )
3 :
- Content-based (CB)
- Collaborative filtering (CF)
- Hybrid recommendations

. — , . : — , — , . . , : , ..
, . - , .
. , , , .
, , . . , , . .
Matrix Factorization

, . : . .
- :
- Singular Value Decomposition (SVD)
- Singular Value Decomposition with implicit feedback (SVD++)
- Collaborative Filtering with Temporal Dynamics (TimeSVD++)
- Weighted Matrix Factorization (WMF or ALS)
- Sparse Linear Methods (SLIM)
- Factorization Machines (FM)
- :
- Probabilistic Matrix Factorization (PMF)
- Bayesian Probabilistic Matrix Factorization (BPMF)
- Bayesian Factorization Machines (BFM)
- Gaussian Process Factorization Machines (GPFM)
Singular Value Decomposition (SVD)
— SVD. , , . , . SVD , : . , .
. :
:
, — - . . . :
c :
, , , , . . (GD) (ALS). Habr- , . , , .
( SVD, SVD). , , . . SVD . (bias):
— , — , — . :
SVD++
Factorization Meets the Neighborhood SVD . (explicit and implicit user feedback). , . . : — ( ) — ( ).
SVD++ :
:
, , .. . (item-item recommendation).
Asymmetric-SVD
SVD++ . . :
TimeSVD++
TimeSVD++. (MovieLens, Netflix) , . , . Collaborative Filtering with Temporal Dynamics SVD++ :
Voyons comment exactement le temps affecte chaque terme:
Biais de l'élément: Si vous divisez l'intervalle de temps lorsque les notes ont été mises en segments (30 parties sont proposées dans le travail) et ajoutez vos propres paramètres pour chaque produit, qui sont sélectionnés en fonction de l'intervalle dans lequel la variable :
Biais des utilisateurs: en analysant les données de Neflix, nous avons remarqué que pour chaque utilisateur en moyenne il n'y a que 40 jours au cours desquels il s'est classé. Par conséquent, nous agirons comme pour les marchandises et ajouterons nos propres paramètrespour chaque utilisateur. Nous ajoutons une dépendance linéaire au temps - nous introduisons un terme supplémentaire avec taux d'amortissement:
.Il existe d'autres options pour ajouter une dépendance temporelle aux utilisateurs: Plus de détails sont décrits dans l'articleIntégrations d'utilisateurs: nous ajouterons une astuce similaire pour chaque composant de notre représentation latente:
Factorisation à matrice pondérée (WMF) et moindres carrés alternés (ALS)
L'un des principaux problèmes rencontrés par SVD est l'utilisation d'une réponse explicite de l'utilisateur uniquement. Ce problème a été partiellement résolu dans SVD ++ . Mais il existe un autre moyen: la factorisation matricielle pondérée ( WMF ). Dans cet article, ils ont suggéré de ne presque pas changer le modèle () et changer le processus d'apprentissage. Attribuer des notesque nous ne savons pas (c'est-à-dire pour les couples ) la valeur est 0. Et puis pour chaque paire entrez le paramètre , . , . - . YouTube , . , , , . , , , :
: . : . .
, (ALS) . WMF, ALS, .
Fast Alternating Least Squares
ALS , eALS . , . , . .
, ALS :
, .
Sparse Linear Methods (SLIM)
Sparse Linear Methods (SLIM) . , SVD . . SLIM :
. : . :
.
Factorization Machines (FM)
, Factorization Machines (FM). , ( 2- ). :
(SGD) ( ). , . . , — . — ( ). ( ).

, SVD, SVD++ — FM. SVD , :
— . .. . FM :
, : , . , , , , , , . .
Probabilistic Matrix Factorization (PMF)
, , , .
(PMF), . , SVD: — . , :
— , a — (). , , :
( ) , :
— . , SVD , .
Constrained PMF
PMF Constrained PMF. , SVD SVD++. , , :
— , .
Bayesian Probabilistic Matrix Factorization (BPMF)
PMF BPMF. PMF , , . :
- . , .
Bayesian Factorization Machines (BFM)
, Bayesian, . , , - . : . .
Gaussian Process Factorization Machines (GPFM)
GPFM . . , , :
, . , , . , , , .
.
: Bayesian Personalized Ranking (BPR)
BPR , "". , BPR — , , Bayesian Personalized Ranking. . , , . ((+) , (-) ). . . ( personalized ):
— , a — . (MLE), , :
(SGD):
, . , , . SVD:
:
BPR ( ) , . , . . , (pairwise approach) (pointwise approach). . , 5 , . , , . — BPR - , . , .
Show must go on
Cette fois, nous avons discuté de nombreuses méthodes de factorisation dans les systèmes de recommandation, mais les réseaux de graphes et de neurones , qui ont également beaucoup de choses intéressantes , sont restés intacts .