2009-09-16 132 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使用情况更加多样化,那些你不太喜欢的乐队,你真正喜欢的乐队将被加权得更多,因为他们将你与大众隔离得更多。 。