音樂(lè)推薦算法:
核心點(diǎn)
1、找到口味相似的用戶(hù),把他們愛(ài)聽(tīng)的歌曲推薦給你;
2、找到你喜歡的歌曲類(lèi)似的歌曲,把這個(gè)歌曲推薦給你。
1、第一個(gè)問(wèn)題:
如何找到口味相似的用戶(hù)?
通過(guò)大量的用戶(hù)數(shù)據(jù),對(duì)用戶(hù)愛(ài)聽(tīng)的歌曲設(shè)置不同的權(quán)重,
| 單曲循環(huán) | 分享 | 收藏 | 搜索 | 聽(tīng)完 | 沒(méi)聽(tīng)過(guò) | 跳過(guò) |
|---|---|---|---|---|---|---|
| 5分 | 4分 | 3分 | 2分 | 1分 | 0分 | -1分 |
以每個(gè)用戶(hù)對(duì)所有歌曲作行為記錄并打分,這個(gè)時(shí)候就存在一個(gè)問(wèn)題,改用什么樣的算法找出2個(gè)用戶(hù)的口味近似呢?歐幾里得距離(Euclidean distance)。歐幾里得距離是用來(lái)計(jì)算2個(gè)向量之間的距離的。這里面有兩個(gè)關(guān)鍵詞,向量和距離。
| 陰天 | 十年 | 完 | 后來(lái) | 平凡之路 | 夜空中的星 | 我們 | |
|---|---|---|---|---|---|---|---|
| 小明 | 4 | 0 | -1 | 1 | 0 | 3 | 5 |
| 小李 | 5 | 3 | 2 | 0 | 4 | -1 | 0 |
| 小紅 | 4 | 3 | 0 | 1 | 5 | 1 | 0 |
| 小海 | 2 | 3 | 1 | 5 | 5 | -1 | 0 |
一維空間是一條線(xiàn),我們用 1,2,3……這樣單個(gè)的數(shù),來(lái)表示一維空間中的某個(gè)位置;二維空間是一個(gè)面,我們用(1,3)(4,2)(2,2)……這樣的兩個(gè)數(shù),來(lái)表示二維空間中的某個(gè)位置;三維空間是一個(gè)立體空間,我們用(1,3,5)(3,1,7)(2,4,3)……這樣的三個(gè)數(shù),來(lái)表示三維空間中的某個(gè)位置。一維、二維、三維應(yīng)該都不難理解,那更高維中的某個(gè)位置該如何表示呢?
類(lèi)比一維、二維、三維的表示方法,K 維空間中的某個(gè)位置,我們可以寫(xiě)作(X1, X2, X3,... XK)。)。這種表示方法就是向量(vector)。我們知道,二維、三維空間中,兩個(gè)位置之間有距離的概念,類(lèi)比到高緯空間,同樣也有距離的概念,這就是我們說(shuō)的兩個(gè)向量之間的距離。
我們把每個(gè)用戶(hù)對(duì)所有歌曲的喜愛(ài)程度,都用一個(gè)向量表示。我們計(jì)算出兩個(gè)向量之間的歐幾里得距離,作為兩個(gè)用戶(hù)的口味相似程度的度量。
2 、兩外一個(gè)考量標(biāo)準(zhǔn)是基于相似歌曲的推薦
上面是相似用戶(hù)的歌曲推薦,但是如果是一個(gè)新用戶(hù),我們還沒(méi)有足夠多的用戶(hù)行為數(shù)據(jù),這個(gè)時(shí)候該如何推薦呢?這個(gè)時(shí)候就可以根據(jù)相似歌曲作推薦,如果某首歌曲跟你喜愛(ài)的歌曲類(lèi)似,我們就把它推薦給你。
那么問(wèn)題來(lái)了,如何定義2首歌是類(lèi)似的?
第一種思考,我們從歌曲的類(lèi)型,傷感的、歡快的、搖滾的、鄉(xiāng)村的、愛(ài)情的來(lái)分別打分,以這種方式來(lái)計(jì)算每首歌的歐幾里得距離,這樣可以判斷出那些歌曲比較類(lèi)似。
這種方式 對(duì)于有海量曲庫(kù)的平臺(tái)來(lái)說(shuō),計(jì)算量會(huì)非常大,而且人工分類(lèi)的方式,有很多主觀性在里面,會(huì)影響到推薦的準(zhǔn)確性。
第二種,換一種思考模式,就是以用戶(hù)對(duì)歌曲的評(píng)價(jià)來(lái)判定2首歌是否類(lèi)似,對(duì)于2首歌,假如喜歡的用戶(hù)都差不多,可以說(shuō)明這2首歌比較類(lèi)似。
| 小明 | 小李 | 曉紅 | 小C | KK | 小王 | 阿哲 | |
|---|---|---|---|---|---|---|---|
| 十年 | 4 | 0 | -1 | 1 | 0 | 3 | 5 |
| 喜歡你 | 5 | 3 | 2 | 0 | 4 | -1 | 0 |
| 平凡之路 | 4 | 3 | 0 | 1 | 5 | 1 | 0 |
| 國(guó)王與乞丐 | 2 | 3 | 1 | 5 | 5 | -1 | 0 |
這個(gè)其實(shí)就是上面打分的倒置,只是從歌曲出發(fā),以用戶(hù)的評(píng)分為向量,通過(guò)向量來(lái)計(jì)算2首歌的歐幾里距離,距離越小,說(shuō)明這2首歌越類(lèi)似。然后在用戶(hù)喜歡的歌曲中,找出離這些歌歐幾里得距離最小的歌曲(最類(lèi)似)推薦給他。