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