推荐系统UserCF和ItemCF

一、UserCF

UserCF(User Collaboration Filter),又称 基于用户的协同过滤算法。

协同过滤:就是指众多的用户可以齐心协力,通过不断地和网站互动,使 自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。

而基于用户是指通过分析用户对商品的行为(如浏览、收藏、加入购物车、购买……)计算出哪些用户是兴趣相似的,然后把兴趣相似的用户所关注的商品相互推荐。

举个例子:

用户/商品 商品1 商品2 商品3 商品4
用户A
用户B
用户C 推荐

由上表可以看出用户A和用户C比较相似,所以把用户A感兴趣的商品4推荐给用户C。

步骤一般分为两步:

  1. 计算物品之间的相似度
  2. 根据物品的相似度和用户的历史行为给用户生成推荐列表

再举个详细点的例子:

假设我们这么一些数据(用户(字母) 商品(数字)_行为,):

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_浏览

我们可以给不同的行为赋予不同的评分(假设浏览1分、收藏3分、加入购物车5分、购买10分),得到以下数据:

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

这样看着比较累,而且也不方便计算,可以把它转换为矩阵形式,称之为评分矩阵

用户/商品 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

计算相似度

计算相似度的方式有很多,如余弦相似度、切比雪夫距离、欧里几得距离、曼哈顿距离、杰卡德距离、皮尔森系数……计算相似度的方式不同计算出来的相似度也不同。

这里只介绍余弦相似度,其他的请自行百度。

假设有二维向量a,b如下图所示


则他们的余弦相似度为


推广到多维向量a(a1,a2,a3,a4……),b(b1,b2,b3,b4……)


有了公式就能计算出用户相似度了:


这些用户之间的相似度可以转换为一个矩阵,称之为相似度矩阵

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 评分矩阵

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

由于用户已经对推荐列表中的一些商品有过行为,所以还要把这些商品给滤除掉

得到最终的推荐列表,其数值代表的意义是用户对商品的感兴趣程度:

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),又称 基于商品(物品)的协同过滤算法。

其原理与UserCF类似,是基于用户对商品的偏好找到相似的商品,然后推荐相似的商品品给他。
计算过程也非常相似,区别在于计算时把UserCF的评分矩阵转置,再计算商品与商品之间的相似度得到商品之间的相似度矩阵
最后的推荐列表 = 商品之间的相似度矩阵 X 评分矩阵转置

UserCF与ItemCF的对比

对于电子商务,用户数量一般大大超过商品数量,此时Item CF的计算复杂度较低。
比如在购书网站上,当你看一本书的时候,推荐引擎会给你推荐相关的书籍,这个推荐的重要性进进超过了网站首页对该用户的综合推荐。可以看到,在这种情况下,Item CF 的推荐成为了引导用户浏览的重要手段。基于物品的协同过滤算法,是目前电子商务采用最广泛的推荐算法。

在非社交网络的网站中,内容内在的联系是很重要的推荐原则,它比基于相似用户的推荐原则更加有效。在社交网络站点中,User CF 是一个更好错的选择,User CF 加上社会网络信息,可以增加用户对推荐解释的信服程度。

推荐多样性和精度,各有千秋。


参考:
Spark基于用户的协同过滤算法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

推荐系统_itemCF和userCF
http://blog.csdn.net/u011263983/article/details/51498458

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容