SVD SVD++

參考:

http://www.cnblogs.com/Xnice/p/4522671.html

http://blog.csdn.net/dark_scope/article/details/17228643

http://blog.csdn.net/qq_20599123/article/details/51509335


用戶-電影評分矩陣形式


矩陣分解模型(matrix factorization model)


Pu代表用戶隱因子矩陣(表示用戶u對因子k的喜好程度),Qi表示電影隱因子矩陣(表示電影i在因子k上的程度)

Baseline Predictors

不過有些評分與用戶和產品的交互無關:有些用戶偏向於給產品打高分,有些產品會收到高分。我們將這類不涉及用戶產品交互的影響建模爲baseline predictors。
μ是平均值,然後分別用bi和bu來代表具體用戶和物品的整體偏差

SVD:

SVD就是一種加入Baseline Predictors優化的matrix factorization model。

加入防止過擬合的 λ 參數,最簡單的SVD是優化下面的Loss function:

            

           採用隨機梯度下降進行優化:

                

           雖然看起來比較簡單,但實際上對預測的效果已經超出Item-based很多了,而從SVD衍生出很多其它的算法,利用了更多的信息,我們在這裏只予以介紹而不加實踐。



SVD++:

SVD++算法是指在SVD的基礎上引入隱式反饋,使用用戶的歷史瀏覽數據、用戶歷史評分數據、電影的歷史瀏覽數據、電影的歷史評分數據等作爲新的參數。


模型的解釋:這樣的模型對於提供了很多隱式反饋(|R(u)|較高)的用戶,使得它們的預測偏離基準預測。這對於推薦系統是一個較好的嘗試,因爲我們總是希望對那些提供了較多反饋用戶從而可以較好建模的用戶冒更大的風險。對於這類用戶我們我們願意提供不常見的推薦。而對於提供較少用戶,我們更希望提供安全的預測,在基準值附近。 

求導求解結果如下:


使用用戶的歷史評價數據作爲隱式反饋,算法流程圖如下:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章