基於使用者的協同過濾(下文簡稱usercf)的基本思想為:給使用者推薦和他興趣相似的使用者感興趣的物品。當需要為乙個使用者a進行推薦時,首先,找到和a興趣相似的使用者集合(用u表示),然後,把集合u中使用者感興趣而a沒有聽說過(未進行過操作)的物品推薦給a。演算法分為兩個步驟:首先,計算使用者之間的相似度,選取最相似的n個使用者,然後,根據相似度計算使用者評分。
演算法不足:
1.擴充套件性:使用者人數和使用者個人資訊的大幅增加對協同過濾演算法帶來挑戰。
2.準確性:乙個使用者可能買到系統其中不到1%的物品,不同使用者之間買的物品重疊性較低,導致演算法無法找到乙個使用者的鄰居,即偏好相似的使用者。因此,基於最近鄰演算法的推薦系統可能無法為特定使用者推薦任何物品,建議的準確性可能很差。
基於物品的協同過濾(下文簡稱itemcf)是目前應用最為廣泛的演算法,該演算法的基本思想為:給使用者推薦和他們以前喜歡的物品相似的物品,這裡所說的相似並非從物品的內容角度出發,而是基於一種假設:喜歡物品a的使用者大多也喜歡物品b代表著物品a和物品b相似。基於物品的協同過濾演算法能夠為推薦結果做出合理的解釋,比如電子商務**中的「購買該物品的使用者還購買了…」。itemcf的計算步驟和usercf大致相同:首先,計算物品相似度,選出最相似的n個物品,然後根據相似度計算使用者評分。
建立模型的常用機器學習方法:item-based演算法首先需要計算物品之間的相似度,計算相似度的方法有以下幾種:1.貝葉斯網路模型為協同過濾問題提供了乙個概率模型,它在使用者偏好模型構建較快,在使用者偏好資訊變換緩慢的環境中是非常實用的。但是不適用於使用者偏好模型需要快速更新的環境。
2.聚類模型則把協同過濾看作乙個分類問題,它的準確性較差,但是效能較佳(針對於計算量而言,因為一旦聚類完成,只需要分析很小的群組就可以了)。因此,是否預先聚類可能是精準性與吞吐量之間的乙個值得的權衡的問題。
3.基於規則的方法,應用關聯規則發現演算法來尋找共同購買的商品之間的關聯,然後根據商品之間的關聯強度生成商品推薦。
1.基於余弦(cosine-based)的相似度計算
通過計算兩個向量之間的夾角余弦值來計算物品之間的相似性,公式如下:
其中「.」表示兩個向量的點積。
2.基於相關(correlation-based)的相似度計算
計算兩個向量之間的皮爾森(pearson-r)相關係數,公式如下:
其中ru,i表示使用者u對物品i的打分,ri表示第i個物品打分的平均值。
3.修正的余弦(adjusted cosine)相似度計算
基於余弦的相似度計算沒有考慮不同使用者的打分情況,可能有的使用者偏向於給高分,而有的使用者偏向於給低分,該方法通過減去使用者打分的平均值消除不同使用者打分習慣的影響,公式如下:
其中ru表示使用者u打分的平均值。
(ps:基於使用者的協同過濾和基於物品的協同過濾,兩者在計算相似度時最根本的不同是:基於使用者的協同過濾的相似度是沿著矩陣的行進行計算的,而基於物品的協同過濾的相似度的計算,是沿著矩陣的列進行的。)
根據之前算好的物品之間的相似度,接下來對使用者未打分的物品進行**,有兩種**方法:
1.加權求和
將使用者u已打分的物品的分數進行加權求和,權值為各個物品與未打分物品i的相似度,計算得到使用者u對物品i打分,公式如下:
其中為si,n是物品i與物品n的相似度,ru,n為使用者u對物品n的打分。
2.回歸
這種方法和上面加權求和的方法類似,但它不是直接使用相似物品n的評分ru,n,而是使用基於回歸模型的評分近似值。因為用余弦法或pearson關聯法計算相似度時存在乙個誤區,因為不同使用者的打分習慣不同,有的偏向打高分,有的偏向打低分。如果兩個使用者都喜歡一樣的物品,因為打分習慣不同,他們的歐式距離可能比較遠,但他們應該有較高的相似度。在這種情況下如果使用使用者原始的相似物品的打分值進行計算會造成糟糕的**結果。所有一般採取通過用線性回歸的方式重新估算乙個新的ru,n值,運用上面同樣的方法進行**,重新計算ru,n的方法如下:
其中物品n是物品i的相似物品,a和b通過對物品n和i的打分向量進行線性回歸計算得到,e為回歸模型的誤差。(具體怎麼進行線性回歸文章裡面沒有說明,需要查閱另外的相關文獻。)
1.統計精度指標(statistical accuracy metrics)
通過比較訓練集得出的推薦分數和測試集實際使用者評分來評估系統的準確性,計算方法是先對n對評分差進行求和,然後再計算平均值:
mae越低,推薦引擎對使用者評分的**就越準確。
參考文獻:
1.《item-based collaborative filtering recommendation algorithms》
2.
協同過濾推薦演算法 協同過濾推薦演算法總結
推薦演算法具有非常多的應用場景和商業價值,因此對推薦演算法值得好好研究。推薦演算法種類很多,但是目前應用最廣泛的應該是協同過濾類別的推薦演算法,本文就對協同過濾類別的推薦演算法做乙個概括總結,後續也會對一些典型的協同過濾推薦演算法做原理總結。推薦演算法概述 1 基於內容的推薦 這一類一般依賴於自然語...
協同過濾推薦演算法 推薦演算法 基於協同過濾CF
前邊我們已經介紹了推薦演算法裡的基於內容的推薦演算法cb,今天我們來介紹一下基於協同的推薦演算法collaboration filtering cf 協同過濾是乙個利用群體智慧型的乙個演算法,舉乙個簡單的例子,如果放假了你想去北京玩幾天,但是不知道北京都有哪些好玩的,你會怎麼做?你可能會上網查一下的...
協同過濾推薦演算法
協同過濾推薦演算法 分為基於使用者的協同過濾推薦usercf和基於物品的協同過濾推薦itemcf。介紹見 協同過濾的實現步驟 1 指導思想 這種過濾演算法的有效性基礎在於 1 使用者偏好具有相似性,即使用者可分類。這種分類的特徵越明顯,推薦準確率越高 2 物品之間具有相似性,即偏好某物品的人,都很可...