MapReduce设计模式》
电子商务网站是个性化推荐系统重要地应用的领域之一
30%的销售额。
不光是电商类,推荐系统无处不在。
QQ,人人网的好友推荐;新浪微博的你可能感觉兴趣的人;优酷,土豆的电影推荐;豆瓣的图书推荐;大从点评的餐饮推荐;世纪佳缘的相亲推荐;天际网的职业推荐等。
思考:
购买成功后:购买了该商品的其他用户购买了以下商品
根据用户的实时行为
搜索成功后:您可能感兴趣的以下商品
根据用户的主观意识
主页或广告:您可能感兴趣的以下商品
根据用户的特征向量
――协同过滤(Collaborative Filtering)算法
UserCF
基于用户的协同过滤,通过不同用户对物品的评分来评测用户之间的相似性,基于用户之间的相似性做出推荐。简单来讲就是:给用户推荐和他兴趣相似的其他用户喜欢的物品。
――协同过滤(Collaborative Filtering)算法
ItemCF
item的协同过滤,通过用户对不同item的评分来评测item之间的相似性,基于item之间的相似性做出推荐。简单来讲就是:给用户推荐和他之前喜欢的物品相似的物品。
Co-occurrence Matrix(同现矩阵)和User Preference Vector(用户评分向量)相乘得到的这个Recommended Vector(推荐向量)
基于全量数据的统计,产生同现矩阵
体现商品间的关联性
每件商品都有自己对其他全部商品的关联性(每件商品的特征)
用户评分向量体现的是用户对一些商品的评分
任一商品需要:
用户评分向量乘以基于该商品的其他商品关联值
求和得出针对该商品的推荐向量
TopN即可
大白话:
通过历史订单交易记录
计算得出每一件商品相对其他商品同时出现在同一订单的次数
so:每件商品都有自己相对全部商品的同现列表
用户会对部分商品有过加入购物车,购买等实际操作,经过计算会得到用户对这部分商品的评分向量列表
使用用户评分向量列表中的分值:
依次乘以每一件商品同现列表中该分值的代表物品的同现值
求和便是该物品的推荐向量
MR源语
去除重复数据
计算用户评分向量
计算同现矩阵
计算乘机
计算求和
TopN
在本机跑的时候,前期需要上传包含数据的文本。
Click:点击
Collect:收藏
Cart:购物车
Apply:付款
同线矩阵:对称的二维数组
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:商品
reduce@key:用户+同现
计算求和
TopN
同现:
用户评分:
101:12
102:6
输出: