Sunday, November 29th, 2009
上次去beta沙龙的视频,希望没有浪费大家的时间,感谢beta沙龙的组织工作。
Posted in Data Mining | 2 Comments »
Monday, May 18th, 2009
断断续续的做了大半年歌曲相关性方面的试验,有一些肤浅的体会,工程方面多些,学术上仍很不足,与大家分享,望后来之君少走弯路,抑或被我带入岐途,不当之处,请指正。
PS:前段时间申请了个独立域名:http://www.fuchaoqun.com,烦请订阅feed者更新:http://www.fuchaoqun.com/feed/,原http://chaoqun.17348.com作了301跳转,将来一段时间内亦能访问。
Posted in Data Mining | 9 Comments »
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
生死不离 ...
Posted in Data Mining | 2 Comments »