El aprendizaje automático ha penetrado en nuestra vida cotidiana. Algunos ya no se sorprenden cuando se les informa sobre las redes neuronales en sus teléfonos inteligentes. Una de las grandes áreas de esta ciencia son los sistemas de recomendación. Están en todas partes: cuando escuchas música, lees libros, ves programas de televisión o videos. El desarrollo de esta ciencia tiene lugar en compañías gigantes como YouTube , Spotify y Netfilx . Por supuesto, todos los logros científicos en esta área se publican tanto en las famosas conferencias NeurIPS o ICML como en RecSys , un poco menos conocido .agudizado en este tema. Y en este artículo hablaremos sobre cómo se desarrolló esta ciencia, qué métodos se utilizan en las recomendaciones en ese momento y ahora, y qué matemáticas hay detrás de todo esto.

Me inspiró a escribir este artículo, trabajando en el StatML laboratorio en Skoltech relacionada con los sistemas de recomendación.
Por qué y para quién este artículo
¿Por qué puede ser esto importante para cada uno de nosotros? Echa un vistazo a la lista a continuación:
- Recomendaciones de video: YouTube, Netlix, HBO, Amazon Prime, Disney +, Hulu, Okko
- Recomendaciones de audio: Spotify, Yandex.Music, Yandex.Radio, Apple Music
- Recomendaciones de productos: Amazon, Avito, litros, MyBook
- Recomendaciones de búsqueda: Google, Yandex, Bing, Yahoo, Mail
- : Booking, Twitter, Instagram, ., , GitHub
, . , . , , YouTube.
( ), . , , . , ( ). -, . , -, , - . , . , , , , .
, , , , - . , (, , , ..). , .
, . : U I — . rui u i. , , , , . :
D={(u,i)| if ∃rui,u∈U,i∈I}
f:
f(u,i)=ˆrui≈rui
, rui 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. A n×m, n=|U|, m=|I|. D Aui=rui, . SVD , A : U, Σ, V. k , A.
A=UΣVT,A≈ˆA=ˆUˆΣˆVT.
Q P . A :
P=(ˆUˆΣ)T,Q=ˆVT,A≈PT⋅Q.
:
rui≈ˆrui=pTuqi.
, pu qi — u i - k. . . :
Θ={pu,qi|u∈U,i∈I}.
c :
∑(u,i)∈D(rui−ˆrui)2+λ∑θ∈Θ‖θ‖2=∑(u,i)∈D(rui−pTuqi)2+λ∑u∈U‖pu‖2+λ∑i∈I‖qi‖2.
, , , , . ˆrui. (GD) (ALS). Habr- , . , , .
( SVD, SVDbias). , , . . SVD . (bias):
ˆrui=μ+bu+bi+pTuqi,
bu — , bi — , μ — . :
Θ={μ,bu,bi,pu,qi|u∈U,i∈I}.
SVD++
Factorization Meets the Neighborhood SVD . (explicit and implicit user feedback). rui, . . : R(u) — ( ) N(u) — ( ).
SVD++ :
ˆrui=μ+bu+bi+qTi(pu+|N(u)|−1/2∑j∈N(u)yj).
:
Θ={μ,bu,bi,pu,qi,yi|u∈U,i∈I}.
, N(u) R(u), .. R(u)⊂N(u). (item-item recommendation).
Asymmetric-SVD
SVD++ . . :
ˆrui=bui+qTi(|R(u)|−1/2∑j∈R(u)(ruj−buj)xj+|N(u)|−1/2∑j∈N(u)yj),
bui=μ+bu+bi
TimeSVD++
TimeSVD++. (MovieLens, Netflix) , . , . Collaborative Filtering with Temporal Dynamics SVD++ :
ˆrui(t)=μ+bu(t)+bi(t)+qTi(pu(t)+|R(u)|−1/2∑j∈R(u)yj).
, :
Item bias: , ( 30 ) bi,Bin(t) , , t:
bi(t)=bi+bi,Bin(t)
Sesgo del usuario: al analizar los datos de Neflix, notamos que para cada usuario en promedio solo hay 40 días en los que coloca las calificaciones. Por lo tanto, actuaremos como con los productos y agregaremos nuestros propios parámetrosbu,tpara cada usuario Agregamos una dependencia lineal del tiempo: introducimos un término adicionalαu con ratio de amortización:bi(t)=bi+αu⋅devu(t)+bu,tdevu(t)=sign(t−tu)⋅|t−tu|β
.Hay otras opciones sobre cómo agregar una dependencia de tiempo a los usuarios: se describe con más detalle en el artículoIncorporaciones de usuarios: agregaremos un truco similar para cada componente de nuestra representación latentepu(t)=(pu1(t),…,puf(t))T:puk(t)=puk+αuk⋅devu(t)+puk,t.
Factorización de matriz ponderada (WMF) y mínimos cuadrados alternos (ALS)
, SVD, . SVD++. — Weighted Matrix Factorization (WMF). (ˆrui=pTuqi), . rui, (.. (u,i)∉D) 0. (u,i) cui, rui. , . - . YouTube , . , , , . , , , :
∑(u,i)cui(rui−ˆrui)2+λ∑θ∈Θ‖θ‖2.
: cui=1+αrui. : rui>0 rui=0. α α=40 .
, (ALS) . WMF, ALS, .
Fast Alternating Least Squares
ALS , eALS . , . , . .
, cui ALS :
cui=ci+αrui,ci=c0fβi∑j∈Ifβj,
c0 β, .
Sparse Linear Methods (SLIM)
Sparse Linear Methods (SLIM) . , SVD . . SLIM :
ˆaui=aTuwiˆA=AW
W∈Rm×m. : W≥0 diag(W)=0. :
12‖A−AW‖2F+β2‖W‖2F+λ‖W‖1
W .
Factorization Machines (FM)
, Factorization Machines (FM). , ( 2- ). :
ˆr(x)=w0+n∑i=1wixi+n∑i=1n∑i=j+1vTivj xixj,w0∈R w∈Rn V∈Rn×k.
(SGD) ( ). , x (u,i). . , — . — ( ). ( ).

, SVD, SVD++ — FM. SVD , :
n=|U∪I|,xj=δ(j=u ∨ j=i).
δ — . .. x u i. FM :
ˆr(x)=w0+wu+wi+vTuvi.
, x: , . , , , , , , . .
Probabilistic Matrix Factorization (PMF)
, , , .
(PMF), . , SVD: pu qi — . , :
p(r|P,Q,σ)=∏(u,i)∈DN(rui|g(pTuqi),σ2),
N — , a g(x)=11+e−x — (). , , :
p(P|σp)=∏u∈Up(pu|0,σ2pI),p(Q|σ2q)=∏i∈Ip(qi|0,σ2qI).
( ) , :
12∑(u,i)∈D(rui−pTuqi)2+λp2∑u∈U‖pu‖2+λq2∑i∈I‖qi‖2,
λp=σpσ λq=σqσ — . , SVD , .
Constrained PMF
PMF Constrained PMF. , SVD SVD++. , , pu :
pu+∑i∈R(u)yi|R(u)|,
R(u) — , u.
Bayesian Probabilistic Matrix Factorization (BPMF)
PMF BPMF. PMF , , . :
p(P|μp,Λp)=∏u∈Up(pu|μp,Λp),p(Q|μq,Λq)=∏i∈Ip(qi|μq,Λq).
Θp={μp,Λp} Θq={μq,Λq} - Θ0={μ0,ν0,W0}. , .
Bayesian Factorization Machines (BFM)
, Bayesian, . , Θ={w0,wi,vi}. , - . : ΘH={λθ,μθ|θ∈Θ}. .
Gaussian Process Factorization Machines (GPFM)
GPFM . f θ. θu , , :
ˆrui=f(qi,θu)
, . , f , . , , , .
.
: Bayesian Personalized Ranking (BPR)
BPR , "". , BPR — , , Bayesian Personalized Ranking. . , , i j u. (u,i) rui (u,i,j) i j ((+) i , j (-) ). DS. . ( personalized ):
p(i<uj|Θ)=σ(ˆruij(Θ)),
σ — , a ˆruij — . (MLE), , :
minΘ∑(u,i,j)∈DSlnσ(ˆruij)−λ‖Θ‖2
(SGD):
Θ←Θ+α(e−ˆruij1+e−ˆruij⋅∂∂Θˆruij+λΘ)
, . , , . SVD:
ˆruij=ˆrui−ˆrujˆrui=pTuqi
:
∂∂Θˆruij={(qik−qjk) if θ=pukpuk if θ=qik−puk if θ=qjk
BPR ( ) , . , . . , (pairwise approach) (pointwise approach). . , 5 , . , , . — BPR - , . , .
Show must go on
Esta vez discutimos muchos métodos de Factorización en sistemas de recomendación, pero las Redes Gráficas y Neuronales , que también tienen muchas cosas interesantes , permanecieron intactas .