如何实现Apple iTunes'Genius'算法?

时间:2009-09-16 01:44:28

标签: algorithm itunes

我一直想知道如何以及在iTunes上实施'Genius'功能的最佳方式。

我可能会蛮力,但只是想知道是否有人有任何见解。

感谢。

4 个答案:

答案 0 :(得分:13)

Genius算法是推荐系统的一个例子,它是电子商务系统中的热门话题。因此,Netflix获得了100万美元的奖金,持续了好几年才将其推荐系统提高了10%。

在iTunes上,您有一系列音乐。天才可以假设,如果你有这种音乐你必须喜欢它。如果有足够的人有歌曲B有歌A,那么天才可以说,如果你有歌A,你可能会喜欢歌曲B.

只是拥有这首歌是一个相当弱的推荐。如果用户对该音乐进行了评分,那么就更好了,这样你就可以在此基础上提高“推荐”的强度。

我强烈建议您阅读If You Liked This, You’re Sure to Love That作为推荐系统的良好入门。

答案 1 :(得分:1)

Step1 - 收集每位用户所有点击次数/播放次数的数据。这将是大量的数据。

Step2 - 制作排名/推荐列表生成系统。对于每首歌曲,生成一个排名/优先级类型列表,其中包含人们正在观看/播放的所有产品/歌曲。一个简单的例子说,没有人分享相同的组合或每首歌曲播放的播放时间。

Step3 - 保持一个限制(比如top10)以显示上述歌曲列表中的推荐。

这不是那么困难,诀窍或天才在于在第2步中添加权重。推荐系统如何与权重一起使用(对于ex page rank)。

我可能对数据挖掘工程师感到失望,他们给极其复杂的计算机科学领域提供了这样一个天真/简单的解释。请原谅我:)

答案 2 :(得分:1)

看看这个,term frequency–inverse document frequency,这是一种按照你喜欢的方式排名的方法,“独特”越多,喜欢的歌曲对建议的影响越大。

基本上,如果你只喜欢和玩U2,那么算法/程序很难推荐一些特别的东西,这是你喜欢的。

另一方面,如果你的iTunes使用情况更加多样化,你真正喜欢的那些鲜为人知的乐队将会更加重要,因为他们会让你更多地与群众隔离。

答案 3 :(得分:0)

重点:您必须拥有 lot 用户的数据。你不能通过蛮力自己做这件事(除非你的意思是完全手工制作)。