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