當(dāng)你按下「隨機(jī)播放」時(shí),QQ音樂和網(wǎng)易云們都做了什么?
編輯導(dǎo)語:如今,很多音樂APP都有“隨機(jī)播放”功能,當(dāng)你想聽歌卻沒有確切的想聽那首歌的時(shí)候,“隨機(jī)播放”功能就可以發(fā)揮它的作用,推薦給你不曾聽過的、但是符合你口味的歌曲。既然如此,你是不是很好奇,當(dāng)你按下“隨機(jī)播放”時(shí),QQ音樂和網(wǎng)易云們都做了什么?
下班了,又一次走進(jìn)熟悉的地鐵站,聽著已經(jīng)聽過無數(shù)遍哐當(dāng)哐當(dāng)?shù)牡罔F軌道聲,你突然覺得每天的日子有點(diǎn)乏味和單調(diào),就像太陽每天從東邊升起,又從西邊落下。
戴上耳機(jī),打開你最喜歡的歌單,就像往常那樣。你點(diǎn)下隨機(jī)播放的按鈕,希望把掌控權(quán)交給播放器和算法,讓它們帶給你一點(diǎn)未知的新鮮。
你有沒有想過,隨機(jī)播放算法究竟是如何給我們呈現(xiàn)一個(gè)隨機(jī)歌單的?
一、「真隨機(jī)」還是「?jìng)坞S機(jī)」
歷史上最經(jīng)典的隨機(jī)音樂播放器,應(yīng)該還要數(shù) iPod Shuffle。
2005 年的時(shí)候,蘋果公司推出了經(jīng)典的 iPod Shuffle,iPod Shuffle 在當(dāng)時(shí)來說可以算是一個(gè)異類。
那時(shí)候的音樂播放器(還在直接叫 MP3 的時(shí)代)基本上都已經(jīng)有了一塊用來顯示音樂信息的屏幕,用戶可以自由的選擇自己喜歡的音樂,甚至有些 MP3 還能播放視頻,比如 2006 年魅族推出的 miniplayer M6 已經(jīng)搭載了 2.4 英寸顯示屏。
而 iPod Shuffle 沒有屏幕,整體比起蘋果自家的 iPad Nano 來說也來的簡(jiǎn)陋。
但最大的問題是:用戶如何選擇自己喜歡的歌曲?
答案是隨機(jī)列表,你可以通過 iTunes 同步你喜歡的音樂,也可以直接同步一個(gè)你喜歡的播放列表,但是在 iPod Shuffle 上,你所能獲取的最大感受是「隨機(jī)播放的魅力」。
實(shí)際上,我們所說的「隨機(jī)播放」常見的方式有兩種,一種叫「Shuffle」,一種叫「Random」。
▲ 洗牌算法. 圖片來自:9to5Mac
Shuffle 一般叫做「洗牌算法」,它的原理是像撲克洗牌一樣,將不同數(shù)量的撲克牌進(jìn)行隨機(jī)排列就能得到一個(gè)亂序結(jié)果。
隨機(jī)播放歌單也是如此,每次播放的時(shí)候會(huì)將這個(gè)列表中的歌曲進(jìn)行洗牌,從而獲得一個(gè)亂序的播放,也就是「?jìng)坞S機(jī)」算法。
而 Random 則是真正的隨機(jī)播放,也就是說每次切換音樂都是獨(dú)立的未知數(shù),會(huì)隨機(jī)到不同的音樂,就像「抓鬮」一樣,它沒有列表的概念。
所以沒有上一首和下一首的概念,是「真隨機(jī)」算法。
怎么判斷是「真隨機(jī)」還是「?jìng)坞S機(jī)」,其實(shí)只要按下「上一首」就知道了,如果切換到是你剛才聽過的那一首,那就是「?jìng)坞S機(jī)」的洗牌算法,如果是每次都在切換不同的歌,那么就是「真隨機(jī)」算法。
▲ 洗牌算法本質(zhì)來自洗撲克牌. 圖片來自:Phys.org
這兩種哪種方法更好一些呢?對(duì)于目前的用戶來說,洗牌算法要更能接受一些,理論上它更加具備可控性,又能滿足用戶亂序播放的要求,還能避免重復(fù)聽到一首歌。
目前在各大音樂 app 中用得比較多的是「洗牌算法」,比如用戶數(shù)量很大的網(wǎng)易云音樂和 QQ 音樂等播放器都在使用。
二、好的隨機(jī)算法應(yīng)當(dāng)是怎樣的
即便「洗牌算法」本身有足夠多的優(yōu)點(diǎn),但原始的「洗牌算法」已經(jīng)無法滿足日益增長(zhǎng)的聽歌需求,或者說也有播放器越改越糟糕的情況。
比如知乎提問中,很多人都感覺網(wǎng)易云音樂的隨機(jī)算法有著很大問題,比如只放一小部分固定的歌曲,而有些歌曲似乎永遠(yuǎn)隨機(jī)不到,甚至有的用戶還表示自己刪除的一首歌曲還能被隨機(jī)到。
其實(shí) app 對(duì)于這個(gè)「隨機(jī)列表」是有干預(yù)的,而并非簡(jiǎn)單的進(jìn)行洗牌,而但從結(jié)果上說,到底用戶感知是好還是差,就看各家對(duì)于「洗牌算法」的理解和設(shè)計(jì)了。
盡管吐槽網(wǎng)易云算法的用戶不少,但也并不影響推薦歌單和評(píng)論等功能受到歡迎。
根據(jù)知乎簡(jiǎn)介為 QQ 音樂產(chǎn)品經(jīng)理的用戶劉彥彬的回答,在洗牌算法之中也會(huì)摻雜更多的大數(shù)據(jù)算法干預(yù):產(chǎn)品團(tuán)隊(duì)調(diào)研,用戶想要的其實(shí)不是真正的「隨機(jī)播放」,而是用戶更多是不知道聽哪首,更多是選擇困難,希望能幫我做決定。而且,盡量的符合我當(dāng)前的心境。
隨機(jī)算法可以解決選擇困難,但是并不能真正解決用戶需要的心境,因?yàn)椤赶磁扑惴ā共⒉粫?huì)知道用戶究竟想要什么。
但是音樂應(yīng)用其實(shí)是可以做到這一點(diǎn)的,在足夠大的個(gè)人聽歌數(shù)據(jù)樣本和大數(shù)據(jù)調(diào)研情況下,算法可以做出一些判斷,用戶此刻更想要聽哪些歌。
▲ QQ 音樂. 圖片來自:YouTube
舉個(gè)簡(jiǎn)單的例子,在夜深人靜的深夜點(diǎn)開隨機(jī)播放,那么用戶很大可能性是不想聽比如金屬、搖滾等過于吵雜的音樂,結(jié)合用戶以往的聽歌歷史。
這個(gè)時(shí)候隨機(jī)算法就會(huì)根據(jù)用戶當(dāng)前的環(huán)境時(shí)間,更多的隨機(jī)到輕音樂。不然你以為那些聽歌報(bào)告為什么那么詳細(xì),你夜里不睡覺循環(huán)了多少遍哪首歌,它都一清二楚。
QQ 音樂產(chǎn)品經(jīng)理劉彥彬還總結(jié)了好的隨機(jī)算法應(yīng)該具備的幾條特征:
- 記錄我本地或最近一段時(shí)間的聽歌記錄,盡量在隨機(jī)時(shí)不會(huì)推薦出來,保證隨機(jī)的新鮮感;
- 洗牌算法做好,盡可能的隔開某個(gè)歌手,某張專輯,讓用戶從感官上感覺是一個(gè)隨機(jī)列表;
- 可以在本地做用戶操作記錄,比如跳過歌曲的次數(shù),對(duì)用戶不感興趣的歌曲進(jìn)行降權(quán)或者過濾,精選隨機(jī)的池子;
- 在對(duì)歌曲標(biāo)簽豐富后,可以做的事情就更多了,比如根據(jù)當(dāng)前的場(chǎng)景,推薦本地適合收聽的歌曲優(yōu)先隨機(jī)播放,這些都有助于讓用戶感知智能。
▲ Spotify 的隨機(jī)播放. 圖片來自:REGENDUS
對(duì)隨機(jī)播放算法調(diào)研的當(dāng)然不只是 QQ 音樂,一直以推薦算法聞名的流媒體音樂服務(wù) Spotify 也有對(duì)「洗牌算法」更深度的思考,甚至他們還在官網(wǎng)里面寫出了如何改進(jìn)隨機(jī)播放算法。
即便是對(duì)于 Spotify 這樣的流媒體音樂,依然有許多用戶會(huì)覺得隨機(jī)播放不「隨機(jī)」,Spotify 的洗牌算法當(dāng)然是隨機(jī)的,但他們開始思考為什么用戶會(huì)這樣覺得。
從基礎(chǔ)上說,Spotify 從提供服務(wù)開始就用的是 Fisher-Yates 洗牌算法,他們覺得這個(gè)洗牌算法做的最出色。
▲ 如果用不同顏色代表不同歌手,這意味完全真隨機(jī)時(shí),上下兩種列表都可能出現(xiàn)
不過,Spotify 一開始并不理解用戶說的「不隨機(jī)」是什么意思,但在研究之后發(fā)現(xiàn),用戶的核心理念是不希望一位歌手在短時(shí)間內(nèi)重復(fù)出現(xiàn),但這里其實(shí)用戶陷入了了一個(gè)經(jīng)典的「賭徒謬論」。
當(dāng)人們連續(xù)幾次沒有中彩票時(shí),就會(huì)認(rèn)為自己下次中獎(jiǎng)的幾率會(huì)增大,而其實(shí)每次概率都是獨(dú)立而相同的。但如果用戶連續(xù)聽到某一位歌手的作品時(shí),他們就會(huì)粗暴的覺得這個(gè)算法「有問題」。
結(jié)論表示,用戶并不喜歡「完美的隨機(jī)」。
三、比起「完美」,用戶更喜歡的是「平衡」
那什么是「不完美的隨機(jī)」?
在馬丁·菲德勒(Martin Fiedler)的博客文章《混洗音樂的藝術(shù)》中,他展示了為什么完全的隨機(jī)列表是糟糕的。
假設(shè)在你的播放器中存在三種不同曲風(fēng)的流派分別是 A、B、C,其中 A 有 10 首,B 和 C 都是 11 首,一共 32 首歌。如果使用真正的隨機(jī)算法來洗牌會(huì)出現(xiàn)怎樣的情況?可能是:
AACBBCBACABBCCACCCCABBACBACABABB
其中出現(xiàn)了連續(xù)的 C 曲風(fēng)流派,以及在四分之一的時(shí)間里是沒有 B 曲風(fēng)流派的,對(duì)于用戶來說,重復(fù)單一的曲風(fēng)無疑是糟糕的。而絕對(duì)的隨機(jī)算法,很可能在大部分情況下都會(huì)生成這種糟糕的播放列表,因?yàn)榻^對(duì)的隨機(jī)也意味著「不平衡」。
▲ 圖片來自:Marie Claire
更好的隨機(jī)列表是為了滿足用戶無法下決定但又想要獲得新鮮感的心理,這時(shí)就應(yīng)該盡可能的避免重復(fù)和單調(diào),所以下面這種播放列表才是更合適的:
ABCBCABACBACBCABCACBABCACBACBCAB
很四平八穩(wěn)的一個(gè)播放列表,沒有任何「異?!勾嬖?,馬丁·菲德勒稱之為「平衡洗牌」。
為了實(shí)現(xiàn)將歌單洗牌更加平衡,馬丁·菲德勒發(fā)明了一套較為復(fù)雜的洗牌算法,如果你對(duì)具體實(shí)現(xiàn)感興趣,也可以直接移步到這篇博客。
Spotify 借鑒了這個(gè)算法,但將之修改為更適合自己的方式,并且同時(shí)借鑒了抖動(dòng)算法(例如 Floyd–Steinberg抖動(dòng)),最終將歌曲更加均勻平衡的分散到播放列表之中。
就是這樣,今天,各家的隨機(jī)播放算法雖然大都基于「洗牌算法」的模式,但也都有著自己的「調(diào)味秘方」,有的用戶會(huì)喜歡,也有做的糟糕的,不停被用戶吐槽的。
但本質(zhì)上,隨機(jī)播放算法的重點(diǎn)不在于「隨機(jī)」,而是一場(chǎng)產(chǎn)品和用戶之間的心理博弈對(duì)決,甚至它們會(huì)隨著你的聽歌習(xí)慣的逐漸養(yǎng)成,自身也在改變著隨機(jī)歌單的加權(quán)傾向。
越聽,它們就會(huì)越了解你。
作者:李晨;微信公眾號(hào):APPSO(ID:appsolution)
本文由@APPSO 授權(quán)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議
開卷有益!
“這個(gè)時(shí)候隨機(jī)算法就會(huì)根據(jù)用戶當(dāng)前的環(huán)境時(shí)間,更多的隨機(jī)到輕音樂。不然你以為那些聽歌報(bào)告為什么那么詳細(xì),你夜里不睡覺循環(huán)了多少遍哪首歌,它都一清二楚?!币雇砥ヅ漭p音樂和聽歌報(bào)告詳細(xì)沒有關(guān)系吧,聽歌報(bào)告詳細(xì)是根據(jù)聽歌記錄來的呀
推薦算法哪個(gè)做的比較優(yōu)秀?
所以網(wǎng)易云音樂的隨機(jī),把上一首 給禁用了,更證明它是偽隨機(jī)了。
上一首還是有的,只不過默認(rèn)是??