2016-11-02 46 views
0

如果我有以下的用戶提供電影以下評級,他們觀看:協同過濾算法

User1 Movie1-5 Movie2-4 
User2 Movie2-5 Movie2-3 Movie3-4 
User3 Movie1-4 Movie2-4 Movie4-4 

我將如何使用協同過濾提出MOVIE3爲user1,如何計算USER1給MOVIE3的概率一個4或更好?

+4

http://stackoverflow.com/help/mcve – xxbbcc

回答

2

那麼有幾種不同的方式來使用協作過濾來生成推薦,我將解釋基於用戶和基於項目的協作過濾方法。這些方法最常用於推薦算法。

基於用戶的協作過濾

這基本上計算用戶之間的相似性。相似性可以是皮爾森相關或餘弦相似。有更多的相關數字,但那些是最常用的。 This文章就如何計算這個問題給出了一個很好的解釋。

基於用戶的過濾確實帶來了一些挑戰。首先是數據稀疏問題,這是在有很多電影和少量評論的情況下發生的。這使得計算用戶之間的相關性變得困難。 This維基百科頁面解釋了更多關於此的信息。

其次是可伸縮性問題。當擁有數以百萬計電影的數百萬用戶時,計算用戶之間相關性的性能將大幅下降。

項目基於協同過濾

此方法從基於用戶的濾波不同,因爲它計算電影,而不是用戶之間的相似性。然後,您可以使用此相似性來預測用戶的評分。我發現this演示文稿解釋得非常好。

基於項目的過濾器的性能優於基於用戶的過濾器,但它們也遭受同樣的問題,但稍微少一點。

基於內容的過濾

看到你的數據,這將是困難的,因爲你必須從用戶的數據太少,產生建議。我建議使用基於內容的過濾器,直到您有足夠的數據來使用協作過濾方法。這是一個非常簡單的方法,它基本上查看用戶的個人資料並將其與電影的某些標籤進行比較。 This頁面更詳細地解釋它。

我希望這能回答你的一些問題!