初識交替最小二乘ALS

2021-07-24 14:43:17 字數 1328 閱讀 4619

als是alternating least squares的縮寫 , 意為交替最小二乘法;而als-wr是alternating-least-squares with weighted-λ -regularization的縮寫,意為加權正則化交替最小二乘法。該方法常用於基於矩陣分解的推薦系統中。例如:將使用者(user)對商品(item)的評分矩陣分解為兩個矩陣:乙個是使用者對商品隱含特徵的偏好矩陣,另乙個是商品所包含的隱含特徵的矩陣。在這個矩陣分解的過程中,評分缺失項得到了填充,也就是說我們可以基於這個填充的評分來給使用者最商品推薦了。

由於評分資料中有大量的缺失項,傳統的矩陣分解svd(奇異值分解)不方便處理這個問題,而als能夠很好的解決這個問題。對於r(m×n)的矩陣,als旨在找到兩個低維矩陣x(m×k)和矩陣y(n×k),來近似逼近r(m×n),即:

其中r(m×n)代表使用者對商品的評分矩陣,x(m×k)代表使用者對隱含特徵的偏好矩陣,y(n×k)表示商品所包含隱含特徵的矩陣,t表示矩陣y的轉置。實際中,一般取k<

為了找到使低秩矩陣x和y盡可能地逼近r,需要最小化下面的平方誤差損失函式:

其中xu(1×k)表示示使用者u的偏好的隱含特徵向量,yi(1×k)表示商品i包含的隱含特徵向量, rui表示使用者u對商品i的評分, 向量xu和yi的內積xu

tyi是使用者u對商品i評分的近似。

損失函式一般需要加入正則化項來避免過擬合等問題,我們使用l2正則化,所以上面的公式改造為:

其中λ是正則化項的係數。

到這裡,協同過濾就成功轉化成了乙個優化問題。由於變數xu和yi耦合到一起,這個問題並不好求解,所以我們引入了als,也就是說我們可以先固定y(例如隨機初始化x),然後利用公式(2)先求解x,然後固定x,再求解y,如此交替往復直至收斂,即所謂的交替最小二乘法求解法。

具體求解方法說明如下:

其中ru(1×n)是r的第u行,ri(1×m)是r的第i列, i是k×k的單位矩陣。

上文提到的模型適用於解決有明確評分矩陣的應用場景,然而很多情況下,使用者沒有明確反饋對商品的偏好,也就是沒有直接打分,我們只能通過使用者的某些行為來推斷他對商品的偏好。比如,在電視節目推薦的問題中,對電視節目收看的次數或者時長,這時我們可以推測次數越多,看得時間越長,使用者的偏好程度越高,但是對於沒有收看的節目,可能是由於使用者不知道有該節目,或者沒有途徑獲取該節目,我們不能確定的推測使用者不喜歡該節目。als-wr通過置信度權重來解決這些問題:對於更確信使用者偏好的項賦以較大的權重,對於沒有反饋的項,賦以較小的權重。als-wr模型的形式化說明如下:

其中α是置信度係數。

其中cu是n×n的對角矩陣,ci是m×m的對角矩陣;cu

ii  = cui,  ci

ii  = cii。

參考:

Spark MLlib交替最小二乘法ALS原始碼解析

請先閱讀leboop發布的博文 spark mllib協同過濾之交替最小二乘法als原理與實踐 核心 如下 定義als,引數初始化 val als new als setrank 50 setmaxiter 10 setregparam 0.01 setusercol userid setitemc...

最小二乘 加權最小二乘 matlab實現

最小二乘 最小二乘法 又稱最小平方法 是一種數學優化技術。它通過最小化誤差的平方和尋找資料的最佳函式匹配。利用最小二乘法可以簡便地求得未知的資料,並使得這些求得的資料與實際資料之間誤差的平方和為最小 最小二乘法還可用於曲線擬合,其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。加權最小...

最小二乘擬合 6 7 最小二乘擬合問題

資料擬合問題的一般形式 任給一組離散資料 注 這裡的擬合函式不一定為多項式函式 記殘量的平方和為 求使得殘量平方和最小得一組係數就是線性最小二乘問題,為最小二乘問題得基函式,求得的擬合函式為資料的最小二乘擬合。求解 利用偏導數為零得到極值點的原理可以得到最小二乘問題滿足的方程組,求解方程組中未知係數...