基於矩陣分解的推薦算法,簡單入門


 

摘自:http://www.cnblogs.com/kobedeshow/p/3651833.html
       本文將要討論基於矩陣分解的推薦算法,這一類型的算法通常會有很高的預測精度,也活躍於各大推薦系統競賽上面,前段時間的百度電影推薦最終結果的前10名貌似都是把矩陣分解作為一個單模型,最后各種ensemble,不知道正在進行的阿里推薦比賽( http://102.alibaba.com/competition/addDiscovery/index.htm),會不會驚喜出現。。。。好了,閑話不扯了,本文打算寫一篇該類型推薦算法的入門篇
 
 
一,基於矩陣分解的推薦算法相關理論介紹
      我們知道,要做推薦系統,最基本的一個數據就是,用戶-物品的評分矩陣,如下圖1所示
 
圖1
         矩陣中,描述了5個用戶(U1,U2,U3,U4 ,U5)對4個物品(D1,D2,D3,D4)的評分(1-5分),- 表示沒有評分,現在目的是把沒有評分的 給預測出來,然后按預測的分數高低,給用戶進行推薦。
       如何預測缺失的評分呢?對於缺失的評分,可以轉化為基於機器學習的回歸問題,也就是連續值的預測,對於矩陣分解有如下式子,R是類似圖1的評分矩陣,假設N*M維(N表示行數,M表示列數),可以分解為P跟Q矩陣,其中P矩陣維度N*K,P矩陣維度K*M。
 
式子1
       對於P,Q矩陣的解釋,直觀上,P矩陣是N個用戶對K個主題的關系,Q矩陣是K個主題跟M個物品的關系,至於K個主題具體是什么,在算法里面K是一個參數,需要調節的,通常10~100之間。
式子2
       對於式子2的左邊項,表示的是R^ 第i行,第j列的元素值,對於如何衡量,我們分解的好壞呢,式子3,給出了衡量標准,也就是損失函數,平方項損失,最后的目標,就是每一個元素(非缺失值)的e(i,j)的總和 最小
 
 
式子3
         OK,目前現在評分矩陣有了,損失函數也有了,該優化算法登場了,下面式子4是,基於梯度下降的優化算法,p,q里面的每個元素的更新方式
 
 
式子4
            然而,機器學習算法都喜歡加一個正則項,這里面對式子3稍作修改,得到如下式子5,beita 是正則參數
 
式子5
         相應的p,q矩陣各個元素的更新也換成了如下方式
 
式子6
        至此,P,Q矩陣元素求出來了之后,計算某個用戶i對某個物品j的評分計算就是p(i,1)*q(1,j)+p(i,2)*q(2,j)+....+p(i,k)*q(k,j)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM