網易雲音樂能夠推送「我喜歡的音樂」,背後的原理或演算法大致是怎樣的?
我是一個文科小白,在使用網易雲音樂過程中發現其推送的歌曲越來越符合我的口味,興奮之餘有一種被人看透的奇怪感覺。求大神賜教
推薦系統說得再多,其實不外乎兩種,對於不搞推薦演算法的人來說,知道大致分類就足夠了。就音樂而言,主要是以下兩大類
1. 根據用戶收聽記錄推薦
舉個例子假如小明喜歡A和B,小紅喜歡B和C,那麼系統就會給小明推薦C,給小紅推薦A;這個過程放在用戶量級多的範圍裡面就會很有效。優點在於演算法簡單,不容易出錯,缺點在於,對於不太知名的歌曲,因為長尾效應,不太容易被聽到。2. 根據項目內容推薦
在音樂的上下文背景下,項目內容可以指的是音頻信號的內容,或者人為的音樂標籤兩大內容。根這些內容把歌曲分成不同的類別,那麼用戶如果收聽了搖滾的多,那麼系統自然就會推薦你很多搖滾歌曲。如果你聽很神曲,那麼龐賣郎出來的時候就會因為該歌曲的風格類似你的收聽習慣而不出意外的推薦給你。
其他的演算法吹的再天花亂墜,其實也是兩者的結合,本質上沒有區別。最近深度學習如此火,其實歸根到底還是基於內容推薦的進化版本。所以要想做好推薦系統,要麼你有足夠的用戶數據做用戶行為的分析(我覺得大部分中國流媒體公司應該是這樣),要麼你又足夠多的標籤(Pandora十年來請人標註),或者足夠牛逼的音頻特徵和語義特徵(Echo Nest)來聚類。
以上,都算是個人之言,有不同意見可以拍磚。肯定是越來越符合啊,因為被你標記為喜歡的音樂越多,給你的推薦就越有針對性。
其實這就是【推薦系統】,在如今互聯網的應用很廣泛(其實不僅僅是互聯網,許多其他領域也開始使用)。互聯網裡,比如 淘寶商品推薦、百度搜索推廣、微博的好友推薦等等。樓主是文科生,那說的通俗點,直接看下面小標題就能看個大概了
1. 首先給音樂歸歸類(就叫它聚類好了)
算音樂的相似度,把相似的音樂歸在一起,當然,一個音樂可能被放到多個類別裡面去 比如,同個歌手的可以考慮放一起 同種曲風的放一起 同種語言的放一起 帶有某種情緒的放一起... 依據有很多種。 現在計算音樂相似度的演算法已經很成熟的了。這一步結束,就完成了,許多商家就做到這一步。
接下來,直接根據用戶收藏的歌,找相似的推薦。
如果要更加精確。
=========================================2. 分析你喜歡的音樂(用戶建模)把你喜歡的音樂做做分析,比如樓主紅心了幾首 A的抒情歌 幾首B的熱辣的歌,那在推薦之前,就需要摸清了用戶的喜好(當然,除了分析你的收藏與紅心,也有可能分析你的點擊事件,比如一首歌聽一半就點了下一首,說明不喜歡,聽了一遍又重聽,說明喜歡。有些推薦系統甚至會分析你好友的喜好,或者和你關注同一個歌手的其他用戶,來給你做推薦,因為同一個社區具有相似性。演算法有很多種,最後目的是為你量身打造一個模型)3. 推薦
根據剛剛幫你建立好的模型,給你匹配一些分類,然後從這些分類裡面,給你推薦一批歌曲。4. 反饋再分析(強化學習)
給你推薦了幾首,你都聽了,選了部分收為紅心,那麼,標為紅心肯定是你非常喜歡的,那就加強一下這種曲風的權重標記,其他沒收藏的,說明不太喜歡,那就削弱這種去曲風的推薦力度。通過分析準確率和召回率,就能不斷讓這個系統越來越好。推薦系統這東西,需要一定的挖掘技巧,要根據不同情況調整,挺難弄的。題主說自己是文科小白,那麼回答的比較學術會不會有聽不懂的節奏。。
通俗的說,目前每家音樂應用在用戶量,基礎數據質量,用戶關注的點都不一樣,自然也有不同的推薦傾向。而這些演算法細節外人都只可能是猜測,內部人士又不可能告訴你演算法細節怕有泄密風險,這種問題就變成了一種討論帖了。不過業內普遍做法還是有跡可循的,一般都是根據用戶的聽歌,收藏,下載,分享等行為作為用戶的興趣點(音樂基因),基於標籤體系或者協同過濾的數據匯總成一個大的推薦集,最後再通過一系列的過濾和排序演算法得到最終的一個推薦集。
裡面的每一個點,標籤系統,協同過濾,排序演算法拆開都可以講很多,前人也有很多的經驗分享。不妨可以從這些入手看看:書籍:
推薦系統實踐 (豆瓣)很好的推薦系統入門書,如果不懂裡面的公式讀下裡面的思想還是可以收穫很多。
如果題主有理科背景也可以直接啃一些推薦系統的大塊頭了,這個資源帖就很不錯。收錄了很多很好的書籍和鏈接,可以慢慢看。
了解關於系統推薦演算法的知識,有什麼好的資源推薦? - 數據挖掘最後,祝題主也能找到自己問題的答案。最近很多關於猜測網易雲音樂的歌單,電台演算法,其實更想說的是演算法可能並不是最關鍵的,或許元數據的不斷完善以及貼近用戶側的需求思考才是最能夠給人驚喜的。其實感覺蝦米和豆瓣的演算法做得更好……但是,千萬不要嘗試蝦米的手機客戶端,千萬不要
test
詳細回答:網易雲音樂的歌單推薦演算法是怎樣的? - 產品經理
網易演算法目前根據你某些喜愛音樂的同類型推薦,感覺沒有豆瓣的演算法好
對你使用時所播放的,收藏的,下載的音樂進行整理分析,嘛,怎麼個整理分析我還真不清楚,不過給我推薦的會類型方面相像,bgm,後搖,電子,巴洛克,或者是可以按照「聽過這首歌的人也聽……」來給你推送
協同過濾
核心是兩個多維向量的餘弦值大小,若餘弦值偏向1,則口味差不多,若偏向-1,則口味幾乎完全相反,先通過你聽的幾首歌大致確定你的每一個維度(維度即各個歌曲的tag)的偏向,再尋找一個和你維度偏向差不多(即口味差不多)但是聽的歌比你多的人,從他的收藏中跳出收藏或人氣比較高的再推薦給你 0v0 轉
其實真沒啥,開始感覺挺新鮮,但自從我收藏了2個優美男聲的歌單以後幾乎每次進入都給我推男生的歌單,無非就是一些演算法加標籤關聯,但問題來了,我實在看不下去叉了幾天和男聲關鍵字關聯的歌單推薦,結果還是非常固執的給我推XX男聲...
也許可以用Bayesian Inference
最早使用豆瓣 3萬多首紅心一千多首應該有資格回答這個問題吧 最後翻來覆去就是這麼幾首歌 後來轉戰蝦米 用到現在也上3萬啦 真的不少驚喜 至於網易 等緣分吧
推薦閱讀:
※如何看待馬頔在網易雲音樂專訪中稱:「我從來就不是民謠歌手」?
※怎麼理解貝斯大師Victor Wooten所說」律動應當是最重要的音樂元素「?怎麼找到Groove?
※香港 Hidden Agenda Livehouse 主要受到哪些威脅?為何《馬上封音樂會》都過去很久了,還頑強的生存著?