recommendSys

Introduction: 推荐项目(实时推荐和离线推荐)
More: Author   ReportBugs   
Tags:
  • 推荐系统
  • 离线计算和实时计算

本项目主要分为 WEB(产生数据)、离线和实时三大模块

WEB(产生数据即用户的行为数据)

  1. 用户对物品的操作(查看,浏览,购买)ugcLOG
  2. 通过 flume 采集 ugcLOG 日志到 HDFS

离线处理(hadoop+mahout)基于用户和物品的协同过滤

  1. 通过定时(oozie、crontab)任务(mr),处理 HDFS 上面的 ugcLOG
  2. 清理后的数据(用户 id,itemID,评分),给 mahout
  3. mahout 清理之后就是每个用户对应的 item 物品列表
  4. 清洗后的结果数据,然后通过 sqoop 导入到数据库 mysql 中或者放入到 hive 中(web 展现或者交给数据分析人员)

  5. 当天的数据:当日凌晨截至到统计时间点的数据

  6. 之前的历史数据:截至到今天凌晨的历史数据

实时处理(kafka+stome)基于用户和物品标签

  1. 收集:收集用户的特征向量(用户和标签的矩阵),(userID tag1 tag2)
  2. 收集:收集物品的特征向量(物品和标签的矩阵),(itemID tag1 tag2 tag5)
  3. 计算:然后通过 1,2 计算出用户和物品的特征值(矩阵乘积)
  4. 过滤:通过 userID item 列表过滤掉已经产生行为的物品/通过运营决策过滤/用户自定义过滤
  5. 排序:topN(包括自定义权重,比如想在周末推销某个产品等)

  6. 通过 web 收集特征行为数据(用户标签,评论数据)

  7. 把收集的数据实时传入 kafka
  8. 特征行为数据和用户属性特征数据(数据库)共同组装成用户特征向量
  9. 用户特征向量和物品的特征矩阵(用户和系统打的标签,权重等)计算出矩阵乘积
  10. 过滤,计算 topN

博客地址

小小默:http://blog.xiaoxiaomo.com

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools