推薦系統的召回算法
- 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)sxsy∑xiyi−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
∑xiyi
- 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
−∑xiyi∑xiyi
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 ∘ | 推薦 |