基於使用者的 cf 的基本思想相當簡單,基於使用者對物品的偏好找到相鄰鄰居使用者,然後將鄰居使用者喜歡的推薦給當前使用者。計算上,就是將乙個使用者對所有物品的偏好作為乙個向量 來計算使用者之間的相似度,找到 k 鄰居後,根據鄰居的相似度權重以及他們對物品的偏好,**當前使用者沒有偏好的未涉及物品,計算得到乙個排序的物品列表作為推薦。圖 2 給出了乙個例子,對於使用者 a,根據使用者的歷史偏好,這裡只計算得到乙個鄰居 – 使用者 c,然後將使用者 c 喜歡的物品 d 推薦給使用者 a。
介紹完相似度的計算方法,下面我們看看如何根據相似度找到使用者 – 物品的鄰居,常用的挑選鄰居的原則可以分為兩類:圖 1 給出了二維平面空間上點集的示意圖。
固定數量的鄰居:k-neighborhoods 或者 fix-size neighborhoods
不論鄰居的「遠近」,只取最近的 k 個,作為其鄰居。如圖 1 中的 a,假設要計算點 1 的 5- 鄰居,那麼根據點之間的距離,我們取最近的 5 個點,分別是點 2,點 3,點 4,點 7 和點 5。但很明顯我們可以看出,這種方法對於孤立點的計算效果不好,因為要取固定個數的鄰居,當它附近沒有足夠多比較相似的點,就被迫取一些不太相似的點作為 鄰居,這樣就影響了鄰居相似的程度,比如圖 1 中,點 1 和點 5 其實並不是很相似。
與計算固定數量的鄰居的原則不同,基於相似度門檻的鄰居計算是對鄰居的遠近進行最大值的限制,落在以當前點為中心,距離為 k 的區域中的所有點都作為當前點的鄰居,這種方法計算得到的鄰居個數不確定,但相似度不會出現較大的誤差。如圖 1 中的 b,從點 1 出發,計算相似度在 k 內的鄰居,得到點 2,點 3,點 4 和點 7,這種方法計算出的鄰居的相似度程度比前一種優,尤其是對孤立點的處理。
協同過濾 基於使用者的協同過濾itemCF
基於使用者的協同過濾演算法也被稱為最近鄰協同過濾或knn k nearest neighbor,k最近鄰演算法 其核心思想就是,首先根據相似度計算出目標使用者的鄰居集合,然後用鄰居使用者評分的加權組合來為目標使用者作推薦。通常這些演算法都可以總結成三步 首先,使用使用者已有的評分來計算使用者之間的相...
Item based協同過濾
item based top n recommendation algorithms 過程 1.構建乙個m m的矩陣,每一列最多有k個非0值,比如第j列,非0值代表和第j個item最相關的k個item。k一般10 20,不會很大,保持矩陣的稀疏性。3.上述矩陣相乘,等於是權重累加 比如使用者買過了a...
協同過濾演算法
3種形式的協同過濾 collaborative filtering 演算法 1 user based 相同 相似 使用者的喜好相同 2 item based 能夠引起使用者興趣的專案,必定與其之前評分高的專案相似 3 model based 先用歷史資料得到乙個模型,再用此模型進行 參考 這個位址是...