1. 程式人生 > >線上音樂播放器的推薦機制

線上音樂播放器的推薦機制

對於我這樣一個音樂控來說,學習工作時沒有音樂是萬萬不行的。在網易雲音樂雲音樂面世之前,我總是在QQ音樂,百度音樂等播放器之間徘徊,當時也不夠文藝,不知道豆瓣FM的存在。

第一次接觸雲音樂被其吸引的原因有二,第一是開門見山先答十道題,根據答案生成個性化推薦,給人耳目一新的感覺。第二是每首歌下面的評論區,許多內容能和自己產生共鳴。這兩點讓我對這款軟體頗有好感。

如今在雲音樂聽歌一萬有餘,之所以讓我堅持下來的原因也有二,首先是對私人FM產生依賴,能通過私人FM發現新的精彩,其次是雲音樂對評論區的維護,保持了雲音樂評論文化的純淨,不像網易新聞那樣爛俗,也沒有QQ音樂彈幕那麼幼稚。

其實雲音樂的社群也是一個留住人的重要因素,在這裡不表。

近日在美帝,發現QQ音樂、網易雲音樂等客戶端大部分音樂因為版權問題無法播放(這個時候開始念著牆內的好了)。我便探索了一下老美都在用什麼播放器。

我發現了兩款軟體,一款叫Pandora,另一款叫Spotify。Pandora其實是一個網站,只提供線上的流媒體服務。

使用Pandora已經有幾天,它就像雲音樂的私人FM一樣,只有電臺功能。令我興奮的是,這幾日使用體驗非常棒,超越了我對雲音樂私人FM的體驗。具體表現在他推薦的歌曲有90%我都聽過,而這一切僅僅基於我對AC/DC一首《High To Hell》的點贊。

Pandora出色的體驗激發了我對其音樂推薦機制的好奇心,今天就用這篇文章來給大家介紹一下目前主流線上音樂播放器的音樂推薦機制,以網易雲音樂和Pandora為例。

1.亞馬遜,推薦系統的鼻祖

推薦系統從字面理解就是給人們推薦東西的一個系統,關於推薦系統的研究可追溯到上世紀九十年代。網際網路的出現,是推薦系統應用有了更廣泛的空間和可能。真正把推薦系統應用到實際生活的是美國電子商務網站亞馬遜,亞馬遜於二十一世紀初率先在其商品詳情網頁推薦和這個商品類似的商品。


現在推薦系統一般是指“個性化推薦系統”。舉個例子,我聽周杰倫的《范特西》,你給我推薦《依然范特西》,這種推薦是無意義的,因為是人都知道同一歌手不同作品之間具有關聯性,推薦系統顯得多餘。那麼所謂個性化推薦系統就是指根據你個人的特點,給你提供針對你個人興趣的個性化推薦內容。

從亞馬遜開始,隨著網際網路的發展,電子商務網站例如淘寶等,也有了自己的推薦系統,到後來社交網路興起,基於社交網路網路的社會化推薦開始成為熱門話題,因為一個社交網站對你的第一印象很大程度上決定了你的去留,這就是為什麼微博、Facebook等網站剛開始就要給你做推薦,讓你填資料,讓你做選擇,都是為了能提供精準的好友、大V和興趣推薦。

到如今,推薦系統的應用有多方面,例如以“今日頭條”為代表的個性化新聞推薦客戶端,以“豆瓣”為代表的個性化興趣社群,以Foursquare為代表的基於地理位置的推薦系統,以Google Adsense為代表個性化廣告服務提供商。當然,還有我們今天的主角,基於個性化推薦的音樂播放器。

2.雲音樂如何推薦?

先介紹網易雲音樂的推薦方法吧,這也是大多數播放器通用的推薦模式。目前網際網路上還沒有云音樂官方介紹其推薦機制的文章,不過根據雲音樂這個軟體的輸入(使用者行為、使用者資料、社交關係、曲庫、歌單等)以及輸出(推薦歌單、私人FM、每日歌曲推薦、相似歌曲、喜歡這首歌的人等)可以大致判斷它使用了什麼推薦演算法。

根據知乎上一個熱門話題“網易雲音樂的歌單推薦演算法是怎樣的?”(點選文末閱讀原文檢視)和我本人的粗淺理解,我認為目前網易雲音樂主要運用了以下幾種推薦方法:

1.基於item的協同過濾

2.基於user的協同過濾

3.基於tags的推薦

4.混合(Hybrid)推薦

前兩種推薦方法都可以歸結為協同過濾(Collaborative Filtering)。此演算法乃是亞馬遜發家之本,也是推薦系統領域最經典的演算法。如何理解Collaborative這個詞,可以理解為協作,即通過不同物件之間相互影響,共同作用,來從普通物件中過濾出合適的推薦物件。

那麼演算法1和演算法2的區別是什麼呢?我們先建立一個播放器使用場景:你已經在網易雲音樂聽過100首歌,現在正在聽一首班得瑞的《SnowDream》並且對這首歌“紅心”,現在在播放器要給你推薦歌曲。

如果使用基於item的協同過濾,即以歌曲為本,尋找和該歌曲相似的歌曲推薦給你。當然,這裡的相似不是指歌曲風格、歌手、年代等這些元資料的相似,而是要構建歌曲的評價矩陣,矩陣的每一行是一個使用者,每一列是一首歌,這些使用者都是對《SnowDream》紅心的使用者對於《SnowDream》的矩陣,矩陣第一列就是《SnowDream》這首歌,第一行就是你這個使用者,矩陣中每個元素代表使用者對這首歌的喜愛程度。

對於喜愛程度的定義,是一個加權行為平均值,即通過給使用者的不同行為(搜尋、試聽、下載、單曲迴圈、分享、評論、點贊評論、播放量,點紅心、從不同入口進入)賦予相應權重,最後通過平均值來衡量其對歌曲的喜愛程度。

回到演算法本身,建立起來矩陣之後,我們可以知道你對《SnowDream》這首歌的喜愛程度,也通過其餘使用者的行為得知他們對其餘歌曲的平均喜愛程度,計算其餘使用者對某歌曲和《SnowDream》喜愛程度之差的平均值,越接近0說明這首歌和《SnowDream》越相似,我們便推薦這些均值最接近0的歌曲給你。

那麼對於基於user的協同過濾來說,就是尋找和你相似的使用者,給你推薦他喜歡的歌曲。怎麼判斷兩個使用者是相似的,同樣根據之前提到的使用者的不同行為和使用者資料,構建一個多維特徵向量空間模型,使用者某種特定行為算是一個特徵向量。比如說兩個使用者都是90後、男、北京人,自我介紹裡面都提到New Age,那麼的某些特徵向量的長度就一樣,同理還有長度不一樣的向量。

向量空間點之間的距離和夾角

通過構建多維特徵向量空間,我們可以把一個使用者抽象為多維向量空間中的一個點,如果兩個點離得越近,那麼兩個使用者越相似。那麼怎麼衡量這個“近”呢?我們用到了餘弦相似度。這個術語的細節在這裡不講,通俗來說就是計算兩個點之間的夾角大小,夾角越小即兩個點離得越近。

找到和你相似的使用者之後,我們查詢其喜歡的歌曲,發現他喜歡聽《Cannon in D》,便推薦這首歌給你。我們發現這種推薦形式更有可能推薦給你不同風格的歌曲,因為大部分使用者可能喜歡多種風格的音樂。所以,通過這種演算法,可以讓兩個素不相識的使用者產生神交的感覺。

相對於前兩種推薦方法,第三種基於Tags的推薦就簡單易懂了。比如說我們在雲音樂歌曲詳情頁面看到的“相似歌曲”,就是利用標籤來推薦與該歌曲相似的歌曲。這裡的標籤可以分為兩種,一種是歌曲自帶的標籤,例如歌手、曲風、年代、時長、標題、歌詞等。第二種播放器根據歌曲的播放情況後續補充的標籤,例如播放量,榜單,評論內容等。通過標籤之間的匹配,我們可以很容易找到彼此相似的歌曲。

與陳鴻宇《理想三旬》相似的歌曲

最後一種方法其實也不算是方法,無非就是把之前的幾種演算法融合一下,比如說網易雲音樂首頁的“每日歌曲推薦”便是以上幾種推薦演算法綜合的結果。

除了上文提到的推薦演算法,對於一個完整的推薦系統,它還包含著一些主動的推薦,例如OGC,即雲音樂官方產生內容的推薦,比如你不定期收到的“雲音樂小祕書”私信,還有在主頁上展現的一些官方的採訪和活動。另一部分便是UGC即使用者創造的內容,我在文首也提過,雲音樂良好的社群文化也促使大量的使用者生產優質的內容,我們會在“朋友”Tab欄看到雲音樂推薦的使用者動態。在OGC與UGC之間還有一部分內容可以稱得上PGC,即專業生產內容,比如一些專業的音樂人和音樂達人。還有一部分傳統的推薦內容,即各大榜單以及雲音樂自己的榜單。

在朋友動態介面推薦其他人的動態

縱觀網易雲音樂,我們可以看到,推薦的內容無孔不入。這類推薦系統有一個共同的特徵,那就是越用越好使,因為隨著你使用的深入,軟體會積累你大量的使用者行為,另一方面,隨著資料量的累積,對於雲音樂本身,它也在不斷改進自己的推薦演算法和推薦模型,兩方面綜合給你帶來了“上癮”的感覺。這也是為什麼許多人第一次接觸雲音樂根本停不下來的原因,因為它總是對症下藥。

3.Pandora如何推薦?

文首提到的Spotify和網易雲音樂的推薦機制類似,但是Pandora就大不同。在這裡要給大家介紹Pandora獨有的Music Genome Project計劃,可以稱作音樂基因組計劃。

音樂基因組計劃是一個開始於1999年的專案(話說真的好早~),這個是Pandora線上音樂網站的前身。類比人類基因組計劃,音樂基因組計劃是測試音樂的基因,正如人類基因要比人類的表面特徵複雜無數倍,音樂的基因也要比音樂表面上的標籤複雜好多倍。根據音樂基因組計劃官方網站的介紹,他們提供了450多種標籤來區別不同音樂。

這些標籤可以細化到一首歌是否有吉他的掃弦,是否有架子鼓,主唱的年齡等等。當然,這些標籤必須通過人工分類,所以音樂基因組計劃有著一群科學家專門在做音樂的分類工作,根據官方介紹,對一名音樂基因組科學家不僅有知識背景的要求,還要經過多輪測試和訓練,才能正式參與音樂基因組工作。對每首歌的處理時間長達20-30分鐘,而且對於部分歌曲還會引入第二人雙重確認。

這種推薦方式也是基於一種經典的推薦系統演算法,即基於content的推薦。要注意區分這裡的“內容”指的是音樂所表現的內容,而不是表面的曲風、歌手、年代資訊。

Pandora播放介面

一個好訊息是,這樣一個成本巨大的音樂網站,居然是免費的!一個壞訊息是,Pandora的音樂服務只能在美國使用。如果你熟練翻牆技術(主要是得找到美國的VPN),喜歡歐美歌曲,習慣以電臺方式聽歌,那麼Pandora似乎是個不錯的選擇。

大家會好奇這樣的網站是如何盈利的,沒錯,是廣告。當你在享受免費的音樂服務時,你會隔三差五地聽到廣告,就像廣播電臺那樣,如果不想聽,可以,付費唄。當然,面對大多數的免費使用者,如何提高廣告質量也是重中之重,這就涉及到在廣告領域的個性化推薦了,此處不再延伸。

Pandora還有一點,這也算是老美的一種共性,就是對隱私的重視,我們可以看到在Pandora網頁下端有隱私政策的跳轉連結,其對隱私政策的介紹也十分詳盡,它會告訴你它們都採用你的什麼資訊。我們可以看到,你的IP地址會被獲取以供其提供更精準的廣告服務。

Pandora隱私政策

所有Pandora電臺的建立,都是基於一首歌曲或者一個歌手,根據你對後續歌曲的“喜歡”或者“不喜歡”,推薦符合你口味的歌曲。這種基於人工篩選內容的推薦被命中的概率是機器無法比擬的,但是也會有一個缺點,就是你聽到的歌曲基本上風格類似。考慮到這一點,Pandora會允許你建立不同的電臺,不同電臺之間的歌曲也可以混合播放。

4.中國vs.美國

我發現中美音樂線上音樂播放器有以下幾個區別:

首先是付費方式,眾所周知在美國版權的重要性,這些歌你線上聽沒問題,但是要下載的話都得花錢,相比國內的少部分音樂付費,大部分音樂免費的模式,我們還是佔了不少便宜。但是國內播放器現在的版權之爭也日漸白熱化,許多歌手的音樂版權被BAT其中一家壟斷,導致我們欣賞音樂的連貫性體驗很差。

第二是軟體構建邏輯,在雲音樂釋出之前,酷我、酷狗、QQ音樂等播放器基本上大同小異,雲音樂釋出之後,一定程度上帶來了播放器市場的創新浪潮,電臺、歌單、社交化、彈幕等新鮮事物開始出現。在歐美,電臺音樂依然是主流的形式,Last.fm和Pandora都是老牌的電臺網站,當然Spotify這類基於個性化推薦的音樂播放器也逐漸興起。

Spotify的構建邏輯和雲音樂等軟體有區別的是,它是基於播放列表的,每個人可以建立自己的播放列表,也可以檢視別人的播放列表,甚至是明星大腕的播放列表(雲音樂也有類似的功能)。



Spotify播放介面

第三是廣告,要知道國外這些播放器如果不付費,會在歌曲中間插入廣告的。這一點國內播放器優勢明顯,雖然也有廣告,但至少不影響我們聽歌體驗。

總體來看,國外的播放軟體無論從內容豐富程度還是體驗多樣性上都稍遜中國一籌。有時候想想,牆內也有牆內的福。