網易云音樂推薦算法分析

近年來,網易云音樂作為一匹黑馬迅速在移動音樂app占據市場,2016年用戶量就突破了2億,而這與它優質的推薦系統必不可分。

當今,在這個信息爆炸的時代,我們可以接觸到龐大浩瀚的網絡資源,極大地便利了我們的生活。但是,通常情況下,用戶不清楚自己的需求,不能歸納自己的興趣愛好。而網易云音樂認識到了這個用戶痛點,幫助用戶發現自身的興趣偏好,實現了智能個性化推薦,成為現代很多人們日常生活不可缺少的精神伴侶。

下面我將從網易云音樂的推薦分析、推薦算法分析、以及對推薦模塊的建議三個部分展開論述。

一. 網易云音樂推薦分析

1. 各推薦模塊介紹

(1)私人FM: 私人FM采集用戶收藏歌單數據,收集用戶聽歌口味,以單曲形式推薦給用戶。用戶在界面左/右滑可以切換歌曲,左下角有垃圾桶標志,可刪除當前歌曲讓其不再出現在私人FM和每日推薦中。

(2)每日推薦:根據用戶收藏歌單和播放的音樂大數據預測用戶喜愛的音樂類型,并于每日凌晨6點推薦20首歌。

(3)推薦歌單:通過采集用戶收藏歌單等用戶偏好行為,每日推薦六個歌單。

(4)推薦視頻:系統記憶用戶點開的視頻類型,并向用戶推薦相似類型的視頻。


2. 網易云音樂做四種推薦的原因分析

原因1:留住新用戶

每日推薦時采集的用戶收藏歌單和聽歌記錄記錄,但是在新用戶剛使用該網站時,系統并沒有他的行為數據;系統獲取該用戶的音樂偏好資源不夠,預測準確率低。

而私人FM成為一種很好的補充,增加了刪除鍵,便于系統采集用戶的音樂偏好。它改善了數據稀疏導致的冷啟動,從而提高用戶成為長期客戶的可能性。

原因二:體驗感由淺入深

每日推薦于每日六點向用戶推送20首歌曲,讓用戶尊享一種音樂VIP定制的感覺。但是用戶在聽完這每日推薦后,還想有更多的音樂體驗,這時候推薦歌單、私人FM,視頻推薦就可以提高用戶體驗感。

原因三:擴大覆蓋人群

相對于每日推薦,私人FM,視頻推薦,推薦歌單里推出的是網易云音樂系統內的音樂制作人,DJ,或大部分的聽歌用戶的自建音樂單,極大地調動了用戶創作歌單的積極性。

更重要的是,用戶看到自己喜歡的歌單,可以關注建立歌單的用戶,關注他的動態,這建立了一個良好的社交氛圍網絡,從而也會吸引其他未入駐用戶加入該社交網絡。


二. 推薦算法分析

推薦主要是基于用戶過去的興趣和行為對用戶提供有價值的信息

根據系統日志可以提取的特征主要包括以下三類:用戶的特征、歌曲的特征、用戶對歌曲的行為特征。

(1)用戶的特征:用戶的性別、用戶的年齡、用戶地理位置等;

(2)歌曲的特征:歌曲和它對應的推薦源歌曲的熱度值、語種、流派、年代、主題、場景等;

(3)行為特征:歌曲對應的歌手(語種、流派、年代、主題、場景)被切歌、垃圾桶、完整聽歌、收藏占比,歌曲對應的推薦源歌曲操作類型(收藏、下載、分享、完整聽歌、設置背景音樂、識曲、搜索、購買),用戶收聽該歌曲的時間等。

網易云音樂的推薦模塊流程如下


目前流行的音樂推薦算法主要分為協同過濾推薦算法,基于內容的推薦算法,混合推薦算法。隨著AI技術的發展,深度神經網絡的應用也對音樂推薦做出了巨大貢獻,從而創造更精確的推送。

1. 協同過濾推薦算法

基于協同過濾推薦算法分為基于用戶的協同過濾基于商品的協同過濾。對應為俗話說的“人以群分”,“物以聚類”[1][2]

(1)基于用戶的協同過濾:

當用戶A需要個性化音樂推薦時,系統幫他找到和他有相似興趣的用戶群集合M,和該用戶群喜歡的音樂集合N;之后系統會預測目標用戶A對音樂集合N的評分,然后對音樂集合N按評分由高到低的順序推薦給目標用戶A。這就是基于用戶的協同過濾。

舉例:用戶A喜歡歌曲a,歌曲c, 歌曲d。目標用戶C喜歡歌曲a,歌曲c。即用戶A、C可能有相同音樂偏好。所以系統把歌曲d推薦給用戶C。


基于用戶的協同過濾可分為兩個步驟:

(1)計算出系統中與該用戶具有相似音樂偏好的用戶群

(2)得到相似偏好的用戶群后,從中篩選出K個興趣相近用戶,將這些用戶所喜歡的物品推薦給目標用戶。

\bullet 計算相似用戶群

用下面jaccard表達式計算相似度。{M}\cap{N} 代表用戶u和用戶v同時喜歡的歌曲,M\cup{N}代表用戶u和用戶v喜歡的歌曲集合,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? I=\frac{M\cap{N}}{M\cup{N}}

用戶A用戶C喜歡的歌曲有2首重合,他們喜歡歌曲的并集為3。則用戶A用戶C的相似度為I_{AC}=\frac{2}{3} \approx 0.67

用戶A用戶B喜歡的歌曲有1首重合,他們喜歡歌曲的并集為3。則用戶A用戶B的相似度為I_{AB}=\frac{1}{3} =0.33

\bullet 根據相似用戶群推薦音樂

得出目標用戶最相似的用戶群后,計算用戶u對音樂i的喜歡程度(即評分)。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?  p(u,i)=\sum\nolimits{I_{uv}r_{vi}}

比如,假設目標用戶有6個維度,0代表沒聽過,1~5代表喜歡程度(1是不喜歡,2是一般,3是喜歡,4是較喜歡,5是特別喜歡)

假設用戶A對于歌曲d的喜歡程度是4; 用戶C對于歌曲b的喜歡程度是4

根據上式可分別計算出

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? p(C,d)=I_{CA} r_{Ad}=\frac{2}{3}\times4 \approx 2.67

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? p(C,b)=I_{CB} r_{Bd}=\frac{1}{2}\times4 = 2

則用戶C對音樂d的興趣值(得分)為2.67,對用戶b的興趣值為2。實際推薦系統中,往往按照喜歡程度得分進行排序,取靠前的音樂給用戶推薦。

舉例:

(2)基于商品(音樂)的協同過濾

根據所有用戶對音樂的偏好,計算系統中任意兩個音樂間的相似度,然后根據用戶的歷史偏好物品列表,將列表中物品相似度較高的物品推薦給目標用戶。

舉例:假設用戶A喜歡歌曲a,b,c;用戶B喜歡a,c,d.可以看出喜歡了歌曲a的用戶都喜歡了歌曲c,則分析得出歌曲a和c比較相似。系統發現用戶C喜歡了歌曲a,則可以把歌曲a的相似歌曲c推薦給用戶C。


基于音樂的協同過濾可分為兩個步驟:

(1)計算音樂間的相似度

(2)結合用戶的歷史行為按照物品相似度排序推薦給目標用戶

\bullet 計算音樂間的相似度

jaccard表達式計算相似度I。M代表喜歡歌曲M的用戶個數;N代表喜歡歌曲N的用戶個數;{M}\cap{N}代表同時喜歡歌曲M歌曲N的用戶個數。M\cup{N}代表喜歡歌曲M和歌曲N的用戶總和。

? ? ? ? ? ? ? ? ? I=\frac{M\cap{N}}{M\cup{N}}

上圖中,同時喜歡歌曲a歌曲c的有2個,喜歡歌曲a或歌曲c的總人數有3個。則

歌曲a和歌曲c的相似度為I_{ac}=\frac{2}{3} \approx 0.67

\bullet 根據音樂間的相似度推薦音樂

計算出音樂間的相似度后,可通過下式計算用戶u對一個音樂i的興趣值

? ? ? ? ? ? ? ? ? ?  p(u,i)=\sum\nolimits{I_{uv}r_{vi}}

假設用戶C對于歌曲a的喜愛程度為5

用戶C對歌曲c的興趣值為p(C,c)=0.67\times5=3.35

則用戶C對歌曲c的興趣值(得分)為3.35。實際推薦系統中,往往按照喜歡程度得分進行排序,取靠前的音樂給用戶推薦。

舉例:

2. 基于內容的推薦算法

基于內容的推薦算法是提取新物品的特征加以推薦,不存在新物品的冷啟動

利用用戶的聽歌歷史,獲取用戶的音樂偏好信息,推薦的是和用戶之前聽的相似度很高的歌[2]。

舉例:用戶A喜歡歌曲a(特征:華語、搖滾) ;用戶B喜歡歌曲b(特征:歐美、爵士)。當一個新的歌曲c提取到的特征是(歐美、爵士),由歌曲c和用戶B的高匹配度可以將歌曲c推薦給用戶B。


基于內容的推薦算法需要以下三個步驟:
(1)提取音樂的特征:如提取用戶A聽過的歌曲a的特征:華語、搖滾

(2)構建用戶畫像模型:根據用戶的操作歷史,分析用戶喜歡的音樂特征,再根據這些音樂類型特征構建用戶畫像模型

(3)計算用戶畫像模型和音樂特征之間的相似度,按照相似度排序對目標用戶推薦音樂

3. 混合推薦算法

利用加權混合將不同的推薦算法和影響因素進行加權求和,實現更細致的挖掘用戶與喜好音樂之間的關系,從而提升推薦精準度[3]。

λ指不同的權重系數,s_{n}(u,i) 代表不同的推薦算法,e_{k}代表其他對用戶聽歌偏好影響的因素(如:用戶所處天氣、地理位置、時間)。

4. 基于深度神經網絡的推薦算

現今人工智能技術逐漸成熟,比如深度神經網絡技術在計算機視覺,人臉識別中發揮出色,可以將其應用到音樂推薦上來。下面介紹一種利用深度神經網絡(DNN)進行通過切歌率預測用戶對歌曲的喜愛程度,可以提高推薦預測的正確率[3]。

這項切歌行為的納入,可以作為一個另一個指標考核,可以幫助用戶規避一些用戶會切歌的歌曲,從而提高用戶體驗。


神經網絡模型分為輸入層,隱藏層,輸出層。數據集(包括系統日志提取的特征,切歌與否各自對應的向量)分為訓練集和測試集。令切歌行為是向量(0,1),不切歌行為是向量(1,0)。


DNN網絡訓練和預測數據的全過程分為以下三個步驟

(1) 數據預處理

對于此深度神經網絡的輸入層,首先對訓練集進行以下處理:歸一化預處理,獨熱編碼,分箱處理(將一個特征按照一定規則劃分為多個子區間,例如對不同的年齡段進行自定義區間劃分),組合特征(將不同的年齡段、音樂流派進行組合),數據清洗(根據推送歷史剔除由掛機行為導致沒有切歌的歌曲)。

(2)訓練網絡

之后,選定激活函數,網絡層數,各層神經元數,權重值等。輸入層的神經元等于輸入特征的維數,輸出層設置兩個神經元(對應兩種情況:切歌和不切歌)。

將處理過的訓練數據輸入該模型,會預測得到一個二維向量y’(例如向量(0,1),表示用戶切換了歌曲)。再將它與切歌行為的真實值y求差,通過反向傳播算法將差值傳回整個DNN網絡。以最小化誤差為目的,整個神經網絡的權重值,激勵函數會更新、調整并最終確定.

(3)預測用戶對某歌曲的喜歡概率

最后,向該訓練好的網絡輸入測試集,可預測用戶對某歌曲的喜歡概率,從而預測出用戶對某首歌是否會切歌的行為。


三.對網易云音樂推薦功能的建議

1. 根據用戶的聽歌偏好和當時所處的情境進行歌曲推薦。在推薦音樂中,考慮不同時間,不同天氣,不同地理位置的因素;

2.像在第二部分提到的,利用神經網絡實現對用戶切歌率的預測,對現有預測算法進行補充;

3. 在移動客戶端增添人臉識別功能,利用識別表情,推測出用戶當前心情,再根據心情向用戶推薦合適的歌曲,是一個提高用戶新鮮感和體驗感的好方法。

改進后的網易云音樂推薦流程模塊如下圖

參考文獻:

[1] Z. Hyung, J. S. Park, and K. Lee, “Utilizing context-relevant keywords extracted from a large collection of user-generated documents for music discovery,” Info. Processing and Management, vol. 53, no. 5, pp. 1185-1200, 2017.

[2] Nabizadeh A H, Yu Y, Yu Y. Predicting User Preference Based on Matrix Factorization by Exploiting Music Attributes[C]. International C* Conference on Computer Science & Software Engineering. ACM, 2016:61-66.

[3]? 鄧騰飛. 個性化音樂推薦系統的研究[D]. 華南理工大學,2018.


本文由 @南櫻小欣 原創發布于簡書。未經許可,禁止轉載。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 作者 | HCY崇遠 01 前言 本文源自于前陣子連續更新的推薦系統系列,前段時間給朋友整理一個關于推薦系統相關的...
    daos閱讀 5,686評論 0 77
  • 文章目錄 1、市場分析 2、用戶分層、場景需求分層、產品定位 3、核心功能產品邏輯(功能結構 +用戶行為) 4、競...
    韋歌wege閱讀 4,516評論 6 28
  • 基礎算法:人以群分 實際上,網易云音樂個性化推薦的算法與今日頭條、B 站還有很多 O2O 電商平臺應用的基礎推薦算...
    盼盼學士閱讀 10,687評論 4 9
  • 網易云音樂產品體驗報告 競品:QQ音樂、蝦米音樂 首先說說我的分析思路。 我們都知道,開發一個產品最重要的是“為什...
    huaxing512閱讀 2,956評論 0 11
  • 每天在我們的身邊都會發生各種各樣的事情,一些事情會帶給我們快樂;一些事情會帶給我們成長,但我們每天晚上是否都會對今...
    重啟人生閱讀 297評論 2 7