協同過濾演算法簡介

bigface1234fdfg發表於2015-02-05

協同過濾演算法簡介

    

    協同過濾演算法在推薦系統演算法領域中也已經被研究了許多年,提出了不少的方法,我們就來把這些演算法歸類一下。


    協同過濾方法的一個基本假設就是,如果使用者A和使用者B在一些物品偏好上,具有相似的歷史標註模式或者行為習慣,那麼他們在其餘專案上都具有一定相似的興趣。


    協同過濾演算法主要分為兩大類:基於記憶體的方法、基於模型的方法。而協同過濾演算法的難點就在於使用者評價矩陣非常稀疏,預設的值較多,存在共同評價的物品非常少。


1. 基於記憶體的協同過濾演算法


    基於記憶體的協同過濾演算法主要就是兩個代表:基於使用者和基於物品。這兩個都在我們上篇博文中講過了,如下:


http://blog.csdn.net/puqutogether/article/details/43524641


    其主要的步驟就是:




    這兩種方法是基於記憶體一類方法的代表,後續的擴充套件包括很多,主要是為了解決評價矩陣中高稀疏,預設項太多的情況。

    這些改進的方法包括:


    1)基於預設標註填充的協同過濾演算法。在基於記憶體的協同過濾演算法中,相似度的計算往往考慮的是使用者共同標註過的專案,或者是共同標註過專案的使用者。但是,評價矩陣是非常係數的,導致這兩種共同項會非常少。這個方法將評價矩陣中缺失的值,採用相似使用者標註的平均值來填充,提高了推薦精度;


    2)基於逆使用者頻率的協同過濾演算法。對於一些物品,所有使用者都標註偏好了,那麼這個資料對使用者相似度的計算就沒有太高的用處,我們應該忽略掉。這個方法在計算相似度的時候,不是採用原始的評價矩陣,而是把它使用逆使用者頻率公式轉換一下,轉換公式為:


其中n_i表示標註過物品i的使用者數量,n表示使用者總數量。對於剛才那種情況,轉換之後的特徵就是0. 基於逆使用者頻率的協同過濾演算法過濾掉了頻繁標註對於相似度計算的影響,適當提高了非頻繁標註的權重,提高了推薦精度;


    3)基於虛擬值估算的協同過濾演算法。這個方法也是解決評價矩陣稀疏性問題的,其基本思想就是利用虛擬值插補技術,對評價矩陣中的缺失標註進行填充。



2. 基於模型的協同過濾演算法


    這類方法運用評價矩陣為訓練資料,通過一些常見的機器學習演算法(聚類,迴歸,貝葉斯)等,來學習出一個模型,以識別出複雜的使用者或者物品標註模式,做出推薦。


    1)基於聚類模型的協同過濾演算法。在協同過濾中,聚類通常可以作為資料處理中間步驟,聚類的結果被用來下一步的分類和預測。例如,我們可以用評價矩陣的資料把使用者聚類,然後在每個小簇中採用基於記憶體的協同過濾演算法得到推薦;或者也可以在聚類之後,把使用者到簇中心的距離作為一個權重,常與到後面的步驟中。不過,這類方法由於先聚類,在資料兩更小的簇中協同過濾,小簇畢竟損失了一部分有用的資訊,效果不一定很好;


    2)基於貝葉斯信念網路;


    3)基於迴歸模型;


    4)基於隱語義模型。


    這幾個方法不通用,就不一一介紹了,需要了解的可以參考下面的文獻。


參考文獻:


《基於協同過濾的推薦演算法研究》





相關文章