基於物品的cf(協同過濾)推薦演算法
1.1演算法簡介
cf(協同過濾)簡單來形容就是利用興趣相投的原理進行推薦,協同過濾主要分兩類,一類是基於物品的協同過濾演算法,另一種是基於使用者的協同過濾演算法,這裡主要介紹基於物品的協同過濾演算法。
給定一批使用者,及一批物品,記vi表示不同使用者對物品的評分向量,那麼物品i與物品j的相關性為:
上述公式是利用余弦公式計算相關係數,相關係數的計算還有:傑卡德相關係數、皮爾遜相關係數等。
該係數定義的是兩個向量的線性相關程度,取值範圍為[-1,+1],0表示線性無關,絕對值越大線性相關程度越大,正/負表示正/負線性相關。
簡單的給幾個例子:
[1,2,3],[4,5,6]:1
[1,2,3],[6,5,4]:-1
[1,2,3],[1,2,4]:0.98
[1,2,3],[-1,-11,-111]:-0.9
計算使用者u對某一物品的偏好,記使用者u對物品i的評分為score(u,i),使用者u對物品i的協同過濾得分為rec(u,j)。
1.2業務實踐
記buyersi表示使用者購買商品的向量,記buyersi=(…,bu,i,…) u∈u為,其中u表示全庫使用者集合,bu,i表示使用者u對商品i的得分,定義如下:
那麼商品i與商品j的相關係數如下:
上述公式是是利用余弦公式計算相關性,含義是商品的使用者購買向量夾角越小越相似。此外也可以運用皮爾遜、傑卡德、自定義公式計算相關性,這裡不一一枚舉。
step2:計算使用者對商品的協同過濾得分
給定乙個使用者u,設該使用者歷史購買商品記錄的向量為historyu=(…,hu,i,…) ,i∈i其中i表示所有商品的集合:
計算給定乙個物品j的協同過濾得分為:
step3:給使用者推薦商品
通過step2計算使用者對全庫商品的協同過濾得分,取得分top 10展示給使用者。
1.3例項**
systems/item-based collaborative filtering recommendation algorithm
參考**
[1]
協同過濾推薦演算法 推薦演算法 基於協同過濾CF
前邊我們已經介紹了推薦演算法裡的基於內容的推薦演算法cb,今天我們來介紹一下基於協同的推薦演算法collaboration filtering cf 協同過濾是乙個利用群體智慧型的乙個演算法,舉乙個簡單的例子,如果放假了你想去北京玩幾天,但是不知道北京都有哪些好玩的,你會怎麼做?你可能會上網查一下的...
推薦演算法 基於協同過濾CF
2019 01 06 18 21 09 前邊我們已經介紹了推薦演算法裡的基於內容的推薦演算法cb,今天我們來介紹一下基於協同的推薦演算法collaboration filtering cf 協同過濾是乙個利用群體智慧型的乙個演算法,舉乙個簡單的例子,如果放假了你想去北京玩幾天,但是不知道北京都有哪些...
協同過濾(CF)演算法(基於spark)
協同過濾 cf 是一種推薦演算法,spark中採用的是矩陣分解求als alternating least squares交替最小二乘 的實現。spark推薦演算法在org.apache.spark.mllib.recommendation包下,共有三個類 封裝使用者id,物品id,評分的資料結構,...