hadoop2.5.2学习14--MR之协同过滤天猫推荐

来源:互联网 发布:知之深爱之切经典 编辑:程序博客网 时间:2024/06/05 11:26

本文根据天猫推荐学习系统过滤算法
&emps; 电子商务网站是个性化推荐系统重要地应用的领域之一,亚马逊就是个性化推荐系统的积极应用者和推广者,亚马逊的推荐系统深入到网站的各类商品,为亚马逊带来了至少30%的销售额。
  不光是电商类,推荐系统无处不在。QQ,人人网的好友推荐;新浪微博的你可能感觉兴趣的人;优酷,土豆的电影推荐;豆瓣的图书推荐;大从点评的餐饮推荐;世纪佳缘的相亲推荐;天际网的职业推荐等。

推荐算法分类:

按数据使用划分:
• 协同过滤算法:UserCF, ItemCF, ModelCF
• 基于内容的推荐: 用户内容属性和物品内容属性
• 社会化过滤:基于用户的社会网络关系

一、协同过滤算法介绍

主要借助协同过滤算法:

  • 1、基于用户的协同过滤算法UserCF
    通过不同用户对物品的评分来评测用户之间的相似性,
    最终:是根据用户的相似性,向用户推荐相似用户购买的物品,
    简单的来说:给用户推荐 和 他兴趣相同的 其他用户 购买的物品
    我们可以根据下图,AC的购买兴趣相似, 我们就任务A,C是相似用户,给A推荐C购买过的物品:这就是基于用户。进行推荐。
    这里写图片描述
  • 2、基于物品的协同过滤算法ItemCF
    通过用户对不同item的评分来评测item之间的相似性,
    基于item之间的相似性做出推荐。
    简单来讲就是:给用户推荐和他之前喜欢的物品相似的物品。
    两点因素决定item的评分:
    • a>物品之间的同现机率
    • b>用户对物品的喜爱评分:
    • 如:虽然两个物品的同现机率很大,但是用户曾今对该物品评价为讨厌,那么即使这个物品和他喜爱的物品同现机率很高,也不会推荐的。
      根据用户的购买情况,物品AC同现的几率最大, 于是向用户C推荐他购买的物品C相似的物品A.
      这里写图片描述

步骤:

  • 1、计算所有物品的同现的二位矩阵,这个是不考虑用户,只是统计所有用户的购物篮中的物品同现次数。
  • 2 、统计每个用户对所有的物品的评分的一维矩阵
  • 3、两个矩阵相乘得到一个一维矩阵,就是对用户的每种物品的推荐向量。

二、天猫数据

这里写图片描述

item_id,user_id,action,vtimei161,u2625,click,2014/9/18 15:03i161,u2626,click,2014/9/23 22:40i161,u2627,click,2014/9/25 19:09i161,u2628,click,2014/9/28 21:35i161,u2629,click,2014/9/27 16:33i161,u2630,click,2014/9/5 18:45i161,u2631,click,2014/9/29 16:57i161,u2632,click,2014/9/24 21:58i161,u2633,click,2014/9/25 22:41i161,u2634,click,2014/9/16 13:30i161,u2635,click,2014/9/20 9:23i161,u2636,click,2014/9/21 1:00i161,u2637,click,2014/9/24 22:51i161,u2638,click,2014/9/27 22:40i161,u2639,click,2014/9/20 10:25i161,u2640,click,2014/9/28 20:36

三、基于Item的协同过滤算法流程

3.1 同现矩阵和用户评分向量, 推荐向量

  Co-occurrence Matrix(同显矩阵)和User Preference Vector(用户评分向量)相乘得到的这个Recommended Vector(推荐向量)的意义
这里写图片描述

  what? 这两个东西相乘实现Item Based Cooperative Filtering(基于物品的协同过滤),一下子真没反应过来.
ItemBased:基于物品的(区分于基于用户的)体现在同现矩阵,把所有用户对物品打过分的记录都拿过来,形成一个个反映物品关联度的矩阵Co-occurrence Matrix。

为什么乘以User Preference Vector用户评分向量就是Recommended Vector(推荐向量)?

还是用R的第三项24.5来做一下解释,
R3的解释:对于用户U商品103的可推荐度。
这点很重要,理解这点就是要知道我们这一系列算法过程在做什么。


我把R3也就是R103的计算用公式表示如下:

    这里写图片描述

从上面可以看到C103i*Ui就是Ui代表用户对i的喜爱度,C103i代表i和103同时出现的次数,i物品和103同时出现得越多C103i越大,用户对i的喜爱度值越大Ui越大,自然R103值就越大,越值得推荐103。

这里写图片描述


  R向量里面的R101, R104,R105和R107这三项值很大,但是我们可以忽略它们应用用户已经对该物品购买过的,也就是已经买个这些了,可以不推荐了,对于用户没有买过的几项里面选出最大(或者TopN)的物品推荐就可以了,

 上面R102,R103,R106里面选一个最大值103,103就是可以推荐的商品了

0 0
原创粉丝点击