recommendSys
Introduction: 推荐项目(实时推荐和离线推荐)
Tags:
- 推荐系统
- 离线计算和实时计算
本项目主要分为 WEB(产生数据)、离线和实时三大模块
WEB(产生数据即用户的行为数据)
- 用户对物品的操作(查看,浏览,购买)ugcLOG
- 通过 flume 采集 ugcLOG 日志到 HDFS
离线处理(hadoop+mahout)基于用户和物品的协同过滤
- 通过定时(oozie、crontab)任务(mr),处理 HDFS 上面的 ugcLOG
- 清理后的数据(用户 id,itemID,评分),给 mahout
- mahout 清理之后就是每个用户对应的 item 物品列表
清洗后的结果数据,然后通过 sqoop 导入到数据库 mysql 中或者放入到 hive 中(web 展现或者交给数据分析人员)
当天的数据:当日凌晨截至到统计时间点的数据
- 之前的历史数据:截至到今天凌晨的历史数据
实时处理(kafka+stome)基于用户和物品标签
- 收集:收集用户的特征向量(用户和标签的矩阵),(userID tag1 tag2)
- 收集:收集物品的特征向量(物品和标签的矩阵),(itemID tag1 tag2 tag5)
- 计算:然后通过 1,2 计算出用户和物品的特征值(矩阵乘积)
- 过滤:通过 userID item 列表过滤掉已经产生行为的物品/通过运营决策过滤/用户自定义过滤
排序:topN(包括自定义权重,比如想在周末推销某个产品等)
通过 web 收集特征行为数据(用户标签,评论数据)
- 把收集的数据实时传入 kafka
- 特征行为数据和用户属性特征数据(数据库)共同组装成用户特征向量
- 用户特征向量和物品的特征矩阵(用户和系统打的标签,权重等)计算出矩阵乘积
- 过滤,计算 topN
