1. 程式人生 > >ALS(Alternating Least Squares) 交替最小二乘法概述

ALS(Alternating Least Squares) 交替最小二乘法概述

ALS(Alternating Least Squares)演算法是基於矩陣分解的協同過濾演算法中的一種,在sOven 的oryx框架中,推薦演算法便是採用的這種演算法。

首先說矩陣分解,這裡的矩陣分解可以理解為,將一個m×n的矩陣S分解為一個m×k的矩陣X和n× k的矩陣Y的轉置的乘積的近似值,即,

將這個公式放到推薦系統中,則 表示使用者對產品的偏好評分矩陣, 代表使用者對隱含特徵的偏好矩陣, 表示產品所包含的隱含特徵矩陣。

那麼問題來了,怎麼求矩陣X和Y呢?為了使矩陣X和Y轉置的乘積儘可能接近S,需要最小化平方誤差損失函式:

最小化平凡誤差損失函式,就要分別對xi和yj求偏導,並令其等於零,求得xi表示式如下:

(1)

yj表示式形式類似。

其迭代步驟是:首先隨機初始化Y,利用公式(1)更新得到到X,然後利用yi的表示式更新Y,直到RMSE(均方根誤差)變化很小或者到達最大迭代次數為止。