協同過濾演算法簡介
協同過濾演算法在推薦系統演算法領域中也已經被研究了許多年,提出了不少的方法,我們就來把這些演算法歸類一下。
協同過濾方法的乙個基本假設就是,如果使用者a和使用者b在一些物品偏好上,具有相似的歷史標註模式或者行為習慣,那麼他們在其餘專案上都具有一定相似的興趣。
協同過濾演算法主要分為兩大類:基於記憶體的方法、基於模型的方法。而協同過濾演算法的難點就在於使用者評價矩陣非常稀疏,預設的值較多,存在共同評價的物品非常少。
基於記憶體的協同過濾演算法主要就是兩個代表:基於使用者和基於物品。這兩個都在我們上篇博文中講過了,如下:
其主要的步驟就是:
這兩種方法是基於記憶體一類方法的代表,後續的擴充套件包括很多,主要是為了解決評價矩陣中高稀疏,預設項太多的情況。
這些改進的方法包括:
1)基於預設標註填充的協同過濾演算法。在基於記憶體的協同過濾演算法中,相似度的計算往往考慮的是使用者共同標註過的專案,或者是共同標註過專案的使用者。但是,評價矩陣是非常係數的,導致這兩種共同項會非常少。這個方法將評價矩陣中缺失的值,採用相似使用者標註的平均值來填充,提高了推薦精度;
2)基於逆使用者頻率的協同過濾演算法。對於一些物品,所有使用者都標註偏好了,那麼這個資料對使用者相似度的計算就沒有太高的用處,我們應該忽略掉。這個方法在計算相似度的時候,不是採用原始的評價矩陣,而是把它使用逆使用者頻率公式轉換一下,轉換公式為:
其中n_i表示標註過物品i的使用者數量,n表示使用者總數量。對於剛才那種情況,轉換之後的特徵就是0. 基於逆使用者頻率的協同過濾演算法過濾掉了頻繁標註對於相似度計算的影響,適當提高了非頻繁標註的權重,提高了推薦精度;
3)基於虛擬值估算的協同過濾演算法。這個方法也是解決評價矩陣稀疏性問題的,其基本思想就是利用虛擬值插補技術,對評價矩陣中的缺失標註進行填充。
這類方法運用評價矩陣為訓練資料,通過一些常見的機器學習演算法(聚類,回歸,貝葉斯)等,來學習出乙個模型,以識別出複雜的使用者或者物品標註模式,做出推薦。
1)基於聚類模型的協同過濾演算法。在協同過濾中,聚類通常可以作為資料處理中間步驟,聚類的結果被用來下一步的分類和**。例如,我們可以用評價矩陣的資料把使用者聚類,然後在每個小簇中採用基於記憶體的協同過濾演算法得到推薦;或者也可以在聚類之後,把使用者到簇中心的距離作為乙個權重,常與到後面的步驟中。不過,這類方法由於先聚類,在資料兩更小的簇中協同過濾,小簇畢竟損失了一部分有用的資訊,效果不一定很好;
2)基於貝葉斯信念網路;
3)基於回歸模型;
4)基於隱語義模型。
這幾個方法不通用,就不一一介紹了,需要了解的可以參考下面的文獻。
《基於協同過濾的推薦演算法研究》
協同過濾推薦演算法簡介
協同過濾 collaborative filtering,簡稱cf 推薦演算法的主要功能是 和推薦,人以類聚,物以群分 可以分為兩類,分別是基於使用者的協同過濾演算法 user based collaborative filtering 和基於物品的協同過濾演算法 item based collab...
協同過濾演算法
3種形式的協同過濾 collaborative filtering 演算法 1 user based 相同 相似 使用者的喜好相同 2 item based 能夠引起使用者興趣的專案,必定與其之前評分高的專案相似 3 model based 先用歷史資料得到乙個模型,再用此模型進行 參考 這個位址是...
協同過濾演算法
1.表示使用者行為矩陣,即統計使用者購買某種商品型別的數量 public double getnumbycustomer customer customer return vectore 2.用余弦距離計算每個使用者與其它使用者的行為相似度 下面 是兩個使用者之間的相似度,進行遍歷就可以獲取全部相似...