推薦算法(一)——音樂歌單智能推薦


       題記:推薦引擎依據的分類依據數據源,分為基於人口統計學的(用戶年齡或性別同樣判定為類似用戶)、基於內容的(物品具有同樣關鍵詞和Tag,沒有考慮人為因素)。以及基於協同過濾的推薦(發現物品。內容或用戶的相關性推薦。分為三個子類,下文闡述);
       依據其建立方式。分為基於物品和用戶本身的(用戶-物品二維矩陣描寫敘述用戶喜好,聚類算法)、基於關聯規則的(The Apriori algorithm算法是一種最有影響的挖掘布爾關聯規則頻繁項集的算法)、以及基於模型的推薦(機器學習。所謂機器學習。即讓計算機像人腦一樣持續學習,是人工智能領域內的一個子領域)。

       推薦算法潛在因子(Latent Factor)算法。
       應用領域:“網易雲音樂歌單個性化推薦”、“豆瓣電台音樂推薦”等。
       關鍵因素: 評分矩陣的UV分解的理解。

       算法思想
       每一個用戶(user)都有自己的偏好,比方A喜歡帶有小清新的、吉他伴奏的、王菲等元素(latent factor)。假設一首歌(item)帶有這些元素,那么就將這首歌推薦給該用戶,也就是用元素去連接用戶和音樂。

每一個人對不同的元素偏好不同,而每首歌包括的元素也不一樣。

我們希望能找到這樣兩個矩陣:

     實際上你能夠理解為latent factor是對用戶屬性和音樂屬性的雙重降維(相當於把高維的用戶\音樂屬性降維到一個k維的隱空間進行表達)。將用戶屬性\音樂屬性都使用一個k維的向量表示,終於預測出某一用戶對某一音樂的評分即為這兩個向量的內積。
一。,表示不同的用戶對於不用元素的偏好程度,1代表很喜歡,0代表不喜歡。比方以下這樣:
這里寫圖片描寫敘述

二。潛在因子-音樂矩陣P,表示每種音樂含有各種元素的成分。比方下表中,音樂A是一個偏小清新的音樂,含有小清新這個Latent Factor的成分是0.9,重口味的成分是0.1,優雅的成分是0.2……
這里寫圖片描寫敘述
       利用這兩個矩陣,我們能得出張三對音樂A的喜歡程度是:張三對小清新的偏好音樂A含有小清新的成分+對重口味的偏好音樂A含有重口味的成分+對優雅的偏好*音樂A含有優雅的成分+……
這里寫圖片描寫敘述
這里寫圖片描寫敘述
       即:0.6*0.9+0.8*0.1+0.1*0.2+0.1*0.4+0.7*0=0.69
       每一個用戶對每首歌都這樣計算能夠得到不同用戶對不同歌曲的評分矩陣。(注,這里的破浪線表示的是預計的評分,接下來我們還會用到不帶波浪線的R表示實際的評分):
這里寫圖片描寫敘述
     因此我們隊張三推薦四首歌中得分最高的B,對李四推薦得分最高的C,王五推薦B。


假設用矩陣表示即為:
                                                                   這里寫圖片描寫敘述
       以下問題來了,這個潛在因子(latent factor)是怎么得到的呢?
    由於面對海量的讓用戶自己給音樂分類並告訴我們自己的偏好系數顯然是不現實的,其實我們能獲得的數據僅僅實用戶行為數據。我們沿用的量化標准:單曲循環=5, 分享=4, 收藏=3, 主動播放=2 , 聽完=1, 跳過=-2 , 拉黑=-5,在分析時能獲得的實際評分矩陣R。也就是輸入矩陣大概是這個樣子:
這里寫圖片描寫敘述

    其實這是個很很稀疏的矩陣,由於大部分用戶僅僅聽過所有音樂中很少一部分。

怎樣利用這個矩陣去找潛在因子呢?這里主要應用到的是矩陣的UV分解。也就是將上面的評分矩陣分解為兩個低維度的矩陣,用Q和P兩個矩陣的乘積去預計實際的評分矩陣,並且我們希望預計的評分矩陣
這里寫圖片描寫敘述
       對於一個大型的評分矩陣X(m*n,m為用戶數。n為音樂數量。矩陣中每一項便是這一用戶對這一音樂的評分,顯然這會是一個很稀疏的矩陣),我們希望由這一評分矩陣得到兩個分解后的矩陣U(m*k。用戶屬性在隱空間內的表示)與V(n*k,音樂屬性在隱空間內的表示)。使得U乘以transpose(V)能夠盡可能地逼近矩陣X,即由抽取的用戶屬性\音樂屬性。我們能夠“盡可能地還原出”原本輸入的大型評分矩陣X——這一分解便被稱為”UV分解”。
       和實際的評分矩陣不要相差太多,也就是求解以下的目標函數:
                                                 這里寫圖片描寫敘述
       這里涉及到最優化理論。在實際應用中,往往還要在后面加上2范數的罰項,然后利用梯度下降法就能夠求得這P,Q兩個矩陣的預計值。這里我們就不展開說了。比如我們上面給出的那個樣例能夠分解成為這樣兩個矩陣:
這里寫圖片描寫敘述
       這兩個矩陣相乘就能夠得到預計的得分矩陣:
這里寫圖片描寫敘述
       將用戶已經聽過的音樂剔除后,選擇分數最高音樂的推薦給用戶就可以(紅體字)。

參考文獻
http://www.zhihu.com/question/26743347/answer/34714804


免責聲明!

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



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