目前在各大音乐 App 中用得比较多的是「洗牌算法」,比如用户数量很大的网易云音乐和 QQ 音乐等播放器都在使用。
好的随机算法应当是怎样的
但即便「洗牌算法」本身有足够多的优点,但原始的「洗牌算法」已经无法满足日益增长的听歌需求,或者说也有播放器越改越糟糕的情况。比如知乎提问中,很多人都感觉网易云音乐的随机算法有着很大问题,比如只放一小部分固定的歌曲,而有些歌曲似乎永远随机不到。甚至有的用户还表示自己删除的一首歌曲还能被随机到。
其实 App 对于这个「随机列表」是有干预的,而并非简单的进行洗牌,而但从结果上说,到底用户感知是好还是差,就看各家对于「洗牌算法」的理解和设计了。尽管吐槽网易云算法的用户不少,但也并不影响推荐歌单和评论等受到欢迎的功能。
根据知乎简介为 QQ 音乐产品经理的用户刘彦彬的回答,在洗牌算法之中也会掺杂更多的大数据算法干预:
根据产品团队调研,用户想要的其实不是真正的「随机播放」,而是用户更多是不知道听哪首,更多是选择困难,希望能帮我做决定。而且,尽量的符合我当前的心境。
随机算法可以解决选择困难,但是并不能真正解决用户需要的心境,因为「洗牌算法」并不会知道用户究竟想要什么。但是音乐应用其实是可以做到这一点的,在足够大的个人听歌数据样本和大数据调研情况下,算法可以做出一些判断,用户此刻更想要听哪些歌。
QQ 音乐. 图片来自:YouTube
举个简单的例子,比如说在夜深人静的深夜点开随机播放,那么用户很大可能性是不想听比如金属、摇滚等过于吵杂的音乐,结合用户以往的听歌历史,这个时候随机算法就会根据用户当前的环境时间,更多的随机到轻音乐。
不然你以为那些听歌报告为什么那么详细,你夜里不睡觉循环了多少遍哪首歌,它都一清二楚。
QQ 音乐产品经理刘彦彬还总结了好的随机算法应该具备的几条特征:
-记录我本地或最近一段时间的听歌记录,尽量在随机时不会推荐出来,保证随机的新鲜感
-洗牌算法做好,尽可能的隔开某个歌手,某张专辑,让用户从感官上感觉是一个随机列表
-可以在本地做用户操作记录,比如跳过歌曲的次数,对用户不感兴趣的歌曲进行降权或者过滤,精选随机的池子
在对歌曲标签丰富后,可以做的事情就更多了,比如根据当前的场景,推荐本地适合收听的歌曲优先随机播放,这些都有助于让用户感知智能。
Spotify 的随机播放. 图片来自:REGENDUS
对随机播放算法调研的当然不只是 QQ 音乐,一直以推荐算法闻名的流媒体音乐服务 Spotify 也有对「洗牌算法」更深度的思考,甚至他们还在官网里面写出了如何改进随机播放算法。