[视频] Music Recommender Systems

Sunday, November 29th, 2009

上次去beta沙龙的视频,希望没有浪费大家的时间,感谢beta沙龙的组织工作。

智能推荐系统

Monday, May 18th, 2009

断断续续的做了大半年歌曲相关性方面的试验,有一些肤浅的体会,工程方面多些,学术上仍很不足,与大家分享,望后来之君少走弯路,抑或被我带入岐途,不当之处,请指正。 PS:前段时间申请了个独立域名:http://www.fuchaoqun.com,烦请订阅feed者更新:http://www.fuchaoqun.com/feed/,原http://chaoqun.17348.com作了301跳转,将来一段时间内亦能访问。

基于Slope One的相关歌曲推荐算法

Tuesday, February 3rd, 2009

本博客所有原创文章采用知识共享署名-非商业性使用-相同方式共享,转载请保留链接http://chaoqun.17348.com/2009/02/slope-one-for-music-recommender-system/ 不知不觉,研究歌曲相关推荐快半年了,第一篇文章利用orange进行关联规则挖掘完成于2008.08.26,到现在基本搞定基于矩阵奇异值分解(SVD)的协同过滤算法,期间得到了很多朋友的帮助,在此致谢。有些收获,将逐步的分享出来,有兴趣的可以参照研习。 对于Slope One算法,不熟悉的可以参照我之前的文章:Slope one:简单高效的推荐算法,已经被很多人证明有很好的推荐效果。 Slope one算法中有一个很重要的步骤是获取用户的打分数据,这个对很多网站都很费劲,很多用户都会听歌,但大多懒得去给歌曲打分,另外用户打分的时候会比较困惑,该打多少分呢?喜欢这首歌,是打4分还是5分呢?费劲。 我这里给出的是另外一种方法,做法是分析用户的听歌记录,一般网站都会记录这样的记录,统计一段时间内用户的听歌记录,我们得到下面格式的数据: 用户ID    歌曲ID    听歌次数 比如某个片段: 3389    9527    23 3389    9528    56 3306    1211    78 3306    9527    45 表示用户3389听歌曲9527的次数是23,听9528的次数是56,诸如此类。这样的数据当然不能直接用来做Slope one,需要把数据格式化到某个区间。我们分析一下用户听歌的行为,一般来说最喜欢的歌曲听的最多,越喜欢的歌曲听的越多,听的少的歌曲自然不那么喜欢。所以我们可以简单的模拟用户对歌曲的打分: 用户对歌曲的打分 = 用户听此歌曲的次数 / 用户听单首歌曲的最大次数 这样就可以把打分数据规整到0~1之间,还是上面的数据: 3389    9527    23/56 3389    9528    56/56 3306    1211    78/78 3306    9527    45/78 用户听的最多的歌曲打分是1,其他歌曲的打分等于听歌次数除以最大次数,我们就获得了用户的打分数据了。剩下的工作就是按照标准的Slope One流程走了,程序代码可以参考:http://code.google.com/p/openslopeone/ 贴出几个实例大家看看,第一次做的结果,再去做的话应该比这个要好一些: 歌曲 推荐歌曲 南无大悲观世音菩萨   刘小茜 梵音大悲咒   齐豫 大悲咒   齐豫 观世音菩萨发愿偈.大悲咒   齐豫 大悲咒   邝美云 般若波罗蜜多心经   齐豫 大悲咒   齐豫 清净法身佛   齐豫 阿弥陀佛在心间   小娟 吉祥如意   凤凰传奇 好一朵茉莉花   朱昌耀 理查德-克莱德曼《梦中的婚礼》   合辑(欧美) 茉莉花(汉族民歌)   雷佳 好一朵茉莉花-笛子   合辑(内地) 最浪漫的事   赵咏华 沧海一声笑   罗文 how can i keep from singing   Enya 生死不离   ...