大家好,今天小編關注到一個比較有意思的話題,就是關于音樂智能推薦算法怎么寫的問題,于是小編就整理了1個相關介紹音樂智能推薦算法怎么寫的解答,讓我們一起看看吧。
你可能以為網易是用一天時間做一個大數據的計算,辛苦推薦出來。但是我今天做了一個試驗。推薦的全是我平時不聽的華語音樂。我全部點了不感興趣。然后再點進去每日推薦,神奇的事情出現了,每日推薦又滿了。再全部消掉,再點進去,又滿了。說明網易的推薦其實是可以瞬間完成的,平時的每日推薦只不過是每天六點強制刷新一次。這三次推薦都是我不聽的華語音樂。我開始尋找原因。原來紅心里最新添加了幾首華語歌。全部刪掉,再點開推薦,就換風格了。重復這個操作,可以發現,推薦的歌曲并不是和紅心的所有歌曲有關系,而是和最近紅心的十首以內的歌曲有關。我沒有測試具體數字。再試驗另一個方面,我把所有紅心刪掉,這次沒有推薦。我加上了一首金屬音樂。這次下面出現幾首金屬音樂。上面出現的竟然都是我剛開始用網易音樂時期的推薦。我猜想網易有一個音樂庫,無論喜歡的音樂是什么。在新手時期都可能推薦這個音樂庫里面的音樂。重度用戶會減少這個庫的推薦。
大家好,我是網易一位小員工,我每天的工作就是挑音樂放到各位的每日歌曲推薦里。這份工作看似簡單實則不然,我要在一天內聽完你喜歡的音樂,然后根據你喜歡什么類型的歌從曲庫中挑歌在早上6點準時放到你的歌曲推薦中,為此我天天熬夜。所以不要驚訝每日歌曲推薦那么人性化,因為我純粹是在騙你,哈哈哈
首先本人非程序員,不懂算法,純屬瞎逼逼。我僅憑主觀非專業角度猜測這是一種關聯推薦。比如,首先你聽了A這首歌,然后后臺關聯到聽了A這首歌的所有人,看他們在聽了A的同時還聽了哪些歌,比如統計樣本總共有10個人,他們聽的歌除了A之外,還有C,D,E,F。10個人當中有8個人聽過C,5個聽過D,3個人聽過E,一個人聽過F。那么網易云音樂就把最多人聽過的C推薦給你。這個統計的人數越多,就越準確。比如有統計了一千萬人,或者,統計了10萬人的一百次聽歌記錄。那么它的推薦就應該相當地準確。當然,這只是一個思路,具體實現起來,肯定還會有更多的細節需要考慮。再次聲明,這僅僅是非專業的瞎逼逼,專業人士勿拍磚。
我不是專業人士真不太懂,但從一個局外人來看網易云音樂身后一定有大數據分析能力,你的歌單里有哪些歌,最經常播放哪些歌,你平時在網易云音樂喜歡搜哪類歌,它們應該都能分析出來,然后在進行統一分析處理,最后你每次登錄網易云音樂時它們會根據分析的你的個人愛好進行推薦,應該是這樣,
原理就是在海量的用戶數據(行為記錄等)中對用戶進行劃分,對同一群體的用戶推薦其余用戶喜歡的音樂。
1、給音樂進行歸類并建立評分規則
這是我們前面說到的給內容分類,是每個平臺推薦前要做好的準備。簡單說就是把音樂貼標簽,把相同/相似標簽的音樂歸到一塊,所以一首歌可能會被歸到多個類別里,比如說同一個歌手的歌、同種曲風或者表達某一個情緒等等。
2、建立用戶模型
制定評分規則后,就可以得到每個用戶和該用戶相關的每首歌的一個得分,那么根據這些數據就可以給用戶建立相應的模型從而為其做精確推薦。
3、尋找相似的用戶
是時候介紹一下專業的詞了,常用的計算相似度評價值的體系有兩種:歐幾里得距離和皮爾遜相關度。后者有點復雜,這里簡單介紹歐幾里得距離。
歐幾里得距離非常直觀,如下圖,根據上面得出的評分,我們可以制作二維圖,簡單明了看出用戶在哪個位置,比如 A 用戶就與 D 用戶距離最近,所以可以給 A 推薦 D 喜歡的歌曲。
有人說還沒看懂,那我說一個簡化版本的。你經常聽民謠,喜歡的歌曲很大一部分都是民謠,于是網易云音樂把你歸到了民謠這個群體,民謠這個群體里面還有一個人叫趙雷,有一天趙雷聽了一首歌叫《成都》并且點了喜歡和收藏。系統發現你并沒有聽過這首歌,于是在后面的某一天,網易云音樂悄悄的把這首歌放進了你的每日推薦里面,你一聽,真好聽。這只是最簡單的情況,而網易云音樂的推薦遠沒有這么簡單。
關于推薦算法現在討論的也很多,比較基本的兩種是collaborative filtering(CF) 和 content-based (CB)兩種,整個推薦系統的核心我覺得就是找兩個objects(可以是歌曲,可以是用戶)之間的相似度。
大概意思就是說,CB就是根據用戶自己提供的信息,比如建立賬號時生日啊歲數啊喜好啊,還有你用了產品之后的一些操作,比如 @路人甲提到的那個表格其實就是一種可能。CF則是基于一個前提,假設甲喜歡產品a, 乙也喜歡產品a,那么乙如果買了產品b并說好,那么甲也很有可能會覺得b不錯,所以就推薦給你,當然真實操作肯定不會只用一個產品確定這種聯系。
這是簡單的背景,如今很多公司,比如淘寶還是亞馬遜,任何推薦算法本身都不可能只是單一的一種,一般都是復合型的(hybrid)。其實還有很多其他的推薦算法不過就不說了。假設你選定了一個算法,那么你就得用那個來量化相似度,因為有了量化的相似度,你才能排序,才能按照順序從可能喜歡到最不可能喜歡推薦給用戶。具體量化方法,歐幾里得距離是比較簡單和方便的那種。其實這個就是數學概念的矢量,可以有很多個dimensions,然后算數學距離。那么現在你有了這個排名,你得不斷更新,因為不可能一下子就完全把用戶的喜好口味抓住,你得通過長時間的使用讓屬于你的data更多,這樣出來的結果也會更準確,這也是為啥你新注冊賬號,如果亂選或者喜歡的音樂差異較大,推薦的內容就比較不穩定。
關于具體的實現,網易的我肯定不知道,不過我想如果你真想自己做一個,寫好這個之后租一個服務器,定時跑一次就可以了,大部分創業公司都是這樣。
到此,以上就是小編對于音樂智能推薦算法怎么寫的問題就介紹到這了,希望介紹關于音樂智能推薦算法怎么寫的1點解答對大家有用。