為什么隨機播放的音樂,有時總是在播?
一個產品小白對于網易云音樂隨機播放的一些想法和思考,資料和相關理論都是通過閱讀和自己分析得出的結論,如有不妥請指正。
一、背景
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協議
- 目前還沒評論,等你發揮!