概述:
电子商务网站是个性化 推荐系统重要地应用的领域之一。亚马逊就是个性化推荐系统的积极应用者和推广者,亚马逊的推荐系统深入到网站的各类商品,为亚马逊带来了至少30%的销售额。
不光是电商类,推荐系统无处不在。
QQ,人人网的好友推荐;新浪微博的你可能感觉兴趣的人;优酷,土豆的电影推荐;豆瓣的图书推荐;大从点评的餐饮推荐;世纪佳缘的相亲
思考
购买成功后:购买了该商品的其他用户购买了以下商品
根据用户的实时行为
搜索成功后:您可能感兴趣的以下商品
根据用户的主观意识
主页或广告:您可能感兴趣的以下商品
根据用户的特征向量
推荐;天际网的职业推荐等。
推荐系统
协同过滤(Collaborative Filtering)算法
UserCF
基于用户的协同过滤,通过不同用户对物品的评分来评测用户之间的相似性,基于用户之间的相似性做出推荐。简单来讲就是:给用户推荐和他兴趣相似的其他用户喜欢的物品。
ItemCF
基于item的协同过滤,通过用户对不同item的评分来评测item之间的相似性,基于item之间的相似性做出推荐。简单来讲就是:给用户推荐和他之前喜欢的物品相似的物品。
同现矩阵和用户评分向量
Co-occurrence Matrix(同现矩阵)和User Preference Vector(用户评分向量)相乘得到的这个Recommended Vector(推荐向量)
基于全量数据的统计,产生同现矩阵
体现商品间的关联性
每件商品都有自己对其他全部商品的关联性(每件商品的特征)
用户评分向量体现的是用户对一些商品的评分
任一商品需要:
用户评分向量乘以基于该商品的其他商品关联值
求和得出针对该商品的推荐向量
排序取TopN即可
思路解析
通过历史订单交易记录
计算得出每一件商品相对其他商品同时出现在同一订单的次数
so:每件商品都有自己相对全部商品的同现列表
用户会对部分商品有过加入购物车,购买等实际操作,经过计算会得到用户对这部分商品的评分向量列表 查看(点击),收藏,加入购物车,付款
使用用户评分向量列表中的分值:
依次乘以每一件商品同现列表中该分值的代表物品的同现值
求和便是该物品的推荐向量
计算步骤
去除重复数据
计算用户评分向量
计算同现矩阵
计算乘积
计算求和
计算取TopN
原始数据
MapReduce(k:v,原语)
i161,u2625,click,2014/9/18 15:03
i161,u2626,click,2014/9/23 22:40
i161,u2627,click,2014/9/25 19:09
i161,u2628,click,2014/9/28 21:35
用户评分向量(所有用户对所有商品的评分)
同现矩阵
乘积计算
求和计算
去除重复数据
计算用户评分向量
key:用户
value:商品:评分 列表
计算同现矩阵
将每个用户的平分向量列表中的商品,两两组合输出(笛卡儿积),sum次数
key:商品A:商品B
key:商品B:商品A
value:1
计算乘积
按商品分组
同现矩阵:A商品同现列表
评分矩阵:所有用户对A商品的评分
乘机逻辑:不同同现商品下,A商品的乘机
but:计算商品A对于用户甲的推荐向量需要满足:
商品A同现商品各自的评分乘机,再求和
map@key:商品
map@val:
reduce@key:用户+同现
reduce@val:map@key+乘机
计算求和
计算取TopN
同现:
101:101 3
101:102 2
101:103 5
102:101 3
102:102 2
102:103 5
用户评分:
101:12
102:6