推薦演算法之相似性推薦

2021-08-17 20:38:39 字數 1054 閱讀 5908

前文介紹了協同過濾演算法和基於內容的推薦演算法

協同過濾演算法要求要有很多使用者,使用者有很多操作

基於內容的推薦演算法使用者可以不用很多,但是使用者的操作也要有很多

但是,如果要推薦給新使用者(使用者的操作不多),應該要怎樣推薦呢?這裡就要用到相似性推薦了

問題轉化為,如何用一種通用的方法,表達item之間的相似性。

1.找到使用者瀏覽過的某電影

2.定義這些電影的具體內容,假設我們以為維度來定義(這點跟基於內容的推薦演算法一樣)

3.對每個維度設立權值,並且對於同個key不同的value直接設定不同的分數(且稱為相似度評分吧),例如:

我們認為,權值分配是(維度後面跟的是權值)

假設使用者瀏覽過的電影男主為男主1,而另一部電影,假設男主也是男主1,則男主項得10*3分;假設是男主2,則得8*3分;是男主3,則得5*3分,以此類推

具體的權值和值與值之間的分數可以自己定

4.基於步驟3,拿到分數最高的電影,即為要推薦的電影

具體再看一下

(1)找使用者瀏覽過的電影,假設為電影a

(2)定義這些電影的具體內容,假設定為

(3)對每個維度設立權值,並且對於同個key不同的value直接設定不同的分數

為簡單起見,假設我們所取的維度+權值為,

假設所有的維度裡,滿分都為10(即值相同記為10分)

型別1和型別2相似度評分為8分

型別1和型別3的相似度評分為2分

男主1和男主2的相似度評分為9分

男主1和男主3的相似度評分為8分

(4)拿到分數最高的電影

假設我們待推薦的電影只有2部(實際當然不可能),

電影b:

電影c:

電影b的推薦評分大於電影c的推薦評分,所以給使用者推薦電影b

相似性推薦,原理大致如上,要說明的是:

(1)由於沒有使用者歷史行為積累,不是個性化推薦,所以所有使用者的推薦結果都是相同的

(2)一般來說,距離公式確實是線性的

(3)一般來說,每個維度的權重不一樣

(4)這個線性公式,以及維度的權重,都可以通過機器學習訓練出來

參考文章:

推薦演算法之相似性推薦

前文介紹了協同過濾演算法和基於內容的推薦演算法 協同過濾演算法要求要有很多使用者,使用者有很多操作 基於內容的推薦演算法使用者可以不用很多,但是使用者的操作也要有很多 但是,如果要推薦給新使用者 使用者的操作不多 應該要怎樣推薦呢?這裡就要用到相似性推薦了 問題轉化為,如何用一種通用的方法,表達it...

相似性度量

二元向量的相似性度量 每一維都少的資訊量,主要是0,1等有 or 沒有屬性 dice 2 x y x y 2保證 0,1 維數不一致時,差別大。jaccard x y x y 交疊程度小時,值較低 交疊係數 x y min 互相之間的包含性,1 cosine x y 根號 x y 對於實值 只有co...

資料相似性

首先模擬一些資料出來 假設有這樣一些id是1 5的條目,然後有幾個人對他們看過的條目進行了評分 1 5 那麼我們可能有這樣的一組資料,格式是 人名 a b c 給定兩個人,如何計算他們的相似度,比如,在b和c裡,誰和a的評分最相似?給出一些方法 1 簡單匹配係數 matching coefficie...