音乐推荐:基于用户偏好与算法模型的智能推送
音乐推荐系统的用户行为功能挺灵活的,能根据你平时听啥、收藏啥,慢慢摸清你的口味,推荐的歌也越来越准。离线计算那块,用的是 Python 搭配 Surprise、Spark + MLlib,再加点 Word2Vec。整个思路比较全,从协同过滤到歌曲相似度计算,都安排得明明白白。
协同过滤那部分,用 Surprise 算用户之间或歌单之间的“像不像”,找出你喜欢的歌单后,推荐相似的;有点像 B 站那种“都在看”的逻辑。日推也做得还不错,听得越多越精准,冷启动也考虑到了,新用户不怕没推荐。
Word2Vec 训练部分更有意思,它会把歌曲当成“词”来,训练后算出每首歌的“语义位置”,再按相似度推荐。比如你正在听的某首歌,它就会推荐几首“气质相近”的,效果还挺自然的,不突兀。
不过要注意,Word2Vec 的训练对数据顺序和量都比较敏感,数据清洗别省。还有,Spark 跑离线计算时资源占用不小,最好用集群,单机跑慢得要命。对冷启动问题还做了特殊,主要靠热门歌单和播放趋势来兜底。
如果你正好在做音乐类 App 或者内容推荐平台,这套架构思路可以借鉴下,改成你业务的用户行为也容易落地,代码也不复杂。推荐系统想做点个性化,这项目挺适合拿来当模板。
下载地址
用户评论