麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

基于用戶的協同過濾推薦算法原理和實現

2019-11-17 02:24:54
字體:
來源:轉載
供稿:網友

基于用戶的協同過濾推薦算法原理和實現

在推薦系統眾多方法中,基于用戶的協同過濾推薦算法是最早誕生的,原理也較為簡單。該算法1992年提出并用于郵件過濾系統,兩年后1994年被 GroupLens 用于新聞過濾。一直到2000年,該算法都是推薦系統領域最著名的算法。

本文簡單介紹基于用戶的協同過濾算法思想以及原理,最后基于該算法實現園友的推薦,即根據你關注的人,為你推薦博客園中其他你有可能感興趣的人。

基本思想

俗話說“物以類聚、人以群分”,拿看電影這個例子來說,如果你喜歡《蝙蝠俠》、《碟中諜》、《星際穿越》、《源代碼》等電影,另外有個人也都喜歡這些電影,而且他還喜歡《鋼鐵俠》,則很有可能你也喜歡《鋼鐵俠》這部電影。

所以說,當一個用戶 A 需要個性化推薦時,可以先找到和他興趣相似的用戶群體 G,然后把 G 喜歡的、并且 A 沒有聽說過的物品推薦給 A,這就是基于用戶的系統過濾算法。

原理

根據上述基本原理,我們可以將基于用戶的協同過濾推薦算法拆分為兩個步驟:

1. 找到與目標用戶興趣相似的用戶集合

2. 找到這個集合中用戶喜歡的、并且目標用戶沒有聽說過的物品推薦給目標用戶

1. 發現興趣相似的用戶

通常用 Jaccard 公式或者余弦相似度計算兩個用戶之間的相似度。設 N(u) 為用戶 u 喜歡的物品集合,N(v) 為用戶 v 喜歡的物品集合,那么 u 和 v 的相似度是多少呢:

Jaccard 公式:

余弦相似度:

假設目前共有4個用戶: A、B、C、D;共有5個物品:a、b、c、d、e。用戶與物品的關系(用戶喜歡物品)如下圖所示:

如何一下子計算所有用戶之間的相似度呢?為計算方便,通常首先需要建立“物品—用戶”的倒排表,如下圖所示:

然后對于每個物品,喜歡他的用戶,兩兩之間相同物品加1。例如喜歡物品 a 的用戶有 A 和 B,那么在矩陣中他們兩兩加1。如下圖所示:

計算用戶兩兩之間的相似度,上面的矩陣僅僅代表的是公式的分子部分。以余弦相似度為例,對上圖進行進一步計算:

到此,計算用戶相似度就大功告成,可以很直觀的找到與目標用戶興趣較相似的用戶。

2. 推薦物品

首先需要從矩陣中找出與目標用戶 u 最相似的 K 個用戶,用集合 S(u, K) 表示,將 S 中用戶喜歡的物品全部提取出來,并去除 u 已經喜歡的物品。對于每個候選物品 i ,用戶 u 對它感興趣的程度用如下公式計算:

其中 rvi 表示用戶 v 對 i 的喜歡程度,在本例中都是為 1,在一些需要用戶給予評分的推薦系統中,則要代入用戶評分。

舉個例子,假設我們要給 A 推薦物品,選取 K = 3 個相似用戶,相似用戶則是:B、C、D,那么他們喜歡過并且 A 沒有喜歡過的物品有:c、e,那么分別計算 p(A, c) 和 p(A, e):

看樣子用戶 A 對 c 和 e 的喜歡程度可能是一樣的,在真實的推薦系統中,只要按得分排序,取前幾個物品就可以了。

園友推薦

在社交網絡的推薦中,“物品”其實就是“人”,“喜歡一件物品”變為“關注的人”,這一節用上面的算法實現給我推薦 10 個園友。

1. 計算 10 名與我興趣最相似的園友

由于只是為我一個人做用戶推薦,所以沒必要建立一個龐大的用戶兩兩之間相似度的矩陣了,與我興趣相似的園友只會在這個群體產生:我關注的人的粉絲。除我自己之外,目前我一共關注了23名園友,這23名園友一共有22936個唯一粉絲,我對這22936個用戶逐一計算了相似度,相似度排名前10的用戶及相似度如下:

昵稱關注數量共同數量相似度
藍楓葉1938540.373001923296126
FBI080703330.361157559257308
魚非魚330.361157559257308
Lauce330.361157559257308
藍色蝸牛330.361157559257308
shanyujin330.361157559257308
Mr.Huang640.340502612303499
對世界說你好640.340502612303499
strucoder2880.31524416249564
Mr.Vangogh430.312771621085612

2. 計算對推薦園友的興趣度

這10名相似用戶一共推薦了25名園友,計算得到興趣度并排序:

排序昵稱興趣度
1wolfy0.373001923296126
2Artech0.340502612303499
3Cat Chen0.340502612303499
4WXWinter(冬)0.340502612303499
5DanielWise0.340502612303499
6一路前行0.31524416249564
7Liam Wang0.31524416249564
8usharei0.31524416249564
9CoderZh0.31524416249564
10博客園團隊0.31524416249564
11深藍色右手0.31524416249564
12Kinglee0.31524416249564
13Gnie0.31524416249564
14riccc0.31524416249564
15Braincol0.31524416249564
16滴答的雨0.31524416249564
17Dennis Gao0.31524416249564
18劉冬.NET0.31524416249564
19李永京0.31524416249564
20浪端之渡鳥0.31524416249564
21李濤0.31524416249564
22阿不0.31524416249564
23JK_Rush0.31524416249564
24xiaotie0.31524416249564
25Leepy0.312771621085612

只需要按需要取相似度排名前10名就可以了,不過看起來整個列表的推薦質量都還不錯!

參考

項亮:《推薦系統實踐》

本文地址:http://www.companysz.com/technology/p/4467895.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中国大陆高清aⅴ毛片 | 369看片你懂的小视频在线观看 | 成人啪啪18免费网站 | 免费久久久久 | 成人不卡| 亚洲性生活免费视频 | 国产免费一区二区三区视频 | 亚洲第一男人天堂 | 久久精品视频7 | 看片一区| 久久99精品国产99久久6男男 | 亚洲va国产va| 婷婷久久青草热一区二区 | 久久国产精品网 | 久国久产久精永久网页 | 97久久精品一区二区三区观看 | 激情久久免费视频 | 一级成人免费 | 91中文在线观看 | 精品一区二区三区毛片 | 日韩欧美电影一区二区三区 | 国产精品久久久久久婷婷天堂 | 欧美一级毛片免费观看 | 老师你怎么会在这第2季出现 | 蜜桃成品人免费视频 | 久久一区三区 | 亚洲一区二区不卡视频 | 亚洲成人精品国产 | 成人羞羞在线观看网站 | 91视频久久| 欧洲成人综合网 | 91精品国产九九九久久久亚洲 | 久久久久久久久久久久免费 | 黄色av网站免费 | 久久久久久中文字幕 | 久久国产一级片 | 插插操 | 欧美日韩夜夜 | 成人在线视频播放 | 天天色人人爱 | 国产视频软件在线 |