機器學習筆記09 協同過濾演算法 ALS

2021-08-28 10:44:57 字數 1867 閱讀 4588

參考資料

《spark mllib 機器學習實踐》

線性代數-同濟大學

基於矩陣分解的協同過濾演算法

機器學習的正則化

正則化方法  

1、協同過濾演算法概念

1)、基於使用者的推薦:認為類似的使用者應具備類似的愛好

2)、基於物品的推薦:認為使用者會選擇比較接近的物品

兩類思路也存在相應的侷限性:

1)、基於使用者的推薦,無法準確找到物品熱點,因此經常只反饋常用物品;

2)、基於物品的推薦,會導致返回相似物品,但使用者往往不會購買已經選擇過的類似商品;

2、相似度計算

假設存在使用者和物品的評價矩陣如下:

1)、基於歐幾里得距離的相似度計算

2)、基於余弦角度的相似度計算

備註:2)相當於把歐幾里得中的座標點轉換為向量,求向量的夾角

3、als(交替最小二乘法)的一些數學知識備註

1)可逆矩陣

對於矩陣

備註:已知對矩陣a實施一次初等行變換,相當於在矩陣的座標乘以乙個矩陣;對矩陣a實施一次初等列變換相當於在矩陣的右邊乘以乙個矩陣。

2)特徵值

有矩陣

特徵值的幾何意義在於該矩陣b乘以乙個向量,相當於將這個向量在特徵向量方向上做了乙個特徵值的拉公升,其他都是旋轉操作。

在上面的例子中,若給出向量(1,1)則被b左乘後拉公升到了(3,3)。由於5這個特徵值,特徵向量是0,因此無法給出拉公升的效果。

3)特徵分解

對於可對角矩陣可以將矩陣分解稱特徵值和特徵向量的乘積。即

4)奇異值分解

對於大部分矩陣來說,特別是非方陣,無法進行特徵分解,此時我們採用奇異值分解的方法。

4、als(交替最小二乘法)演算法流程

在實際協同過濾演算法中,並沒有直接用奇異值分解,而是用als演算法直接用低秩矩陣來逼近。

當採用x來逼近矩陣r時,有frobenius損失函式:

演算法流程如下:

1、先固定矩陣u為全零

2、對l(u,v)求v的偏導,使其偏導數全為0,

3、固定v向量,轉而求u,同樣使偏導數全為0,有公式

4、重複步驟2,3,直到損失函式達到目標值。

4、als(交替最小二乘法)在spark上的例子

package com.fredric.spark.als;

import org.apache.spark.mllib.recommendation.

import org.apache.spark.

/*- * 協同過濾演算法(als)

* 針對筆記《spark-協同過濾演算法-als》

* fredric 2017

*/object als

}

機器學習 協同過濾

在現今的推薦技術和演算法中,最被大家廣泛認可和採用的就是基於協同過濾的推薦方法。本文將帶你深入了解協同過濾的秘密。下面直接進入正題 1 什麼是協同過濾 協同過濾是利用集體智慧型的乙個典型方法。要理解什麼是協同過濾 collaborative filtering,簡稱 cf 首先想乙個簡單的問題,如果...

協同過濾演算法

3種形式的協同過濾 collaborative filtering 演算法 1 user based 相同 相似 使用者的喜好相同 2 item based 能夠引起使用者興趣的專案,必定與其之前評分高的專案相似 3 model based 先用歷史資料得到乙個模型,再用此模型進行 參考 這個位址是...

協同過濾演算法

1.表示使用者行為矩陣,即統計使用者購買某種商品型別的數量 public double getnumbycustomer customer customer return vectore 2.用余弦距離計算每個使用者與其它使用者的行為相似度 下面 是兩個使用者之間的相似度,進行遍歷就可以獲取全部相似...