大家好,今天小編關(guān)注到一個比較有意思的話題,就是關(guān)于協(xié)同過濾系統(tǒng)音樂推薦的問題,于是小編就整理了2個相關(guān)介紹協(xié)同過濾系統(tǒng)音樂推薦的解答,讓我們一起看看吧。
協(xié)同過濾可以簡單理解為人們對“人以群分,物以類聚”算法解釋和應(yīng)用。
人以群分——基于用戶的協(xié)同過濾
基于用戶的協(xié)同過濾主要基于的是用戶之間的相似度(依賴用戶的歷史喜好數(shù)據(jù)),先計算用戶之間的相似度,然后將用戶喜歡的物品推薦給相似用戶。也就是說,當(dāng)用戶需要個性化推薦時,可以先找到與他相似其他用戶(通過興趣、愛好或行為習(xí)慣等),然后把那些相似用戶喜歡的并且自己不知道的物品推薦給用戶。
物以類聚——基于物品的協(xié)同過濾
基于項目(item-based)的協(xié)同過濾基于物品之間的相似度,先計算物品之間的相似度,然后根據(jù)用戶對物品的評分,將用戶喜歡物品的相似物品推薦給用戶。也就是說,當(dāng)一個用戶需要個性化推薦時,例如由于他之前購買過《集體智慧編程》這本書,所以會給他推薦《機(jī)器學(xué)習(xí)實戰(zhàn)》,因為其他用戶很多都同時購買了這兩本書。
基于用戶協(xié)同過濾與基于物品協(xié)同過濾的區(qū)別
基于用戶的協(xié)同過濾需要在線(系統(tǒng)上線后)找用戶和用戶之間的相似度關(guān)系,計算復(fù)雜度肯定會比基于物品的協(xié)同過濾高。同時還需考慮推薦算法的冷啟動問題(如何在沒有大量用戶數(shù)據(jù)的前提下能夠讓用戶對推薦結(jié)果滿意),比如可以通過用戶注冊時讓用戶選擇自己感興趣的領(lǐng)域,生成粗粒度的推薦。
基于用戶的協(xié)同過濾是給用戶推薦那些和他有共同興趣的用戶喜歡的物品,所以基于用戶的協(xié)同過濾推薦較為社會化,即推薦的物品是與用戶興趣一致的那個群體中的熱門物品,同時能夠推薦給用戶新類別物品。
基于物品協(xié)同過濾則是為用戶推薦那些和他之前喜歡的物品類似的物品,基于物品協(xié)同過濾的推薦較為個性,因為推薦的物品一般都滿足自己的獨(dú)特興趣,所以比較是適應(yīng)于用戶個性化需求強(qiáng)烈的領(lǐng)域,但由于物品的相似度比較穩(wěn)定,很難推薦給用戶新類別的物品。
協(xié)同過濾是推薦系統(tǒng)中采用的一種技術(shù)手段,簡單地說就是利用跟你有某些相似之處的群體的喜好行為來推薦你可能感的興趣的信息,跟你行為相似的用戶或者用戶行為能幫助過濾篩選你想要的信息,達(dá)到一種“協(xié)同”的效果。
舉例來說,比如你現(xiàn)在想去看電影,但是不知道在眾多的電影之中選擇哪一部,這時你會怎么做?
你可能問你身邊的朋友、同事、同學(xué),他們最近看了什么好看電影,你會參考他們的選擇。
或者,打開視頻網(wǎng)站,你在選擇電影的時候,你會偏向去你之前經(jīng)常看的電影類別中,找一找有沒有什么新出的這類題材的電影,比如你之前是一個鋼鐵俠迷,鋼鐵俠系列的電影你都看過了,你可能就會再去看美國隊長等。
上面這個例子,就展現(xiàn)了協(xié)同過濾的思想及兩種方式:基于用戶的協(xié)同過濾和基于物品的協(xié)同過濾。
1)基于用戶的協(xié)同過濾,目標(biāo)就是尋找跟你行為相似度高的用戶,把他們的選擇推薦給你。如下圖所示:
但這種方式,會面臨一些問題,一是對于一個沒有什么行為積累的新用戶,很難找到跟他行為相似的用戶;二是,本用戶關(guān)系的某類產(chǎn)品,跟其相似的用戶在該類產(chǎn)品的選擇上很少,也無法推薦;三是,人是善變的動物,比如,你之前特別愛手游,某一天你突然把游戲戒掉了,那在給你推薦游戲類的軟件就是無用的。因此基于用戶的協(xié)同過濾在實際應(yīng)用中,因用戶表稀疏,且不易維護(hù)往往不常使用。
2)基于物品的協(xié)同過濾,既然用戶不便維護(hù),我們就尋求物品之間的相似度。因為物品的一旦生產(chǎn)出來,特性就是確定的,而且商家為了能更好地賣出商品,也會積極描述物品的特點,因此基于物品的協(xié)同過濾,物品的特征更容易獲取,也就更容易計算物品之間的相似度。
而在實際中,也要根據(jù)不同的應(yīng)用場景選擇合適的方式,比如,如果做新聞推薦的話,就最好選擇基于用戶的方式,實時進(jìn)行推薦。如果是做電商、像圖書、電影等,就更適合基于物品的推薦。
你可能以為網(wǎng)易是用一天時間做一個大數(shù)據(jù)的計算,辛苦推薦出來。但是我今天做了一個試驗。推薦的全是我平時不聽的華語音樂。我全部點了不感興趣。然后再點進(jìn)去每日推薦,神奇的事情出現(xiàn)了,每日推薦又滿了。再全部消掉,再點進(jìn)去,又滿了。說明網(wǎng)易的推薦其實是可以瞬間完成的,平時的每日推薦只不過是每天六點強(qiáng)制刷新一次。這三次推薦都是我不聽的華語音樂。我開始尋找原因。原來紅心里最新添加了幾首華語歌。全部刪掉,再點開推薦,就換風(fēng)格了。重復(fù)這個操作,可以發(fā)現(xiàn),推薦的歌曲并不是和紅心的所有歌曲有關(guān)系,而是和最近紅心的十首以內(nèi)的歌曲有關(guān)。我沒有測試具體數(shù)字。再試驗另一個方面,我把所有紅心刪掉,這次沒有推薦。我加上了一首金屬音樂。這次下面出現(xiàn)幾首金屬音樂。上面出現(xiàn)的竟然都是我剛開始用網(wǎng)易音樂時期的推薦。我猜想網(wǎng)易有一個音樂庫,無論喜歡的音樂是什么。在新手時期都可能推薦這個音樂庫里面的音樂。重度用戶會減少這個庫的推薦。
首先本人非程序員,不懂算法,純屬瞎逼逼。我僅憑主觀非專業(yè)角度猜測這是一種關(guān)聯(lián)推薦。比如,首先你聽了A這首歌,然后后臺關(guān)聯(lián)到聽了A這首歌的所有人,看他們在聽了A的同時還聽了哪些歌,比如統(tǒng)計樣本總共有10個人,他們聽的歌除了A之外,還有C,D,E,F(xiàn)。10個人當(dāng)中有8個人聽過C,5個聽過D,3個人聽過E,一個人聽過F。那么網(wǎng)易云音樂就把最多人聽過的C推薦給你。這個統(tǒng)計的人數(shù)越多,就越準(zhǔn)確。比如有統(tǒng)計了一千萬人,或者,統(tǒng)計了10萬人的一百次聽歌記錄。那么它的推薦就應(yīng)該相當(dāng)?shù)販?zhǔn)確。當(dāng)然,這只是一個思路,具體實現(xiàn)起來,肯定還會有更多的細(xì)節(jié)需要考慮。再次聲明,這僅僅是非專業(yè)的瞎逼逼,專業(yè)人士勿拍磚。
我不是專業(yè)人士真不太懂,但從一個局外人來看網(wǎng)易云音樂身后一定有大數(shù)據(jù)分析能力,你的歌單里有哪些歌,最經(jīng)常播放哪些歌,你平時在網(wǎng)易云音樂喜歡搜哪類歌,它們應(yīng)該都能分析出來,然后在進(jìn)行統(tǒng)一分析處理,最后你每次登錄網(wǎng)易云音樂時它們會根據(jù)分析的你的個人愛好進(jìn)行推薦,應(yīng)該是這樣,
關(guān)于推薦算法現(xiàn)在討論的也很多,比較基本的兩種是collaborative filtering(CF) 和 content-based (CB)兩種,整個推薦系統(tǒng)的核心我覺得就是找兩個objects(可以是歌曲,可以是用戶)之間的相似度。
大概意思就是說,CB就是根據(jù)用戶自己提供的信息,比如建立賬號時生日啊歲數(shù)啊喜好啊,還有你用了產(chǎn)品之后的一些操作,比如 @路人甲提到的那個表格其實就是一種可能。CF則是基于一個前提,假設(shè)甲喜歡產(chǎn)品a, 乙也喜歡產(chǎn)品a,那么乙如果買了產(chǎn)品b并說好,那么甲也很有可能會覺得b不錯,所以就推薦給你,當(dāng)然真實操作肯定不會只用一個產(chǎn)品確定這種聯(lián)系。
這是簡單的背景,如今很多公司,比如淘寶還是亞馬遜,任何推薦算法本身都不可能只是單一的一種,一般都是復(fù)合型的(hybrid)。其實還有很多其他的推薦算法不過就不說了。假設(shè)你選定了一個算法,那么你就得用那個來量化相似度,因為有了量化的相似度,你才能排序,才能按照順序從可能喜歡到最不可能喜歡推薦給用戶。具體量化方法,歐幾里得距離是比較簡單和方便的那種。其實這個就是數(shù)學(xué)概念的矢量,可以有很多個dimensions,然后算數(shù)學(xué)距離。那么現(xiàn)在你有了這個排名,你得不斷更新,因為不可能一下子就完全把用戶的喜好口味抓住,你得通過長時間的使用讓屬于你的data更多,這樣出來的結(jié)果也會更準(zhǔn)確,這也是為啥你新注冊賬號,如果亂選或者喜歡的音樂差異較大,推薦的內(nèi)容就比較不穩(wěn)定。
關(guān)于具體的實現(xiàn),網(wǎng)易的我肯定不知道,不過我想如果你真想自己做一個,寫好這個之后租一個服務(wù)器,定時跑一次就可以了,大部分創(chuàng)業(yè)公司都是這樣。
網(wǎng)易云音樂是網(wǎng)易最棒的產(chǎn)品,也是中國最佳音樂類產(chǎn)品。
推薦原理應(yīng)該是基于一個模型,模型的參數(shù)大概包括:
你明確標(biāo)注喜歡的曲目的類型、歌手、所屬專輯等;
你的經(jīng)常播放的曲目;
你對于推薦的認(rèn)可度。
等等。
原理就是在海量的用戶數(shù)據(jù)(行為記錄等)中對用戶進(jìn)行劃分,對同一群體的用戶推薦其余用戶喜歡的音樂。
1、給音樂進(jìn)行歸類并建立評分規(guī)則
這是我們前面說到的給內(nèi)容分類,是每個平臺推薦前要做好的準(zhǔn)備。簡單說就是把音樂貼標(biāo)簽,把相同/相似標(biāo)簽的音樂歸到一塊,所以一首歌可能會被歸到多個類別里,比如說同一個歌手的歌、同種曲風(fēng)或者表達(dá)某一個情緒等等。
2、建立用戶模型
制定評分規(guī)則后,就可以得到每個用戶和該用戶相關(guān)的每首歌的一個得分,那么根據(jù)這些數(shù)據(jù)就可以給用戶建立相應(yīng)的模型從而為其做精確推薦。
3、尋找相似的用戶
是時候介紹一下專業(yè)的詞了,常用的計算相似度評價值的體系有兩種:歐幾里得距離和皮爾遜相關(guān)度。后者有點復(fù)雜,這里簡單介紹歐幾里得距離。
歐幾里得距離非常直觀,如下圖,根據(jù)上面得出的評分,我們可以制作二維圖,簡單明了看出用戶在哪個位置,比如 A 用戶就與 D 用戶距離最近,所以可以給 A 推薦 D 喜歡的歌曲。
有人說還沒看懂,那我說一個簡化版本的。你經(jīng)常聽民謠,喜歡的歌曲很大一部分都是民謠,于是網(wǎng)易云音樂把你歸到了民謠這個群體,民謠這個群體里面還有一個人叫趙雷,有一天趙雷聽了一首歌叫《成都》并且點了喜歡和收藏。系統(tǒng)發(fā)現(xiàn)你并沒有聽過這首歌,于是在后面的某一天,網(wǎng)易云音樂悄悄的把這首歌放進(jìn)了你的每日推薦里面,你一聽,真好聽。這只是最簡單的情況,而網(wǎng)易云音樂的推薦遠(yuǎn)沒有這么簡單。
到此,以上就是小編對于協(xié)同過濾系統(tǒng)音樂推薦的問題就介紹到這了,希望介紹關(guān)于協(xié)同過濾系統(tǒng)音樂推薦的2點解答對大家有用。