6g下載網
當前位置: 主頁 > 軟件教程 > 云計算 >

SVD算法基本介紹

時間: 2016-04-04 12:05 來源: 本站整理

分享到:

6G下載網給大家介紹SVD算法基本介紹,希望能給大家提供幫助。

基本介紹

伴隨的電商業務蓬勃發展,推薦系統也受到了格外重視,在通常電商系統中都是采用基于CF(Collaborative filtering)算法原型來做的。該算法是基于這樣基本假設:people who agreed in the past will agree in the future 。

說到SVD算法不能不說到Netflix舉辦的推薦大賽,這次比賽對推薦系統工業界產生了很大影響,伴隨著提出了很多算法思路,所以本文也是以這次比賽為主線,參考其中相關的兩篇經典論文,兩篇文章會上傳。

CF算法的挑戰:對于每個user ,未知的item 評分會大體上相似,因此對于那些只給少量item有評分的user將會有比較大的預測誤差,因為這樣的user缺乏足夠信息做預測。

Netflix比賽中最簡單直觀思路就是利用KNN算法思想,對于某個user 某個未評分的item,找到那個user 近鄰的users,然后多個近鄰user通過相似性加權來預測這個未評分的item,這個思路很簡單實現上也不難,但是這里有個關鍵問題就是如何計算近鄰,如何定義近鄰的相似性,我們通過計算users 和 objects特征來計算相似性,但是這個特征很難去構建好。

另外一種思路:matrix factorization 矩陣分解,這其中最常用的就是Singular Value Decomposition算法,SVD直接找到每個user和object的特征,通過user 和object特征對未評分的item進行評分預測。

SVD

SVD跟別的矩陣分解算法相比:沒有強加任何限制并且更容易實現

SVD算法基本介紹

上面是最基本的SVD算法形態,預測函數p 通常就是用簡單的dot product 運算,我們知道當我們把一個問題損失函數定義好了,下面要做的就是最優化的問題。

這個算法考慮到評分區間問題,需要把預測值限定在指定評分區間

SVD算法基本介紹

對上面損失函數求偏導如公式(5)(6)所示。

Batch learning of SVD

所以整個算法流程就如下:(Batch learning of SVD)

SVD算法基本介紹

然后論文中也給出了如何給U、V矩陣賦初值的算法。

公式中a是評分的下界,n(r)是在[-r,r]的均勻分布,上面提到的SVD算法是其最標準的形式,但是這個形式不是和大規模并且稀疏的矩陣學習,在這種情況下梯度下降會有很大的方差并且需要一個很小的學習速率防止發散。

前面提到了Batch learning of SVD ,我們會發現一個問題就是:如果評分矩陣V 有一些小的變動,比如某個user增加了評分,這是我們利用Batch learning of SVD 又需要把所有數據學習一次,這會造成很大的計算浪費。

SVD算法基本介紹

如上所述我們每次針對Ui :feature vector of user i 進行學習更新

更極端的情況我們可以針對每一個評分來進行學習如下圖:

SVD算法基本介紹

Incomplete incremental learning of SVD

針對上面基于某個user 學習或者基于某個評分學習算法我們稱為增量學習(incremental learning)

SVD算法基本介紹

算法 2 是基于某個user 的 叫做非完全的增量學習

Complete incremental learning of SVD

SVD算法基本介紹

算法 3 是基于某個評分進行更新的算法,叫做完全增量學習算法。

SVD算法基本介紹完畢。

(責任編輯:6g下載網)

分享到:

------分隔線----------------------------
? 35选7福利彩票