ALS演算法的基本思想
SparkALS演算法基本思想
ALS演算法是基於模型的推薦演算法。起基本思想是對稀疏矩陣進行模型分解,評估出缺失項的值,以此來得到一個基本的訓練模型。然後依照此模型可以針對新的使用者和物品資料進行評估。ALS是採用交替的最小二乘法來算出缺失項的。交替的最小二乘法是在最小二乘法的基礎上發展而來的。由於本人數學有限,就大體的介紹下最小二乘法的思想
最小二乘法
以下是使用者A、B、C對物品A、B、C的打分
使用者\物品 | 物品A(id=1) | 物品B(id=7)) | 物品C(id=9) |
---|---|---|---|
使用者A(id=4) | 5 | ? | 4 |
使用者B(id=2) | ? | ? | 3 |
使用者C(id=3) | 1 | 3 | 5 |
上圖的矩陣可以按照(使用者id,物品id)=評分的方式,在一個X/Y軸的一個點,只不過這些點有的有具體的值,有的沒有,那麼我們可以根據已經有值的點計算出一個函式F,使得這個函式F的曲線近似的穿插這些點,並使這些點的真值(表中的評分)與函式F測算值的方差之和最小(可以認為方差之和為0)。這樣就可以獲得一個方差函式FF,針對方差函式FF求偏導,就可以計算出函式F。
描述的不太清楚,可以參見部落格http://blog.csdn.net/yauphy1/article/details/43735763