一、背景一个产品小白对于网易云音乐随机播放的一些想法和思考,资料和相关理论都是通过阅读和自己分析得出的结论,如有不妥请指正。
1. 现状
不知道大家有没有这样一种感觉:在使用音乐软件进行随机播放的时候,总是不能播放到心仪的音乐,而且很多歌曲会重复出现。在产生这种困惑之后我同时产生了对随机播放算法和问题的好奇。
于是,我在百度中输入“音乐随机播放”关键词后,在知乎、百度知道、豆瓣都能看到:“没有听到的歌一直没听到,还有一些歌一直重复播”、“好像是在已加载的列表中随机”、“实际结果其实给人的感觉并不随机。某首歌从不出现,和某首歌反复出现,概率其实都很高”、“大部分是根据你听的次数最多的几首歌优先来放,越来越频繁,听的次数就越来越多”等反馈。
2. 用户需求
用户使用随机播放,往往出于以下原因:一是想听到列表里不常听的歌;二是不想或很难作出选择,希望随机播放的功能能够帮助他们选择(懒惰心理)。
但是根据网络上用户的反映和本人的使用体验来看,随机播放功能主要解决第二类用户的需求,对于第一类用户的需求并没有很重视,因此才会出现上面提到的网友的吐槽。
3. 小结
观察后发现,QQ音乐、虾米和其他播放软件的随机播放也有此类问题,而且问题从15-19年都有反映,说明此类问题并没有得到很好的解决。
二、分析1. 随机播放模式的算法
一般音乐播放器的随机模式分为两种:
1)播放当前歌曲时才随机生成下一首,即完全随机(称为Random算法):为了避免某些歌曲经常重复播放或很难被播放到,并非是盲目的完全随机下一首,而是需要分析用户的播放历史,需要比较好的算法进行支撑,最终始于随机却超脱随机。
2)将当前的list打乱顺序,然后依次播放,也就是大家所说的伪随机(称为Shuffle算法):这一种是目前比较流行的随机模式,完美解决某些歌曲很难被播放到的情况出现,但是却有以下劣势:该模式下,上下曲的顺序是固定的;一个随机播放的list的歌曲全部播放完毕后会重新生成另一个list,但是相邻的list之间容易出现用户所感知的“重复”播放。
根据问答资料整理,大部分音乐播放软件的随机算法是“洗牌算法(shuffle)”。
2. 什么是“洗牌算法”
简单来说就是随机问题,一个从1到n的序列,随机打乱,保证每个数出现在任意一个位置的概率相同。
运用到音乐软件来说,就是系统在歌单内随机抽选歌曲进行随机排列,形成一个新的歌单再进行顺序播放,这就是我们所说的随机播放。
那么洗牌算法中进行排列的总体是什么呢?
在这里我想作一个简单猜测:根据用户反映情况和自身的体验来看,我认为随机播放的总体有4个,分别是全部歌曲(a)、最近播放(b)、按播放量排列的歌曲(c)和喜欢的歌曲(d),随机播放时从中抽取的比例为n1%,n2%,n3%,n4%(n1% n2% n3% n4%=1),那么随机歌单的歌曲总数S=a*n1% b*n2% c*n3% d*n4%。
搞清楚了随机播放的原理后,我们可以尝试分析一下随机播放遇到的问题以及解决方法了。
三、问题反馈及分析1. 听不到自己喜欢的歌
首先,我将这个问题分为两个场景:
- 一是用户想听到自己喜欢的歌单里的歌曲,是用户真正的听歌喜好/习惯。那么这个时候随机播放就是要将用户喜爱的这类歌曲进行选择并排列。
- 二是用户现在没有特定的喜好方向,希望听到一些和平常不一样的歌曲,希望系统帮他们做出选择。这个时候随机播放要做的,就是将用户歌单内的全部歌曲进行随机筛选进行排序。
但是这里就会出现另一个问题。上文提到的随机播放算法的假设中,有四个总体,其中最近播放、播放量排序歌单和喜欢的歌曲都可以归为用户常听的歌曲类别中,如果系统依旧像往常一样运用普通的随机算法来生成随机歌单的话,就会出现随机播放的歌曲是用户最常听的歌曲的情况,这显然不符合用户的需求。
那么我们可以将这两个场景区分开来讨论解决方案:
- 第一个场景可以参考网易云音乐里的“心动模式”,从用户喜欢的歌曲里抽选歌曲,并随机匹配与用户歌曲风格类似的歌曲进行播放。但是心动模式需要在喜欢的歌曲中才能触发,在普通歌单的播放模式中并没有此选择。为此可以将该模式增加至普通播放模式中,作为一种随机播放模式使用。
- 第二个场景则可以在现有的随机播放的条件下进行优化,例如适当降低播放量排序歌单和最近播放歌曲的选中比例,增加新增歌曲和不常听歌曲的选中几率;对用户听歌时长小于30s的歌曲进行剔除,下一次随机播放排序时不再出现此歌曲。
2. 有的歌曲重复出现,有的歌曲几乎不出现
为什么有的歌曲会重复出现?
是因为洗牌算法中生成的序列是随机的,在用户播放完一个随机播放的歌单后,系统会再次将虽有歌曲进行随机排序,重新生成另一个随机播放歌单,那么这两个歌单之间必然会有歌曲重复出现。
那么我们可以通过降低已听过的歌曲被选中的几率,或者在选中同一首歌曲的时候重新进行洗牌排序来降低此类问题出现的频率。
而有的歌曲几乎不出现,就是上一个问题所探讨的了。随机播放的歌曲选定的总体是固定的,而且偏向用户常听歌曲,因此对于新增歌曲和不常听歌曲被选中的比率就非常小了。
3. 随机播放列表中上一首和下一首歌曲固定
因为洗牌算法下随机播放列表是一种随机排列后顺序播放的列表,所以列表中的顺序是固定的。关于这个问题用户并没有很大的意见,甚至有的很赞同这种模式:“在随机模式中也可以通过上下首切换找到喜欢的歌曲”。
这可以说是洗牌算法的其中一个优势,但是却没有被很好的利用起来。
网易云音乐里使用随机播放模式的时候,无法查看随机播放的歌单。用户只能在播放页面上下切换歌曲,而不能随机选择,而有的时候需要切换多次才会听到想听的音乐。
如果在不改变和优化算法的情况下,将随机播放列表可视化,也是另一个解决思路。用户可以在列表内查看歌曲并随意选择,还能对列表进行自定义,例如对随机播放列表内的歌曲进行删除、调序等操作,让随机播放的歌曲能够更贴合用户实际的需求。
四、可行性分析分析到这里其实我有点疑惑,为什么问题反馈较多,而且很多程序员也给出了自己的想法和解决方案,但是市面上的音乐软件却迟迟没有动静呢。
1. 影响的用户范围少
各音乐软件在设计过程中必然做了很多的市场及用户调查,而且在产品各功能的设计过程中会考虑到用户的各层面的心理需求,设计解决的也是最大范围的用户的需求。而从该问题的反馈数量来看,相较于网易云音乐的用户数(据网易数据显示,2019Q2网易云音乐用户破8亿)确实微不足道。
而且对于有着“希望能听到平常不常听到的歌曲”的需求的用户,网易云也有着“每日推荐”这类功能的解决方案。因此不需要通过优化随机播放模式的算法来达到满足用户需求的目的。
2. 产生的效果不明显
根据KANO用户需求理论,用户需求分为:基本型、期望型、兴奋型、无差异型和反向型需求。对于随机播放功能而言,是音乐播放软件的基本型需求。不提供此需求,用户的满意度会大幅度降低,但优化此需求,用户满意度也不会得到显著的提升。
基于此,音乐播放软件也无需投入大量的人力和时间来优化此类功能。
五、总结随机播放功能实质上是机器计算的结果,随着AI的广泛应用和推广,结合AI的自我学习功能和快速计算能力。我相信在以后的计算和推荐功能中会有更贴合用户需求的设计出现,随机播放也会变得更”懂“我们。
作者:HEmEiYing,应届毕业生,产品小白一个,自学入门不久,欢迎批评指正~
本文由 @HEmEiYing 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议