【内含文件】网易云音乐的随机播放到底是怎么做的?

产品狗聚集地

共 2140字,需浏览 5分钟

 ·

2022-01-21 20:17

上班开会,下班工作,仿佛已经成了产品经理常态。随着你忙完当天的工作,时针也悄悄越过了11点,熟练的带上耳机,打开最喜欢的歌单,点下随机播放的按钮,寄希望于算法能给你一天疲惫的工作带来点未知的新鲜,紧接着叫车回家。

 

在等车的过程中,一直在思考 —— 随机播放算法是如何给随机的?



「随机播放」是有魅力的,你永远不知道下一曲是什么,有可能上一曲也“物是人非”。于是求证了下网易云播放器的产品经理,他说常见的「随机播放」有两种,一种是 Random 算法 ,一种是 Shuffle 算法

 

Shuffle 一般叫【洗牌算法】,原理就类似扑克洗牌一样,将不同数量的扑克随意乱洗牌,然后排序。歌单随机播放也是同理,每次播放时,会将这个歌单里的所有歌曲随意洗牌,从而得到一个乱序的新歌单。Shuffle 其实也叫【伪随机算法】

 

Random 才是真正的随机播放他没有列表的概念,也没有上一曲和下一曲的概念,随机播放和“抓阄”一样,是未知的

 

那怎么判断是【伪随机】还是【真随机】呢?其实只要点“上一曲”,判断条件是:

  • 如果切换的是你刚才听过的那一首歌,那就是【伪随机】的 Shuffle 算法;

  • 如果每次切换的都是不同的歌,那就是【真随机】的 Random 算法。

 

目前基本上市面上的音乐平台都用的是 Shuffle 洗牌算法。为什么呢?从理论上来说,它更具备可控性,既能满足用户随机音乐播放的需求,又能避免重复听一首歌。

 

了解清楚随机播放的两个算法后,咱再往深一点思考下——更好的随机算法是怎样的?

 

其实我个人感觉网易云音乐的随机算法有问题:感觉歌单中某些歌曲永远随机不到,有时候歌单中删除的歌曲也被随机到了。

 

后面据了解,网易云音乐并非只是对歌单进行简单洗牌,而是会在洗牌算法中掺杂更多的用户策略和数据策略。他们经过调研发现,用户想要的其实不是真正的【随机播放】,而是用户不知道听哪首歌,想要系统帮他做决定。并且更重要的是——符合他的品味和当前的心情。

 

而现实是——随机算法能帮他解决随意听歌,但是不能解决符合他当时心情的歌曲,因为随机算法并不知道用户真正想要什么?但是网易云音乐有足够大的个人听歌数据,其实通过用户策略和数据策略,能帮用户找到符合他的品味的歌曲。

 

你会发现,推荐歌单中能找到你想听的歌曲。比如:

 

产品经理在夜深人静写文档画原型时,点开随机播放,你很大概率不会听金属、摇滚的音乐,而是结合你听歌历史,工作日时间点,更多给你随机到轻音乐、保命曲。

 

你发现——每年听歌年终报告,就详细记录了你夜里不睡觉循环了多少遍哪首歌,将你扒的一干二净。回过来看,其实我觉得好的随机算法应该具备以下四个重要特征:

  • 首先是 Shuffle 洗牌算法策略更灵活一些,尽可能的隔开单一歌手、单一专辑,让用户从感觉上是一个随机列表;

  • 然后记录用户本地/最近的听歌记录,尽量在随机时不被推荐出来,保证随机新鲜感;

  • 接着在本地记录用户操作行为,比如跳过某一类歌曲的次数,对用户不感兴趣的歌曲过滤或降权,对随机列表精选;

  • 最后丰富歌曲标签库,根据场景,推荐本地适合的歌曲优先播放。

 

其中,有一点基础性的工作必须要做——用户画像的完整性。除了看国内的产品,也可以挖掘下国外的 Spotify,该产品算是洗牌算法2.0版,虽说非常智能,依然有很多用户对其嗤之以鼻,所以 Spotify 的产品经理开始思考为什么用户会嗤之以鼻?

 

Spotify 的算法是 Fisher-Yates 洗牌算法。(在结尾我也为大家准备了洗牌算法的三种策略)我用一张简单的图展示下该洗牌算法:



你会发现,对于洗牌算法①的用户最核心的想法是不希望一位歌手在短时间重复出现,这和“赌徒谬论”是一样的,连续几次都没赢,都会认为下一把赢的概率会大很多,其实呢?每次的概率是相同且独立的。

 

所以呢?用户如果连续听到某一歌手的歌曲时,用户就会觉得算法有问题。对吧。

 

但是对于②来说,用户就能更接受一些,因为似乎达到了真正的随机,对不对?因为既满足了歌曲的新鲜感,又避免了重复和单调。经过改进后,这个算法叫抖动算法。(是Shuffle 洗牌算法的升级版)

 

回过头看,各家的随机播放列表都是基于洗牌算法,也都在基础上加了自己的“秘制调料”,吐槽或褒奖,都在用户的言语间……但是呢?随着获取海量用户的听歌习惯,往往洗牌算法越来越人性化,越听越懂你。

 

这就是算法的魅力……

 

John为你准备了 Shuffle 的三种算法,公众号私信回复“洗牌”,即可获取。非常有意思哈。

 

记得帮John文章分享,在看哟。感谢。



John的视频号现在基本上每周一更,也是分享产品经理干货。几分钟梳理清楚一个非常重要的知识点。可以去关注关注。


用一个视频告诉你产品规划的通用公式,前提是一定要清楚产品业务


一个视频聊清楚B端和C端产品的区别。


其他更多内容,可以去看视频号主页。可以承诺读友的是——每条视频和每篇文章,必将经得起时间的检验。

浏览 191
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报