1. 程式人生 > >ALS矩陣分解演算法應用

ALS矩陣分解演算法應用

1.原理

問題描述

ALS的矩陣分解演算法常應用於推薦系統中,將使用者(user)對商品(item)的評分矩陣,分解為使用者對商品隱含特徵的偏好矩陣,和商品在隱含特徵上的對映矩陣。與傳統的矩陣分解SVD方法來分解矩陣R(RRm×n)不同的是,ALS(alternating least squares)希望找到兩個低維矩陣,以 R~=XY 來逼近矩陣R,其中 ,XRm×dYRd×n,d 表示降維後的維度,一般 d<

xu=(YTY+λI)1YTr(u)......(3)

同理固定X,可得到求解yi的公式

yi=(XTX+λI)1XTr(i)......(4)

其中,r

uRn,riRm,I表示一個d * d的單位矩陣。

基於公式(3)、(4),首先隨機初始化矩陣X,然後利用公式(3)更新Y,接著用公式(4)更新X,直到計算出的RMSE(均方根誤差)值收斂或迭代次數足夠多而結束迭代為止。

其中,R~=XYRMSE=(RR~)2N

ALS-WR模型

以上模型適用於使用者對商品的有明確的評分矩陣的場景,然而很多情況下使用者沒有明確的反饋對商品的偏好,而是通過一些行為隱式的反饋。比如對商品的購買次數、對電視節目收看的次數或者時長,這時我們可以推測次數越多,看得時間越長,使用者的偏好程度越高,但是對於沒有購買或者收看的節目,可能是由於使用者不知道有該商品,或者沒有途徑獲取該商品,我們不能確定的推測使用者不喜歡該商品。ALS-WR通過置信度的權重來解決此問題,對於我們更確信使用者偏好的項賦予較大的權重,對於沒有反饋的項,賦予較小的權重。模型如下

ALS-WR目標函式

minxu,yiL(X,Y)=u,icui(puixTuyi)2+λ(|xu|2+|yi|2)......(5)

其中

pui={1 if rui>00 if rui=0

cui=1+αruiα是置信度係數

通過最小二乘法求解

xu=(YTCuY+λI)1YTCur(u)......(6) yi=(XTCiX+λI)1XTCir(i)......(7)

其中Cu是一n×n維的個對角矩陣,Cuii=cu