【《數(shù)學(xué)之美》筆記(三)】推薦系統(tǒng)的奧秘

該系列合集會同步發(fā)布與 GitHub HomePage


1. 基于用戶數(shù)據(jù):協(xié)同過濾算法

歸功于亞馬遜工程師的“發(fā)明”——“一個客戶買了這個東西,那么他也可能買另一個東西”

基本思想:

喜好相同的人和人之間有相似的消費/行為模式。喜好這個東西的人,傾向于也喜好另一個

實現(xiàn)的方法為“協(xié)同過濾”算法 (collaborative filtering)

下面以音樂推薦系統(tǒng)為例進行說明,基于對用戶歷史數(shù)據(jù)的不同側(cè)重,可以分為以下兩類應(yīng)用情景:

(1)基于用戶:對每一個用戶的聽歌偏好作為向量,計算用戶喜好之間的相似度,找到與某個用戶X喜好最相似的一個其他用戶Y,然后將Y的歌單里有而X沒有的歌推薦給X

(2)基于項目(單曲):將用戶對于一首歌的偏好作為向量,計算單曲之間的相似度,若某個用戶喜歡/收藏了某一首歌,則將于這首歌相似的歌曲推薦給這個用戶

但是,基于單一協(xié)同過濾算法的推薦系統(tǒng)會存在明顯的誤差:

  • 除了用戶及消費模式信息,不涉及被推薦單曲本身的任何信息

    這使得熱門音樂幣冷門音樂更容易得到推薦,因為前者擁有更多數(shù)據(jù)

    如果推薦系統(tǒng)只能給出熱門歌曲的推薦,往往很難讓人感到驚喜

  • 而基于項目(單曲)的協(xié)同過濾,也有一個問題,就是相似使用模式下的內(nèi)容異質(zhì)。

    例如你聽了一張新專輯里面全部的歌,但除了主打歌,其他的一些插曲、翻唱曲以及混音曲可能都不是歌手的典型作品,那么協(xié)同過濾在這個時候,就會因為這些「噪音」而產(chǎn)生偏差。

  • 最大的問題便是“沒有數(shù)據(jù),一切皆失效”

2. 基于內(nèi)容:擺脫協(xié)同過濾算法對用戶數(shù)據(jù)的過分依賴

在數(shù)據(jù)量龐大且足夠干凈的時候,協(xié)同過濾算法是非常強大的,但如果作為一個新用戶,在數(shù)據(jù)稀少的情況下,推薦系統(tǒng)該怎么獲知我的口味?

可以利用歌曲本身的信息來得到推薦結(jié)果,其基本思想是:

當(dāng)你喜歡一首歌時,你會傾向也喜歡同類型的其他歌曲

不同歌曲有很多不同的屬性,用一個向量去描述該單曲的屬性,每一個維度的值代表一個屬性的定量描述

按照這些屬性,可以計算兩首歌曲的相似度

基于內(nèi)容的推薦算法更像是對協(xié)同過濾算法以上缺陷的一種補充——假如沒有大量用戶數(shù)據(jù),或者想聽冷門歌曲,我們就只能從音樂本身尋找答案了

前面提到,可以根據(jù)歌曲的不同維度的屬性去構(gòu)造一個特征向量去描述它,但是可供選擇的屬性實在是太多了,因此需要構(gòu)造的特征向量維度過大——可以利用深度學(xué)習(xí)建立基于音頻的推薦模型,通過特征的embedding和降維方法,把這么多特征映射到低維變量空間里

3. 相似度到底是怎么算出來的?

可以擁有描述相似度的統(tǒng)計量為:歐式距離和余弦相似度

可以看出,在上圖中,如果固定B,讓A沿著直線OA方向移動,在移動過程中,AB的余弦夾角始終保持不變,而兩點之間的絕對距離一直在變化

這種差異使得在使用它們進行相似度描述時,要考慮數(shù)據(jù)的特性:

(1)歐式距離:能夠突出數(shù)值絕對差異,在歐式距離下,用戶對歌曲的偏好都可以被認為是一樣的分數(shù),可以簡化歌曲相似度的計算;

(2)余弦相似度:更多是從用戶偏好方向上區(qū)分差異


參考資料:

(1) 吳軍《數(shù)學(xué)之美(第二版)》

(2) 網(wǎng)易云音樂首次披露推薦算法: 讓單身狗猶如過情人節(jié)的日推原來是這樣生成的

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容