協同過濾演算法

2021-09-02 01:19:27 字數 1955 閱讀 9505

演算法思想:

尋找與目標使用者相似使用者,然後將相似使用者買過但目標使用者沒有買過的商品推薦給目標使用者;

舉個栗子:由於目標使用者與其相似使用者非常相似(比如大部分的考研學生都購買《肖秀榮八套卷》),現在我們的目標使用者購買了大量的考研資料但還沒有買《八套卷》,除了《八套卷》目標使用者與考研學生相似度十分高,那麼我們就可以認為目標使用者也是考研學生,作為考研學生那麼他肯定需要《八套卷》系統推薦《八套卷》給他,很大概率上他就會購買;

演算法步驟:

定義使用者屬性矩陣

計算使用者之間相似度

基於相似度閾值確定相似使用者

根據相似使用者購買行為給目標使用者推薦

演算法需要完成的任務:

計算使用者相似度,找到相似鄰居;

推斷使用者-專案矩陣中空格處的值(矩陣空格表示使用者未購買過改商品或購買了該商品卻沒有評價),將相似使用者評價不為空但目標使用者評價為空的專案為目標使用者推薦;

演算法存在的問題:

稀疏資料:現實交易平台中,商品數量龐大而使用者購買數量有限,且有效評價也十分有限,造成使用者-專案矩陣非常稀疏;

目前的基本解決方案:

使用皮爾遜相似度係數計算相似度;

考慮共同打分物品的數目;

對打分進行歸一化處理,減少誤差;

設定相似度閾值,找出相似度在一定範圍內的多個鄰居進行綜合推薦;

基於使用者的協同過濾演算法不普及的原因:

稀疏資料導致計算量過於龐大;

人的喜好和需求隨著時間是乙個不斷變化的過程,基於使用者的推薦不符合長期的推薦需求;

演算法思想:

計算物品之間的相似度,如果使用者買了物品a,物品a與物品b相似,那麼基於物品的協同過濾演算法就會將物品b推薦給該使用者;

該方法很大程度上減少了計算量,基於物品的話還可以線下計算,線上推薦,極大的提公升了計算效能;

舉個栗子

還是考研的栗子,比如某考研同學購買了《肖秋榮八套卷》,《肖秀榮四套卷》與《八套卷》十分相似,那麼該同學可能也想買《四套卷》,那麼系統就會把《四套卷》推薦給該同學;

演算法步驟:

建立使用者專案矩陣;

計算使用者評分平均值a;

計算物品之間相似度(皮爾遜相似度係數);

演算法存在的問題:

基於物品的推薦也存在冷啟動的問題;

縱觀上述兩種演算法,都存在冷啟動的問題;

使用者冷啟動解決方案:

引導使用者表達屬性,比如註冊時引導使用者標記喜歡的方向;

充分利用現有的開放資料平台;

推薦排行榜單,推薦大部分人喜歡的東西;

物品冷啟動解決方案:

打標籤,幫助分類;

主題模型分析;

文字分析,分析其可能屬於或相關的類別;

兩種協同過濾演算法的比較

基於使用者的協同過濾演算法

基於物品的協同過濾演算法

效能適用於使用者較少的情景下

適用於物品數量遠小於使用者數量的情景

領域使用者個性化需求較低時適用

適用於個性化推薦

實時性當使用者有了新行為,推薦系統不一定能實時反映更新

一旦使用者有了新行為,系統可以及時更新推薦結果

冷啟動由於使用者相似度是離線計算的,當新使用者的進來之後系統的反映週期會很長;

新物品上線後,只要有乙個使用者對其產生行為,系統可以及時捕捉並更新;

新使用者只要對乙個物品發生行為,系統就可以靈敏捕捉並更新推薦結果;新物品的領啟動相似;

但是無法在不離線更新相似度的情況下進行推薦;

推薦可信度

相似度高的使用者不一定相似,所以可信度較低

根據使用者歷史推薦,可信度較高

協同過濾演算法

3種形式的協同過濾 collaborative filtering 演算法 1 user based 相同 相似 使用者的喜好相同 2 item based 能夠引起使用者興趣的專案,必定與其之前評分高的專案相似 3 model based 先用歷史資料得到乙個模型,再用此模型進行 參考 這個位址是...

協同過濾演算法

1.表示使用者行為矩陣,即統計使用者購買某種商品型別的數量 public double getnumbycustomer customer customer return vectore 2.用余弦距離計算每個使用者與其它使用者的行為相似度 下面 是兩個使用者之間的相似度,進行遍歷就可以獲取全部相似...

協同過濾演算法

乙個人想看電影的時候常常會思考要看什麼電影呢。這個時候他可能會問周圍愛好的人求推薦。現在社會每天都會產生海量的資訊。面對這麼多資訊好多人都不知道什麼資訊是自己需要的。推薦系統正是起了這麼乙個作用。推薦系統的應用隨處可見。網路購物是乙個典型的例子,電子商務的運營商往往會根據使用者在 的行為推薦使用者可...