机器学习已经渗透到我们的日常生活中。当有人告诉他们有关智能手机中的神经网络时,不再感到惊讶。推荐系统是该科学领域的一大领域。它们无处不在:当您听音乐,看书,看电视节目或视频时。这种科学的发展发生在YouTube,Spotify和Netfilx等大型公司中。当然,该领域的所有科学成就都在著名的NeurIPS或ICML会议以及不太知名的RecSys上发表。在这个问题上更加敏锐。在本文中,我们将讨论这种科学的发展方式,现在和现在所采用的推荐方法以及所有这些方法背后的数学原理。

我的灵感来自于工作,写这篇文章StatML实验室在Skoltech与推荐系统。
为什么和为谁
为什么这对我们每个人都很重要?看一下下面的列表:
- 影片推荐: YouTube,Netlix,HBO,Amazon Prime,迪士尼+,Hulu,Okko
- 音频建议: Spotify,Yandex.Music,Yandex.Radio,Apple Music
- 产品推荐: Amazon,Avito,LitRes,MyBook
- 搜索建议: 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).
让我们弄清楚时间对每个术语有何影响:
项目偏差:如果您将评分分为几段的时间间隔(工作中建议了30个部分)并添加自己的参数bi,Bin(t) 对于每种产品,根据变量的间隔来选择 t:
bi(t)=bi+bi,Bin(t)
用户偏见:在分析Neflix数据时,我们注意到,平均每个用户的排名只有40天。因此,我们将充当商品并添加我们自己的参数bu,t对于每个用户。我们增加了对时间的线性依赖性-我们引入了另一个术语αu 折旧率:bi(t)=bi+αu⋅devu(t)+bu,tdevu(t)=sign(t−tu)⋅|t−tu|β
。关于如何向用户添加时间依赖项,还有其他选项:用户嵌入一文中有更详细的描述:我们将为潜在表示的每个组件添加一个类似的技巧。pu(t)=(pu1(t),…,puf(t))T:puk(t)=puk+αuk⋅devu(t)+puk,t.
加权矩阵分解(WMF)和交替最小二乘(ALS)
SVD的主要问题之一是仅使用来自用户的明确响应。这个问题在SVD ++中得到了部分解决。但是还有另一种方式-加权矩阵分解(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
这次我们讨论了推荐系统中的许多分解方法,但是图和神经网络(还有很多有趣的东西)仍然没有被改动。