讀讀書,敲敲程式碼,寫寫部落格,思考思考人生。
對於音樂推薦來說,網易雲音樂無疑是國內最為出色的音樂APP,很多人驚喜地發現使用網易雲音樂聽的歌曲基本上都是自己喜歡的歌曲,這是在其他音樂APP身上不能得到的體驗。根據使用網易雲音樂的經驗和推薦演算法的一些知識,嘗試分析網易雲音樂的音樂推薦。當然具體的雲音樂推薦系統肯定是複雜而又精細的,也肯定是不會透露出來的,只是希望能從這樣的分析中,找到冰山一角。
網易雲音樂的個性化推薦是什麼樣的?
網易雲音樂的推薦頁面放在了最顯眼的位置,減少了使用者的進入的深度。
主要的推薦內容集中在私人FM和每日歌曲推薦中,所推薦的這些單曲是根據使用者的口味形成的,並且在FM和每日歌曲中,可以通過標註喜歡或者不喜歡的方式進一步修正“口味”。另外一個推薦的地方是推薦歌單,該歌單中雲音樂的編輯會給出推薦理由,每天推薦的6個歌單,基本上有3個以上是根據前天所聽的單曲進行推薦,剩下的是感性推薦,與時令、情景等有關等,比如說上圖中的“三八婦女節”。
那麼,怎麼形成口味?
從如此籠統的答案中,我們可以知道:
1
使用了歷史記錄
也許你會覺得這是一句廢話,實際上確實是的。這是一個大家都懂但是又非常重要的事實。筆者曾經做過實驗,在其他條件不變的情況下,每天聽不同的歌曲,發現第二天推薦的音樂基本上只跟昨天聽得歌曲有關。
使用了標籤
就拿歌手這一項來說吧,如果只用歌手ID進行編號,也能做推薦但是效果呢?要知道coco和那英,都是同時代的女歌手,但是風格迥異啊。那麼這些tag如何而來,記得剛開始使用雲音樂的時候,要求新增自己喜歡的tag(現在沒有了),可能現在已經形成了雲tag了吧。
考慮了時間漂移因素
怎麼可能有,商業機密商業機密啊,不過筆者倒是可以想到基於標籤的推薦演算法,可以進行音樂推薦(我可沒說這是網易雲音樂的演算法哈),在這裡就簡單介紹一下,也算是更深入地瞭解了推薦演算法。
1
設定tag--假設設定的都是對的
對使用者、歌曲和歌單分別設定tag,用來標示。如使用者U1=U1(ut1,ut2,...,utn)
相似度計算
由於使用者等採用了向量的表示方式,因此此處可以採用餘弦相似度計算方法(還有還多方式),計算使用者之間、歌曲之間、歌單之間的相似度。
推薦
單曲推薦:1、如使用者i聽了單曲a,則推薦與a相似度最高的給使用者。2、可將與使用者i口味相近的使用者j的歌曲推薦給使用者i。3、把單曲所在的歌單中其它歌曲進行推薦
歌單推薦:推薦風格相近的歌單
等等根據設定好的推薦規則進行推薦。
tag更新
人的口味會變,可以根據歷史記錄更新tag。一般歌曲的tag不會變,除非特殊情況(如某首歌突然變成神曲)
至此,基於標籤的推薦演算法介紹完成。
本文通過分析網易雲音樂的個性化推薦特點,尋找音樂推薦中應該要注意的問題,並簡要介紹了基於標籤的音樂推薦演算法。行文中可能會有很多錯漏的地方,歡迎大家一起來探討音樂推薦的相關問題