人们满足推荐系统。因式分解

机器学习已经渗透到我们的日常生活中。当有人告诉他们有关智能手机中的神经网络时,不再感到惊讶。推荐系统是该科学领域的一大领域。它们无处不在:当您听音乐,看书,看电视节目或视频时。这种科学的发展发生在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


这次我们讨论了推荐系统中的许多分解方法,但是图和神经网络(还有很多有趣的东西)仍然没有被改动。

Source: https://habr.com/ru/post/undefined/


All Articles