天天看點

推薦召回算法---協同過濾1. 協同過濾—基于行為相似的召回

推薦系統的召回算法

  • 1. 協同過濾---基于行為相似的召回
    • 1.1 協同過濾算法
      • 1.1.1 相似度計算
      • 1.1.2 推薦計算
    • 1.2 協同過濾推薦算法的實作

1. 協同過濾—基于行為相似的召回

要實作協同過濾,需要以下幾個步驟:

  • 收集使用者偏好
  • 找到相似的使用者或物品
  • 計算并推薦

1.1 協同過濾算法

1.1.1 相似度計算

在對使用者的行為進行分析得到使用者的偏好後,可以根據使用者的偏好計算相似使用者或相似物品,然後基于相似使用者或相似物品進行推薦。即基于使用者的協同過濾和物品的協同過濾。

關于相似度的計算,現有的幾種基本方法都是基于向量(Vector)的,也就是計算兩個向量的距離,距離越近則相似度越大。

  • 1.同現相似度

    物品A和物品B的同現相似度公式定義:

w A , B = ∣ ( N ( A ) ⋂ N ( B ) ∣ ∣ N ( A ) ∣ w_{A,B} = {|(N(A)\bigcap N(B)|\over |N(A)|} wA,B​=∣N(A)∣∣(N(A)⋂N(B)∣​

分母$ N(A)$是喜歡物品A的使用者數

可了解為喜歡物品A的使用者中有多少比例的使用者也喜歡物品B。 此公式會造成任何物品都與熱門物品有很大相似度。

w A , B = ∣ ( N ( A ) ⋂ N ( B ) ∣ ∣ N ( A ) ∣ ∣ N ( B ) ∣ w_{A,B} = {|(N(A)\bigcap N(B)|\over \sqrt {|N(A)||N(B)|}} wA,B​=∣N(A)∣∣N(B)∣

​∣(N(A)⋂N(B)∣​

這個公式懲罰了物品B的權重,是以減小了熱門物品與很多物品相似的可能性。

  • 2.歐幾裡得距離

    d ( x , y ) = ∑ ( x i − y i ) 2 d(x,y) = \sqrt {\sum (x_i-y_i)^2} d(x,y)=∑(xi​−yi​)2

    當用歐幾裡得距離表示相似度時,采用以下公式進行轉換:距離越小,相似度值越大。

s i m ( x , y ) = 1 1 + d ( x , y ) sim(x,y) = {1 \over 1+d(x,y) } sim(x,y)=1+d(x,y)1​

  • 3.皮爾遜相關系數

皮爾遜相關系數一般用于計算兩個定距變量間的緊密程度,取值範圍為[-1,+1]。

p ( x , y ) = ∑ x i y i − n x y ‾ ( n − 1 ) s x s y p(x,y) = {\sum x_iy_i- n \overline{xy} \over (n-1)s_xs_y} p(x,y)=(n−1)sx​sy​∑xi​yi​−nxy​​

  • 4.Cosin相似度

Cosin相似度被廣泛應用于計算文檔資料的相似度:

C ( x , y ) = x ⋅ y ∣ ∣ x ∣ ∣ 2 ∣ ∣ y ∣ ∣ 2 = ∑ x i y i ∑ x i 2 ∑ y i 2 C(x,y) = {x \cdot y \over ||x||^2||y||^2}={\sum x_iy_i \over \sqrt{\sum x_i^2} \sqrt{\sum y_i^2}} C(x,y)=∣∣x∣∣2∣∣y∣∣2x⋅y​=∑xi2​

​∑yi2​

​∑xi​yi​​

  • 5.Tanimoto系數

Tanimoto系數也被稱為Jaccard系數,是Cosine相似度的擴充,多用于計算文檔資料的相似度:

T ( x , y ) = x ⋅ y ∣ ∣ x ∣ ∣ 2 + ∣ ∣ y ∣ ∣ 2 − x ⋅ y = ∑ x i y i ∑ x i 2 ∑ y i 2 − ∑ x i y i T(x,y) = {x \cdot y \over ||x||^2 + ||y||^2 - x \cdot y} = {\sum x_iy_i \over \sqrt{\sum x_i^2} \sqrt{\sum y_i^2} - \sum x_iy_i} T(x,y)=∣∣x∣∣2+∣∣y∣∣2−x⋅yx⋅y​=∑xi2​

​∑yi2​

​−∑xi​yi​∑xi​yi​​

1.1.2 推薦計算

  • UserCF
使用者/物品 物品A 物品B 物品C 物品D
使用者1 ∘ \circ ∘ ∘ \circ ∘ 推薦
使用者2 ∘ \circ ∘
使用者3 ∘ \circ ∘ ∘ \circ ∘ ∘ \circ ∘
  • ItemCF
使用者/物品 物品A 物品B 物品C
使用者1 ∘ \circ ∘ ∘ \circ ∘
使用者2 ∘ \circ ∘ ∘ \circ ∘ ∘ \circ ∘
使用者3 ∘ \circ ∘ 推薦

1.2 協同過濾推薦算法的實作

繼續閱讀