Item based協同過濾

2021-06-02 10:18:30 字數 932 閱讀 5383

**:item-based top-n recommendation algorithms

過程:1. 構建乙個m*m的矩陣,每一列最多有k個非0值,比如第j列,非0值代表和第j個item最相關的k個item。k一般10-20,不會很大,保持矩陣的稀疏性。

3. 上述矩陣相乘,等於是權重累加(比如使用者買過了a和b,a和c的相似度權重+b和c的相似度權重,就是這個使用者推薦c的總權重)。輸出的格式:m*1的矩陣,最多n個非0值,存的是權重,代表為該使用者推薦的n個item。

存在問題,a和b相關的一系列item之間不可直接比較。特別是對於不經常購買的商品。需要歸一化,使得乙個item對應的k個item總權重為1.

如何計算相似度:

1. 乙個買很多東西的使用者,和乙個買比較少東西的使用者,對於商品共現的權重不同。買的少的人,裡面商品的共現,體現的相關性更大一些。

2. sim(i,j)和sim(j,i)是不同的。出現次數多的i會被懲罰

3. 基於cosine的相似度:n×m user–item矩陣,

如果要對買的東西多的人進行降權,則可以對每一行進行歸一化

4. 基於條件概率的相似度:

p( j |i) = freq(i j )/freq(i)

買過i的人再買j的概率

上述公式的問題是:如果j經常被購買,則會趨向於獲得更大的概率,必須適度懲罰

a是乙個0-1之間的數,具體取多少合適,需要看具體的問題,需要試驗

freq(ij)是同時購買i和j的使用者數

上述公式沒有區分買東西多和買東西少的使用者

考慮的話,首先對n×m user–item矩陣行歸一化(買的少的使用者,權重會更大點)

上述公式的上面部分,應用於user–item矩陣,把第j列歸一化後的非0值都加起來。是否少了個條件?至少使用者還得買過i啊。

所有ij組都計算出來,構成乙個矩陣,最後矩陣還需要歸一化(列歸一化),使得列的模為1

協同過濾 基於使用者的協同過濾itemCF

基於使用者的協同過濾演算法也被稱為最近鄰協同過濾或knn k nearest neighbor,k最近鄰演算法 其核心思想就是,首先根據相似度計算出目標使用者的鄰居集合,然後用鄰居使用者評分的加權組合來為目標使用者作推薦。通常這些演算法都可以總結成三步 首先,使用使用者已有的評分來計算使用者之間的相...

協同過濾演算法

3種形式的協同過濾 collaborative filtering 演算法 1 user based 相同 相似 使用者的喜好相同 2 item based 能夠引起使用者興趣的專案,必定與其之前評分高的專案相似 3 model based 先用歷史資料得到乙個模型,再用此模型進行 參考 這個位址是...

協同過濾理論

基於使用者的 cf 的基本思想相當簡單,基於使用者對物品的偏好找到相鄰鄰居使用者,然後將鄰居使用者喜歡的推薦給當前使用者。計算上,就是將乙個使用者對所有物品的偏好作為乙個向量 來計算使用者之間的相似度,找到 k 鄰居後,根據鄰居的相似度權重以及他們對物品的偏好,當前使用者沒有偏好的未涉及物品,計算得...