(十八)從零開始學人工智慧-智慧推薦系統:矩陣分解

w39發表於2021-09-09

推薦系統系列之二:矩陣分解

@[TOC]

1. 理論基礎

說明介紹:

從數學機率的角度,證明了 MF 的由來。這樣使得 機率矩陣分解(PMF) 和其他模型的“搭配”有了理論的依據。

來源出處:

  • Salakhutdinov et al. Probabilistic matrix factorization. NIPS(2008): 1257-1264.

定義和描述

假設現在有 nnn 個使用者, mmm 個商品,形成一個 n×mn×mn×m 維的評分矩陣 Rmathbf{R}R,其中的元素 ru,ir_{u,i}ru,i 表示使用者 uuu 對商品 iii 的評分。假設潛在特徵個數為 kkk,那麼 n×kn×kn×k 維的 pmathbf{p}p 表示使用者的潛在特徵矩陣,其中 pumathbf{p}_{u}pu 表示使用者 uuu 的潛在特徵向量; m×km×km×k 維的矩陣 qmathbf{q}q 表示商品的潛在特徵矩陣,其中 qimathbf{q}_{i}qi 商品 iii 的潛在特徵向量。機率模型圖如下圖所示:

圖片描述

主要推導:

假設關於已知評分資料的條件分佈滿足高斯分佈:
p(R∣p,q,σ2)=∏u=1n∏i=1m[N(ru,i∣puqiT,σ2)]Iij, pleft( mathbf{R}|mathbf{p},mathbf{q},sigma^{2} right)=prod_{u=1}^{n}prod_{i=1}^{m}left[ Nleft( r_{u,i}|mathbf{p}_{u}mathbf{q}_{i}^T,sigma^{2} right)right]^{I_{ij}}, p(Rp,q,σ2)=u=1ni=1m[N(ru,ipuqiT,σ2)]Iij,
其中,Iu,iI_{u,i}Iu,i 表示指示函式,當使用者 uuu 與商品 iii 有互動時,Iu,i=1I_{u,i}=1Iu,i=1,否則為0。

再假設使用者潛在特徵向量和商品潛在特徵向量都服從均值為 0 的高斯先驗分佈,即:
p(p∣σp2)=∏u=1nN(pu∣0,σp2I),p(q∣σq2)=∏i=1mN(qi∣0,σq2I). pleft( mathbf{p}|sigma_{p}^{2} right)=prod_{u=1}^{n}Nleft( mathbf{p}_{u}|0,sigma_{p}^{2}mathbf{I} right),pleft( mathbf{q}|sigma_{q}^{2} right)=prod_{i=1}^{m}Nleft( mathbf{q}_{i}|0,sigma_{q}^{2}mathbf{I} right). p(pσp2)=u=1nN(pu0,σp2I),p(qσq2)=i=1mN(qi0,σq2I).
注意這個公式中的 Imathbf{I}I 不是指示函式,表示一個對角陣。

然後,計算 pmathbf{p}pqmathbf{q}q 的後驗機率:
p(p,q∣R,σ2,σq2,σp2)=p(p,q,R,σ2,σq2,σp2)p(R,σ2,σq2,σp2)=p(R∣p,q,σ2)×p(p,q∣σq2,σp2)p(R,σ2,σq2,σp2) pleft( mathbf{p},mathbf{q}|R,sigma^{2},sigma_{q}^{2}, sigma_{p}^{2}right)=frac{ pleft( mathbf{p},mathbf{q},R,sigma^{2},sigma_{q}^{2}, sigma_{p}^{2}right) }{ pleft( R,sigma^{2},sigma_{q}^{2}, sigma_{p}^{2}right) }=frac{pleft( R|mathbf{p},mathbf{q},sigma^{2}right)times pleft( mathbf{p},mathbf{q} |sigma_{q}^{2}, sigma_{p}^{2}right)}{pleft( R,sigma^{2},sigma_{q}^{2}, sigma_{p}^{2}right)} p(p,qR,σ2,σq2,σp2)=p(R,σ2,σq2,σp2)p(p,q,R,σ2,σq2,σp2)=p(R,σ2,σq2,σp2)p(Rp,q,σ2)×p(p,qσq2,σp2)

∼p(R∣p,q,σ2)×p(p,q∣σq2,σp2) sim pleft( R|mathbf{p},mathbf{q},sigma^{2}right)times pleft( mathbf{p},mathbf{q} |sigma_{q}^{2}, sigma_{p}^{2} right) p(Rp,q,σ2)×p(p,qσq2,σp2)

=p(R∣p,q,σ2)×p(p∣σp2)×p(q∣σq2) =pleft( R|mathbf{p},mathbf{q},sigma^{2} right)times pleft( mathbf{p} | sigma_{p}^{2}right)times pleft( mathbf{q} |sigma_{q}^{2}right) =p(Rp,q,σ2)×p(pσp2)×p(qσq2)

=∏u=1n∏i=1m[N(ru,i∣puqiT,σ2)]Iu,i×∏u=1n[N(pu∣0,σp2I)]×∏i=1m[N(qi∣0,σq2I)] =prod_{u=1}^{n}prod_{i=1}^{m}left[ Nleft( r_{u,i}|mathbf{p}_{u}mathbf{q}_{i}^T,sigma^{2} right) right]^{I_{u,i}}times prod_{u=1}^{n}left[ Nleft( mathbf{p}_{u}|0,sigma_{p}^{2}I right) right]times prod_{i=1}^{m}left[ Nleft( mathbf{q}_{i}|0,sigma_{q}^{2}I right) right] =u=1ni=1m[N(ru,ipuqiT,σ2)]Iu,i×u=1n[N(pu0,σp2I)]×i=1m[N(qi0,σq2I)]

等式兩邊取對數 lnlnln 後得到:
lnp(p,q∣R,σ2,σp2,σq2)=−12σ2∑u=1n∑i=1mIij(ru,i−puqiT)2−12σp2∑i=1NpupuT−12σq2∑i=1MqiqiT lnpleft( mathbf{p},mathbf{q}|mathbf{R},sigma^{2},sigma_{p}^{2}, sigma_{q}^{2}right)=-frac{1}{2sigma^{2}}sum_{u=1}^{n}sum_{i=1}^{m}{I_{ij}left( r_{u,i}-mathbf{p}_{u}mathbf{q}_{i}^T right)^2}-frac{1}{2sigma_{p}^{2}}sum_{i=1}^{N}{mathbf{p}_{u}mathbf{p}_{u}^{T}}-frac{1}{2sigma_{q}^{2}}sum_{i=1}^{M}{mathbf{q}_{i}mathbf{q}_{i}^{T}} lnp(p,qR,σ2,σp2,σq2)=2σ21u=1ni=1mIij(ru,ipuqiT)22σp21i=1NpupuT2σq21i=1MqiqiT

−12((∑i=1n∑j=1mIu,i)lnσ2+nKlnσp2+mKlnσq2)+C, -frac{1}{2}left( left( sum_{i=1}^{n}{sum_{j=1}^{m}{I_{u,i}}} right) lnsigma^{2}+nKlnsigma_{p}^{2}+mKlnsigma_{q}^{2}right)+C, 21((i=1nj=1mIu,i)lnσ2+nKlnσp2+mKlnσq2)+C,

化簡得:
L=12∑u=1n∑i=1mIu,i∣∣ru,i−puqiT∣∣2+λp2∑u=1n∣∣pu∣∣2+λq2∑i=1m∣∣qi∣∣2 L=frac{1}{2}sum_{u=1}^{n}sum_{i=1}^{m}{I_{u,i}left| left| r_{u,i}-mathbf{p}_{u} mathbf{q}^T_{i} right| right|^2}+frac{lambda_{p}}{2}sum_{u=1}^{n}{left| left|mathbf{p}_{u} right| right| ^{2}}+frac{lambda_{q}}{2}sum_{i=1}^{m}{left| left|mathbf{q}_{i} right| right|^{2}} L=21u=1ni=1mIu,iru,ipuqiT2+2λpu=1npu2+2λqi=1mqi2
詳細推導見:

2. 隨機梯度下降法(SGD)

λp=λqlambda_{p}=lambda_{q}λp=λq 時,PMF 目標函式就如下:

目標函式:
min⁡p,q12∑(u,i)∈O∥ru,i−puqiT∥2+12λ(∥pu∥2+∥qi∥2) min limits_ {mathbf{p},mathbf{q}} frac{1}{2}sum_{left ( u,i right )in mathbf{O}} {left | r_{u,i}-mathbf{p}_{u} mathbf{q}^T_{i} right |^2} +frac{1}{2}lambda left ( left | mathbf{p}_{u} right |^2 + left | mathbf{q}_{i} right |^2 right ) p,qmin21(u,i)Oru,ipuqiT2+21λ(pu2+qi2)
目標函式 LLL 分別對 pumathbf{p}_{u}puqimathbf{q}_{i}qi 進行求導得:
∂L∂qi=−(ru,i−puqiT)pu+λqi frac{partial L}{partial mathbf{q}_{i}}= - left( r_{u,i}-mathbf{p}_{u} mathbf{q}^T_{i} right)mathbf{p}_{u}+ lambda mathbf{q}_{i} qiL=(ru,ipuqiT)pu+λqi
∂L∂pu=−(ru,i−puqiT)qi+λpu frac{partial L}{partial mathbf{p}_{u}}= - left( r_{u,i}-mathbf{p}_{u} mathbf{q}^T_{i} right)mathbf{q}_{i} + lambda mathbf{p}_{u} puL=(ru,ipuqiT)qi+λpu

採用的是隨機梯度下降法(SGD)進行求解,更新 pumathbf{p}_{u}puqimathbf{q}_{i}qi
pu←pu−η∂L∂pu=pu+η((ru,i−puqiT)qi−λpu) mathbf{p}_{u} leftarrow mathbf{p}_{u}-eta frac{partial L}{partial mathbf{p}_{u}} =mathbf{p}_{u}+ eta left( left( r_{u,i}-mathbf{p}_{u} mathbf{q}^T_{i} right)mathbf{q}_{i}- lambda mathbf{p}_{u} right) pupuηpuL=pu+η((ru,ipuqiT)qiλpu)

qi←qi−η∂L∂qi=qi+η((ru,i−puqiT)pu−λqi) mathbf{q}_{i} leftarrow mathbf{q}_{i}-eta frac{partial L}{partial mathbf{q}_{i}} =mathbf{q}_{i} + eta left( left( r_{u,i}-mathbf{p}_{u} mathbf{q}_{i}^T right)mathbf{p}_{u}-lambda mathbf{q}_{i} right) qiqiηqiL=qi+η((ru,ipuqiT)puλqi)

eui=ru,i−puqiTe_{ui}= r_{u,i}-mathbf{p}_{u} mathbf{q}^T_{i}eui=ru,ipuqiT ,上述式子簡化為:
pu←pu+η(euiqi−λpu) mathbf{p}_{u} leftarrow mathbf{p}_{u}+eta left( e_{ui}mathbf{q}_{i}-lambda mathbf{p}_{u} right) pupu+η(euiqiλpu)

qi←qi+η(euipu−λqi) mathbf{q}_{i} leftarrow mathbf{q}_{i} +eta left( e_{ui}mathbf{p}_{u}-lambda mathbf{q}_{i} right) qiqi+η(euipuλqi)

核心程式碼:

def update(p, q, r, learning_rate=0.001, lamda_regularizer=0.1):
    error = r - np.dot(p, q.T)            
    p = p + learning_rate*(error*q - lamda_regularizer*p)
    q = q + learning_rate*(error*p - lamda_regularizer*q)
    loss = 0.5 * (error**2 + lamda_regularizer*(np.square(p).sum() + np.square(q).sum()))
    return p,q,loss

實驗結果:

資料集:Movielens100K,隨機分割成訓練集:測試集=8:2

MAE RMSE Recall@10 Precision@10
0.7347 0.9297 0.0293 0.0620

損失函式曲線:

圖片描述

3. 改進

1). 帶偏置的SVD(BiasSVD)

來源出處:

  • Koren et al. Matrix factorization techniques for recommender systems.Computer 42.8 (2009).

目標函式:
min⁡p,q12∑(u,i)∈O∥ru,i−r^u,i∥2+12λ(∥pu∥2+∥qi∥2+∥bu∥2+∥bi∥2) min limits_ {mathbf{p},mathbf{q}} frac{1}{2}sum_{left ( u,i right )in mathbf{O}} {left | r_{u,i}-widehat{r}_{u,i} right |^2} +frac{1}{2}lambda left ( left | mathbf{p}_{u} right |^2 + left | mathbf{q}_{i} right |^2 + left | b_{u} right |^2 + left | b_{i} right |^2right ) p,qmin21(u,i)Oru,iru,i2+21λ(pu2+qi2+bu2+bi2)

r^u,i=μ+bu+bi+puqiT widehat{r}_{u,i}=mu + b_u + b_i + mathbf{p}_u mathbf{q}_i^T ru,i=μ+bu+bi+puqiT

μmuμ :全部評分的均值

bub_ubu :使用者 uuu 的評分均值

bib_ibi :商品 iii 的評分均值

說明介紹:

該方法考慮了實際生活中,使用者的評分偏好和商品的特性評分。比如,有對於某商品的好與不好,有使用者評分很鮮明,給5和1分;有使用者評分比較委婉,給5和3分。由此產生了不同的評分習慣。加入這些因素,用潛在特徵來預測使用者的喜好與”均值“的偏差更合理。

更新公式
pu←pu+η(euiqi−λpu) mathbf{p}_{u} leftarrow mathbf{p}_{u}+eta left( e_{ui}mathbf{q}_{i}-lambda mathbf{p}_{u} right) pupu+η(euiqiλpu)

qi←qi+η(euipu−λqi) mathbf{q}_{i} leftarrow mathbf{q}_{i} +eta left( e_{ui}mathbf{p}_{u}-lambda mathbf{q}_{i} right) qiqi+η(euipuλqi)

bu←bu+η(eui−λbu) b_uleftarrow b_u +eta left( e_{ui}-lambda b_u right) bubu+η(euiλbu)

bi←bi+η(eui−λbi) b_ileftarrow b_i +eta left( e_{ui}-lambda b_i right) bibi+η(euiλbi)

核心程式碼:

def update(p, q, bu, bi, aveg_rating, r, learning_rate=0.001, lamda_regularizer=0.1):
    error = r - (aveg_rating + bu + bi + np.dot(p, q.T))            
    p = p + learning_rate*(error*q - lamda_regularizer*p)
    q = q + learning_rate*(error*p - lamda_regularizer*q)
    bu = bu + learning_rate*(error - lamda_regularizer*bu)
    bi = bi + learning_rate*(error - lamda_regularizer*bi)
    return p,q,bu,bi

實驗結果:

資料集:Movielens100K,隨機分割成訓練集:測試集=8:2

MAE RMSE
0.7210 0.9124

loss 曲線:

圖片描述

這圖是引數與本文其他模型相同時的收斂曲線,並不好看。

BiasSVD 的學習率不好調,調小 loss 曲線完美收斂,但是 MAE 和 RMSE 結果並不好看,應該是陷入了區域性收斂區間;當調大時,loss 曲線又不好看,不過實驗結果會好很多。我個人感覺是 BiasSVD 太“精細”了,反而容易陷入區域性最優解。

2). SVD++

來源出處:

  • Koren Y. Factor in the neighbors: Scalable and accurate collaborative filtering[J]. ACM Transactions on Knowledge Discovery from Data (TKDD), 2010, 4(1): 1.

目標函式:
min⁡12∑(u,i)∈O∥ru,i−r^u,i∥2+12λ(∥pu∥2+∥qi∥2+∥bu∥2+∥bi∥2+∥yj∥2) min limits_ {} frac{1}{2}sum_{left ( u,i right )in mathbf{O}} {left | r_{u,i}-widehat{r}_{u,i} right |^2} +frac{1}{2}lambda left ( left | mathbf{p}_{u} right |^2 + left | mathbf{q}_{i} right |^2 + left | b_{u} right |^2 + left | b_{i} right |^2+ left | mathbf{y}_{j} right |^2right ) min21(u,i)Oru,iru,i2+21λ(pu2+qi2+bu2+bi2+yj2)

r^u,i=μ+bu+bi+(pu+∣Iu∣−12∑j∈Iuyj)qiT widehat{r}_{u,i}=mu + b_u + b_i + left( mathbf{p}_u +left | I_u right |^{-frac{1}{2}}sum_{j in I_u}^{}y_j right)mathbf{q}_i^T ru,i=μ+bu+bi+pu+Iu21jIuyjqiT

其中 IuI_uIu 為使用者 uuu 評價過的所有電影的集合; yjmathbf{y}_jyj 為隱藏的對於商品 jjj 的隱含喜好; ∣Iu∣−12left | I_u right |^{-frac{1}{2}}Iu21 是一個經驗公式。

說明介紹:

SVD++ 是 BiasSVD 的改進版,它考慮了使用者的歷史評分行為,將這些行為資料作為一個偏置加入到模型中,使模型更“精細”。

更新公式:
pu←pu+η(euiqi−λpu) mathbf{p}_{u} leftarrow mathbf{p}_{u}+eta left( e_{ui}mathbf{q}_{i}-lambda mathbf{p}_{u} right) pupu+η(euiqiλpu)

qi←qi+η(eui(pu+∣Iu∣−12∑j∈Iuyj)−λqi) mathbf{q}_{i} leftarrow mathbf{q}_{i} +eta left( e_{ui}left( mathbf{p}_u +left | I_u right |^{-frac{1}{2}}sum_{j in I_u}^{}mathbf{y}_j right) -lambda mathbf{q}_{i} right) qiqi+ηeuipu+Iu21jIuyjλqi

bu←bu+η(eui−λbu) b_uleftarrow b_u +eta left( e_{ui}-lambda b_u right) bubu+η(euiλbu)

bi←bi+η(eui−λbi) b_ileftarrow b_i +eta left( e_{ui}-lambda b_i right) bibi+η(euiλbi)

yj←yj+η(eui∣Iu∣−12qi−λyj) mathbf{y}_j leftarrow mathbf{y}_j +eta left( e_{ui} left | I_u right |^{-frac{1}{2}}mathbf{q}_{i} -lambda mathbf{y}_{j} right) yjyj+η(euiIu21qiλyj)

核心程式碼:

def update(p,q,bu,bi,Y,aveg_rating,r,Ru,learning_rate=0.001,lamda_regularizer=0.1):
    Iu = np.sum(Ru>0)
    y_sum = np.sum(Y[np.where(Ru>0)],axis=0)
    error = r - (aveg_rating + bu + bi + np.dot(p+Iu**(-0.5)*y_sum, q.T))            
    p = p + learning_rate*(error*q - lamda_regularizer*p)
    q = q + learning_rate*(error*(p + Iu**(-0.5)*y_sum) - lamda_regularizer*q)
    bu = bu + learning_rate*(error - lamda_regularizer*bu)
    bi = bi + learning_rate*(error - lamda_regularizer*bi)
    
    for j in np.where(Ru>0):
        Y[j] = Y[j] + learning_rate*(error*Iu**(-0.5)*q - lamda_regularizer*Y[j])

    return p,q,bu,bi,Y

實驗結果:

資料集:Movielens100K,隨機分割成訓練集:測試集=8:2

MAE RMSE
0.7162 0.9109

3). timeSVD

來源出處:

  • Koren et al. Collaborative filtering with temporal dynamics. Communications of the ACM 53.4 (2010): 89-97.

目標函式:
min⁡12∑(u,i)∈O∥ru,i−r^u,i∥2+12λ(∥pu∥2+∥qi∥2+∥bu∥2+∥bi∥2) min limits_ {} frac{1}{2}sum_{left ( u,i right )in mathbf{O}} {left | r_{u,i}-widehat{r}_{u,i} right |^2} +frac{1}{2}lambda left ( left | mathbf{p}_{u} right |^2 + left | mathbf{q}_{i} right |^2 + left | b_{u} right |^2 + left | b_{i} right |^2right ) min21(u,i)Oru,iru,i2+21λ(pu2+qi2+bu2+bi2)

r^u,i=μ+bu(t)+bi(t)+pu(t)qiT widehat{r}_{u,i}=mu + b_uleft ( tright) + b_ileft ( tright) + mathbf{p}_uleft ( tright) mathbf{q}_i^T ru,i=μ+bu(t)+bi(t)+pu(t)qiT

其中,ttt 為時間因子,表示不同的時間狀態。

說明介紹:

文中假設:使用者的興趣是隨時間變化的,即 pumathbf{p}_upu 與時間 ttt 相關。而 qimathbf{q}_iqi 為商品的固有特徵,與時間因素無關。比如,大部分使用者夏天買短袖、短褲,冬天買長袖、羽絨服,時間效應明顯。qimathbf{q}_iqi 反映的是商品屬性:你評價或者不評價,我都在這裡,不增不減。同時,假設使用者和商品的評分偏置也隨時間 ttt 的變化而變化。

4. 模型對比

在相同學習率 ηetaη、相同正則項係數 λlambdaλ、相同特徵維度 KKK、相同迭代次數的情況下,

即 learning_rate = 0.005,lamda_regularizer = 0.1,K = 10,max_iteration = 100

MAE (比前一個演算法提升 %) RMSE (比前一個演算法提升 %)
MF, SVD, Funk-SVD, PMF 0.7279 (-) 0.9297 (-)
BiasSVD 0.7203 (+1.0%) 0.9154 (+0.7%)
SVD++ 0.7162 (+0.5%) 0.9109 (+0.5%)

從上到下,演算法剛開始提升效果非常明顯,到後來提升效果越來越小。當然,如果再調整引數,結果肯定還會有所提升。

5. 擴充

1) 與主題模型結合

來源出處

  • Wang, Chong, and David M. Blei. “Collaborative topic modeling for recommending scientific articles.” Proceedings of the 17th ACM SIGKDD international conference on Knowledge discovery and data mining. 2011.

示意圖:

圖片描述

大的框架為 LDA 主題模型,小的框架為 PMF 模型。

目標函式:
min⁡U,V12∑(i,j)∈Oci,j∥ru,i−uivjT∥2+12λu∑i∥ui∥2+12λv∑j∥vj−θj∥2−∑j∑hlog(∑kθi,kβk,wj,h) min limits_ {mathbf{U},mathbf{V}} frac{1}{2}sum_{left ( i,j right )in mathbf{O}}c_{i,j} {left | r_{u,i}-u_{i} v^T_{j} right |^2} +frac{1}{2}lambda_u sum_{i} left | u_{i} right |^2 + frac{1}{2}lambda_v sum_{j}left | v_{j}- theta_j right |^2 -sum_{j}sum_{h}log left(sum_{k} theta_{i,k}beta_{k,w_{j,h}} right) U,Vmin21(i,j)Oci,jru,iuivjT2+21λuiui2+21λvjvjθj2jhlog(kθi,kβk,wj,h)
其中,θjtheta_jθj 表示商品 jjj 文字資訊的主題分佈,βk,wj,hbeta_{k,w_{j,h}}βk,wj,h 表示文中 jjj 中主題 kkk 下詞語 hhh 的分佈。

簡單說明:

有些領域它們除了有互動資訊外,文字內容比較豐富,比如新聞,學術論文。用主題模型獲取文字資訊,彌補互動資訊不足時的情況。當互動資訊豐富時,PMF 依舊其主要作用。

2) 與社交網路結合

來源出處

  • Purushotham, Sanjay, Yan Liu, and C-C. Jay Kuo. “Collaborative topic regression with social matrix factorization for recommendation systems.” arXiv preprint arXiv:1206.4684 (2012).

示意圖:

圖片描述

紅色的框架為上一個模型,藍色圖為新增的社交資訊框架。

目標函式:
min⁡U,V12∑(i,j)∈Oci,j∥ru,i−uivjT∥2+12λu∑i∥ui∥2+12λv∑j∥vj−θj∥2−∑j∑hlog(∑kθi,kβk,wj,h) min limits_ {mathbf{U},mathbf{V}} frac{1}{2}sum_{left ( i,j right )in mathbf{O}}c_{i,j} {left | r_{u,i}-u_{i} v^T_{j} right |^2} +frac{1}{2}lambda_u sum_{i} left | u_{i} right |^2 + frac{1}{2}lambda_v sum_{j}left | v_{j}- theta_j right |^2 -sum_{j}sum_{h}log left(sum_{k} theta_{i,k}beta_{k,w_{j,h}} right) U,Vmin21(i,j)Oci,jru,iuivjT2+21λuiui2+21λvjvjθj2jhlog(kθi,kβk,wj,h)

+12λg∑i,f∥gi,f−uisfT∥2+12λs∑k∥sk∥2 +frac{1}{2}lambda_g sum_{i,f}left | g_{i,f}- u_{i}s_f^T right |^2 +frac{1}{2}lambda_s sum_{k} left | s_{k} right |^2 +21λgi,fgi,fuisfT2+21λsksk2

其中,sks_{k}sk 為使用者的社交矩陣。

簡單說明:

上一個模型上“豐富”了商品的特徵向量,這個模型採用使用者的社交資訊來“豐富”使用者的特徵矩陣。

3) 與神經網路(CNN)結合

來源出處

  • Kim, Donghyun, et al. “Convolutional matrix factorization for document context-aware recommendation.” Proceedings of the 10th ACM Conference on Recommender Systems. 2016.

示意圖:

圖片描述

左側為 PMF 模型,右側為 CNN 構建。

目標函式:
min⁡U,V12∑(i,j)∈O∥ru,i−uivjT∥2+12λu∑i∥ui∥2+12λv∑j∥vj−cnn(W,Xj)∥2+12λk∑k∥wk∥2 min limits_ {mathbf{U},mathbf{V}} frac{1}{2}sum_{left ( i,j right )in mathbf{O}} {left | r_{u,i}-u_i v^T_{j} right |^2} +frac{1}{2}lambda_u sum_{i} left | u_{i} right |^2 + frac{1}{2}lambda_v sum_{j}left | v_{j}-cnnleft( W,X_jright) right |^2 +frac{1}{2}lambda_k sum_{k} left | w_{k} right |^2 U,Vmin21(i,j)Oru,iuivjT2+21λuiui2+21λvjvjcnn(W,Xj)2+21λkkwk2
其中,XiX_iXi 為商品 iii 的文字評論,WWW 為 CNN 網路權重。

簡單說明:

自從深度學習火了之後,很快就將深度學習的各種模型帶入原來的 PMF 構架,來彌補 PMF 本身存在的不足。這裡是是用 CNN 得到評論特徵,豐富原來來自評分矩陣的特徵向量。

宣告

本部落格所有內容僅供學習,不為商用,如有侵權,請聯絡博主謝謝。

參考文獻

[1] Koren et al. Matrix factorization techniques for recommender systems.Computer 42.8 (2009).
[2] Koren Y. Factor in the neighbors: Scalable and accurate collaborative filtering[J]. ACM Transactions on Knowledge Discovery from Data (TKDD), 2010, 4(1).
[3] Koren et al. Collaborative filtering with temporal dynamics. Communications of the ACM 53.4 (2010): 89-97.
[4] Wang, Chong, and David M. Blei. “Collaborative topic modeling for recommending scientific articles.” Proceedings of the 17th ACM SIGKDD international conference on Knowledge discovery and data mining. 2011.
[5] Purushotham, Sanjay, Yan Liu, and C-C. Jay Kuo. “Collaborative topic regression with social matrix factorization for recommendation systems.” arXiv preprint arXiv:1206.4684 (2012).
[6] Kim, Donghyun, et al. “Convolutional matrix factorization for document context-aware recommendation.” Proceedings of the 10th ACM Conference on Recommender Systems. 2016.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/854/viewspace-2825406/,如需轉載,請註明出處,否則將追究法律責任。

相關文章