/recommendSys

推荐项目(实时推荐和离线推荐)

Primary LanguageJava

recommendSys

  • 推荐系统
  • 离线计算和实时计算

本项目主要分为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