參考資料
《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.用余弦距離計算每個使用者與其它使用者的行為相似度 下面 是兩個使用者之間的相似度,進行遍歷就可以獲取全部相似...