一彻况、UserCF
UserCF(User Collaboration Filter),又稱 基于用戶的協(xié)同過濾算法。
協(xié)同過濾:就是指眾多的用戶可以齊心協(xié)力倘待,通過不斷地和網(wǎng)站互動(dòng)令漂,使 自己的推薦列表能夠不斷過濾掉自己不感興趣的物品膝昆,從而越來越滿足自己的需求。
而基于用戶是指通過分析用戶對(duì)商品的行為(如瀏覽叠必、收藏荚孵、加入購物車、購買……)計(jì)算出哪些用戶是興趣相似的纬朝,然后把興趣相似的用戶所關(guān)注的商品相互推薦收叶。
舉個(gè)例子:
用戶/商品 | 商品1 | 商品2 | 商品3 | 商品4 |
---|---|---|---|---|
用戶A | √ | √ | √ | |
用戶B | √ | |||
用戶C | √ | √ | 推薦 |
由上表可以看出用戶A和用戶C比較相似,所以把用戶A感興趣的商品4推薦給用戶C共苛。
步驟一般分為兩步:
- 計(jì)算物品之間的相似度
- 根據(jù)物品的相似度和用戶的歷史行為給用戶生成推薦列表
再舉個(gè)詳細(xì)點(diǎn)的例子:
假設(shè)我們這么一些數(shù)據(jù)(用戶(字母) 商品(數(shù)字)_行為判没,):
A 1_瀏覽
A 3_加入購物車
A 4_收藏
B 2_收藏
B 5_收藏
C 1_加入購物車
C 6_購買
D 1_購買
D 5_加入購物車
E 3_加入購物車
E 4_瀏覽
F 2_加入購物車
F 3_收藏
F 6_瀏覽
我們可以給不同的行為賦予不同的評(píng)分(假設(shè)瀏覽1分、收藏3分俄讹、加入購物車5分哆致、購買10分),得到以下數(shù)據(jù):
A 1_1
A 3_5
A 4_3
B 2_3
B 5_3
C 1_5
C 6_10
D 1_10
D 5_5
E 3_5
E 4_1
F 2_5
F 3_3
F 6_1
這樣看著比較累患膛,而且也不方便計(jì)算摊阀,可以把它轉(zhuǎn)換為矩陣形式,稱之為評(píng)分矩陣:
用戶/商品 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
A | 1 | 5 | 3 | |||
B | 3 | 3 | ||||
C | 5 | 10 | ||||
D | 10 | 5 | ||||
E | 5 | 1 | ||||
F | 5 | 3 | 1 |
計(jì)算相似度
計(jì)算相似度的方式有很多,如余弦相似度踪蹬、切比雪夫距離胞此、歐里幾得距離、曼哈頓距離跃捣、杰卡德距離漱牵、皮爾森系數(shù)……計(jì)算相似度的方式不同計(jì)算出來的相似度也不同。
這里只介紹余弦相似度疚漆,其他的請(qǐng)自行百度酣胀。
假設(shè)有二維向量a,b如下圖所示
則他們的余弦相似度為
推廣到多維向量a(a1,a2,a3,a4……)刁赦,b(b1,b2,b3,b4……)
有了公式就能計(jì)算出用戶相似度了:
這些用戶之間的相似度可以轉(zhuǎn)換為一個(gè)矩陣,稱之為相似度矩陣
A | B | C | D | E | F | |
---|---|---|---|---|---|---|
A | 1 | 0 | 0.08 | 0.15 | 0.93 | 0.43 |
B | 0 | 1 | 0 | 0.32 | 0 | 0.6 |
C | 0.08 | 0 | 1 | 0.4 | 0 | 0.15 |
D | 0.15 | 0.32 | 0.4 | 1 | 0 | 0 |
E | 0.93 | 0 | 0 | 0 | 1 | 0.5 |
F | 0.43 | 0.6 | 0.15 | 0 | 0.5 | 1 |
推薦列表 = 相似度矩陣 X 評(píng)分矩陣
1 | 2 | 3 | 4 | 5 | 6 | |
---|---|---|---|---|---|---|
A | 2.9 | 2.2 | 11.0 | 3.9 | 0.8 | 1.2 |
B | 3.2 | 6.0 | 1.8 | 0 | 4.6 | 0.6 |
C | 9.1 | 0.8 | 0.9 | 0.2 | 2.0 | 10.2 |
D | 11.2 | 1.0 | 0.8 | 0.5 | 6.0 | 4.0 |
E | 0.9 | 2.5 | 11.2 | 3.8 | 0 | 0.5 |
F | 1.2 | 6.8 | 7.7 | 1.8 | 1.8 | 2.5 |
由于用戶已經(jīng)對(duì)推薦列表中的一些商品有過行為闻镶,所以還要把這些商品給濾除掉
得到最終的推薦列表甚脉,其數(shù)值代表的意義是用戶對(duì)商品的感興趣程度:
1 | 2 | 3 | 4 | 5 | 6 | |
---|---|---|---|---|---|---|
A | 2.2 | 0.8 | 1.2 | |||
B | 3.2 | 1.8 | 0 | 0.6 | ||
C | 0.8 | 0.9 | 0.2 | 2.0 | ||
D | 1.0 | 0.8 | 0.5 | 4.0 | ||
E | 0.9 | 2.5 | 0 | 0.5 | ||
F | 1.2 | 1.8 | 1.8 |
二、ItemCF
ItemCF(Item Collaboration Filter)铆农,又稱 基于商品(物品)的協(xié)同過濾算法牺氨。
其原理與UserCF類似,是基于用戶對(duì)商品的偏好找到相似的商品墩剖,然后推薦相似的商品品給他猴凹。
計(jì)算過程也非常相似,區(qū)別在于計(jì)算時(shí)把UserCF的評(píng)分矩陣轉(zhuǎn)置岭皂,再計(jì)算商品與商品之間的相似度得到商品之間的相似度矩陣郊霎。
最后的推薦列表 = 商品之間的相似度矩陣 X 評(píng)分矩陣轉(zhuǎn)置
UserCF與ItemCF的對(duì)比
對(duì)于電子商務(wù),用戶數(shù)量一般大大超過商品數(shù)量蒲障,此時(shí)Item CF的計(jì)算復(fù)雜度較低歹篓。
比如在購書網(wǎng)站上,當(dāng)你看一本書的時(shí)候揉阎,推薦引擎會(huì)給你推薦相關(guān)的書籍庄撮,這個(gè)推薦的重要性進(jìn)進(jìn)超過了網(wǎng)站首頁對(duì)該用戶的綜合推薦”凶眩可以看到洞斯,在這種情況下,Item CF 的推薦成為了引導(dǎo)用戶瀏覽的重要手段坑赡±尤纾基于物品的協(xié)同過濾算法,是目前電子商務(wù)采用最廣泛的推薦算法毅否。
在非社交網(wǎng)絡(luò)的網(wǎng)站中亚铁,內(nèi)容內(nèi)在的聯(lián)系是很重要的推薦原則,它比基于相似用戶的推薦原則更加有效螟加。在社交網(wǎng)絡(luò)站點(diǎn)中徘溢,User CF 是一個(gè)更好錯(cuò)的選擇,User CF 加上社會(huì)網(wǎng)絡(luò)信息捆探,可以增加用戶對(duì)推薦解釋的信服程度然爆。
推薦多樣性和精度,各有千秋黍图。
參考:
Spark基于用戶的協(xié)同過濾算法https://www.toutiao.com/a6498952374487368205/?tt_from=mobile_qq&utm_campaign=client_share&app=news_article&utm_source=mobile_qq&iid=15393016323&utm_medium=toutiao_android
推薦系統(tǒng)_itemCF和userCF
http://blog.csdn.net/u011263983/article/details/51498458