2009-09-16 131 views
8

我一直在想如何以及怎樣去實現iTunes上的'Genius'功能。如何實現Apple iTunes'Genius'算法?

我可能蠻力,但只是想知道如果有人有任何見解。

謝謝。

+0

近似重複」 http://stackoverflow.com/questions/819866/music-analysis-software/819922#819922 –

回答

13

Genius算法是推薦系統的一個例子,它是電子商務系統中的熱門話題。 Netflix獲得了幾百萬美元的獎金,用於改善他們的推薦系統僅僅10%。

在iTunes上你有一個音樂集合。天才可以做出假設,如果你有這種音樂,你必須喜歡它。如果有足夠的人擁有歌曲A,那麼Genius可以說如果你有歌曲A,你可能會喜歡歌曲B.

只要擁有這首歌曲將是一個相當弱的推薦。如果用戶對音樂進行評分,那麼效果會更好,因此您可以在此基礎上提高「推薦」的實力。

我強烈建議閱讀If You Liked This, You’re Sure to Love That作爲推薦系統的一個很好的入門書。

+0

優秀文章感謝 –

+1

這些書太 HTTP://www.amazon。com/Algorithms-Intelligent-Web-Haralambos-Marmanis/dp/1933988665/ http://www.amazon.com/Collective-Intelligence-Action-Satnam-Alag/dp/1933988312/ –

0

重要的一點:您必須擁有批次的用戶數據。你不能通過暴力手段來做到這一點(除非你的意思是完全用手來創造它)。

1

第1步 - 收集數據,爲每個用戶的所有點擊/播放。這將是很多數據。

步驟2 - 製作排名/推薦列表生成系統。對於每首歌曲,都會生成包含所有正在查看/播放的產品/歌曲的排名/優先級列表。一個簡單的例子是,沒有人分享相同的組合或每首歌曲播放的時間量。

第3步 - 保留一個限制(比如說top10),以顯示上面列出的歌曲的建議。

這並不難,訣竅或天才在於給步驟2中的列表添加權重。您的推薦系統如何與權重(前頁面排名)一起工作。

對於非常複雜的計算機科學領域,我可能會對數據挖掘工程師給予這樣一種天真/簡單的解釋感到失望。請原諒我。 :)

1

看看這個,term frequency–inverse document frequency,這是一種根據你喜歡的等級進行排名的方法,越是「獨特」,喜歡的歌曲對推薦的影響就越大。

基本上,如果你只喜歡和玩U2,算法/程序很難推薦一些特別的,這是你喜歡的。另一方面,如果你的iTunes使用情況更加多樣化,那些你不太喜歡的樂隊,你真正喜歡的樂隊將被加權得更多,因爲他們將你與大衆隔離得更多。 。