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