【Datawhale】推薦系統-協同過濾

小珈貓發表於2020-10-22

協同過濾:基本思想是根據使用者之前的喜好以及其他興趣相近的使用者的選擇來給使用者推薦物品基於使用者的協同過濾演算法(UserCF): 給使用者推薦和他興趣相似的其他使用者喜歡的產品基於物品的協同過濾演算法(ItemCF): 給使用者推薦和他之前喜歡的物品相似的物品2. 相似性度量方法(1)傑卡德(Jaccard)相似係數兩個使用者u uu和v vv互動商品交集的數量佔這兩個使用者互動商品並集的數量的比例:s i m u v = ∣ N ( u ) ∩ N ( v ) ∣ ∣ N ( u ) ∣ ∪ ∣ N ( v ) ∣ sim_{uv}=\frac{|N(u) \cap N(v)|}{\sqrt{|N(u)| \cup|N(v)|}}sim uv​ = ∣N(u)∣∪∣N(v)∣​ ∣N(u)∩N(v)∣​ (2)餘弦相似度矩陣的每一行表示一個使用者對所有商品的互動情況,有互動的商品值為1沒有互動的商品值為0,矩陣的列表示所有商品。若使用者和商品數量分別為m , n m,nm,n的話,互動矩陣A AA就是一個m mm行n nn列的矩陣。s i m u v = c o s ( u , v ) = u ⋅ v ∣ u ∣ ⋅ ∣ v ∣ sim_{uv} = cos(u,v) =\frac{u\cdot v}{|u|\cdot |v|}sim uv​ =cos(u,v)= ∣u∣⋅∣v∣u⋅v​ (3)皮爾遜相關係數皮爾遜相關係數通過使用使用者的平均分對各獨立評分進行修正,減小了使用者評分偏置的影響。s i m ( u , v ) = ∑ i ∈ I ( r u i − r ˉ u ) ( r v i − r ˉ v ) ∑ i ∈ I ( r u i − r ˉ u ) 2 ∑ i ∈ I ( r v i − r ˉ v ) 2 sim(u,v)=\frac{\sum_{i\in I}(r_{ui}-\bar r_u)(r_{vi}-\bar r_v)}{\sqrt{\sum_{i\in I }(r_{ui}-\bar r_u)^2}\sqrt{\sum_{i\in I }(r_{vi}-\bar r_v)^2}}sim(u,v)= ∑ i∈I​ (r ui​ − rˉ u​ ) 2 ​ ∑ i∈I​ (r vi​ − rˉ v​ ) 2 ​ ∑ i∈I​ (r ui​ − rˉ u​ )(r vi​ − rˉ v​ )​ 其中r u i , r v i r_{ui},r_{vi}r ui​ ,r vi​ 分別表示使用者u uu和使用者v vv對商品i ii是否有互動(或者具體的評分值),r ˉ u , r ˉ v \bar r_u, \bar r_v rˉ u​ , rˉ v​ 分別表示使用者u uu和使用者v vv互動的所有商品互動數量或者具體評分的平均值。3.基於使用者的協同過濾UserCF演算法主要包括兩個步驟:找到和目標使用者興趣相似的集合找到這個集合中的使用者喜歡的, 且目標使用者沒有聽說過的物品推薦給目標使用者。這裡常用的方式之一是利用使用者相似度和相似使用者的評價加權平均獲得使用者的評價預測, 用下面式子表示:R u , p = ∑ s ∈ S ( w u , s ⋅ R s , p ) ∑ s ∈ S w u , s R_{\mathrm{u}, \mathrm{p}}=\frac{\sum_{\mathrm{s} \in S}\left(w_{\mathrm{u}, \mathrm{s}} \cdot R_{\mathrm{s}, \mathrm{p}}\right)}{\sum_{\mathrm{s} \in S} w_{\mathrm{u}, \mathrm{s}}}R u,p​ = ∑ s∈S​ w u,s​ ∑ s∈S​ (w u,s​ ⋅R s,p​ )​ 這個式子裡面, 權重w u , s w_{u,s}w u,s​ 是使用者u uu和使用者s ss的相似度, R s , p R_{s,p}R s,p​ 是使用者s ss對物品p pp的評分。(由於今天加班,程式碼部分來不及實踐和展現,後期補上)

相關文章