協同過濾演算法簡介
協同過濾演算法簡介
協同過濾演算法在推薦系統演算法領域中也已經被研究了許多年,提出了不少的方法,我們就來把這些演算法歸類一下。
協同過濾方法的一個基本假設就是,如果使用者A和使用者B在一些物品偏好上,具有相似的歷史標註模式或者行為習慣,那麼他們在其餘專案上都具有一定相似的興趣。
協同過濾演算法主要分為兩大類:基於記憶體的方法、基於模型的方法。而協同過濾演算法的難點就在於使用者評價矩陣非常稀疏,預設的值較多,存在共同評價的物品非常少。
1. 基於記憶體的協同過濾演算法
基於記憶體的協同過濾演算法主要就是兩個代表:基於使用者和基於物品。這兩個都在我們上篇博文中講過了,如下:
http://blog.csdn.net/puqutogether/article/details/43524641
其主要的步驟就是:
這兩種方法是基於記憶體一類方法的代表,後續的擴充套件包括很多,主要是為了解決評價矩陣中高稀疏,預設項太多的情況。
這些改進的方法包括:
1)基於預設標註填充的協同過濾演算法。在基於記憶體的協同過濾演算法中,相似度的計算往往考慮的是使用者共同標註過的專案,或者是共同標註過專案的使用者。但是,評價矩陣是非常係數的,導致這兩種共同項會非常少。這個方法將評價矩陣中缺失的值,採用相似使用者標註的平均值來填充,提高了推薦精度;
2)基於逆使用者頻率的協同過濾演算法。對於一些物品,所有使用者都標註偏好了,那麼這個資料對使用者相似度的計算就沒有太高的用處,我們應該忽略掉。這個方法在計算相似度的時候,不是採用原始的評價矩陣,而是把它使用逆使用者頻率公式轉換一下,轉換公式為:
其中n_i表示標註過物品i的使用者數量,n表示使用者總數量。對於剛才那種情況,轉換之後的特徵就是0. 基於逆使用者頻率的協同過濾演算法過濾掉了頻繁標註對於相似度計算的影響,適當提高了非頻繁標註的權重,提高了推薦精度;
3)基於虛擬值估算的協同過濾演算法。這個方法也是解決評價矩陣稀疏性問題的,其基本思想就是利用虛擬值插補技術,對評價矩陣中的缺失標註進行填充。
2. 基於模型的協同過濾演算法
這類方法運用評價矩陣為訓練資料,通過一些常見的機器學習演算法(聚類,迴歸,貝葉斯)等,來學習出一個模型,以識別出複雜的使用者或者物品標註模式,做出推薦。
1)基於聚類模型的協同過濾演算法。在協同過濾中,聚類通常可以作為資料處理中間步驟,聚類的結果被用來下一步的分類和預測。例如,我們可以用評價矩陣的資料把使用者聚類,然後在每個小簇中採用基於記憶體的協同過濾演算法得到推薦;或者也可以在聚類之後,把使用者到簇中心的距離作為一個權重,常與到後面的步驟中。不過,這類方法由於先聚類,在資料兩更小的簇中協同過濾,小簇畢竟損失了一部分有用的資訊,效果不一定很好;
2)基於貝葉斯信念網路;
3)基於迴歸模型;
4)基於隱語義模型。
這幾個方法不通用,就不一一介紹了,需要了解的可以參考下面的文獻。
參考文獻:
《基於協同過濾的推薦演算法研究》
相關文章
- 協同過濾演算法演算法
- Slope One :簡單高效的協同過濾演算法演算法
- 推薦協同過濾演算法演算法
- 協同過濾演算法——入門演算法
- SimRank協同過濾推薦演算法演算法
- 協同過濾演算法概述與python 實現協同過濾演算法基於內容(usr-it演算法Python
- 協同過濾推薦演算法總結演算法
- 基於物品的協同過濾演算法演算法
- 協同過濾筆記筆記
- chapter2:協同過濾APT
- 協同過濾(CF)演算法詳解和實現演算法
- 基於使用者的協同過濾演算法演算法
- 基於矩陣分解的協同過濾演算法矩陣演算法
- 物品推薦(基於物品的協同過濾演算法)演算法
- 【Datawhale】推薦系統-協同過濾
- [機器學習]協同過濾演算法的原理和基於Spark 例項機器學習演算法Spark
- 矩陣分解在協同過濾推薦演算法中的應用矩陣演算法
- 協同過濾實現小型推薦系統
- chapter3:協同過濾-隱式評級及基於物品的過濾APT
- 推薦召回--基於物品的協同過濾:ItemCF
- 【轉】推薦系統演算法總結(二)——協同過濾(CF) MF FM FFM演算法
- 協同過濾的R語言實現及改進R語言
- 推薦系統與協同過濾、奇異值分解
- 協同過濾在推薦系統中的應用
- 神經圖協同過濾(Neural Graph Collaborative Filtering)Filter
- Python之協同過濾(尋找相近的使用者)Python
- 深入理解mahout基於hadoop的協同過濾流程Hadoop
- 推薦系統--完整的架構設計和演算法(協同過濾、隱語義)架構演算法
- 基於遺傳最佳化的協同過濾推薦演算法matlab模擬演算法Matlab
- 【小白學推薦1】 協同過濾 零基礎到入門
- [R]可能是史上程式碼最少的協同過濾推薦引擎
- 【JAVA】助力數字化營銷:基於協同過濾演算法實現個性化商品推薦Java演算法
- javascript過濾陣列中的元素簡單介紹JavaScript陣列
- 基於使用者的協同過濾來構建推薦系統
- 推薦系統入門之使用協同過濾實現商品推薦
- 基於專案的協同過濾推薦演算法(Item-Based Collaborative Filtering Recommendation Algorithms)演算法FilterGo
- 預測電影偏好?如何利用自編碼器實現協同過濾方法
- cdp協議簡介協議