程序猿酋长进阶之路

推荐:

电影推荐系统

使用git进行代码版本管理,使用markdown编写文档,

技术站

前端:angular
后端:Spring,ES,MongoDB,Redis,
数据端:Flume -> Kafka -> Spark Streaming -> MongoDB

1、使用Flume收集用户日志,例如评分行为、点击行为、浏览行为。
2、Kafka实时读取Flume收集的日志信息。
3、Spark Streaming消费kafka队列的数据。
4、使用ALS算法对评分矩阵做矩阵分解,根据电影的隐语义特征计算电影之间的相似度,并将相似度做倒排索引,例如{‘movieid1’:[(‘movieid2’,‘0.99’), …]},并将倒排数据持久化到MongoDB。
5、利用电影的标签数据,使用TF/IDF来计算电影之间的相似度,同样使用倒排的思路持久化道MongoDB。
6、实时推荐:利用电影的相似度倒排,根据用户最新的电影评分或者点击行为来做推荐,使用Spark Streaming来实时计算推荐优先级,然后存储到Redis中,提高用户的访问体验。
7、使用spark计算每个门类的平均评分最高的电影来解决冷启动问题。
8、使用spark将日志数据做分析和处理,然后持久化道MongoDB、ES等数据库中,实现data loader功能。
9、使用了业界广泛使用的movielens数据集,并了解过lastfm、netflix等著名的数据集。
10、将推荐系统引擎模块化:als矩阵分解的相似度计算、基于tfidf的相似度计算、实时推荐模块,每一个引擎都会产生一个推荐列表,对不同的引擎赋予不同的权重,然后合并列表,产生推荐数据。
11、通过A/B测试来评估推荐结果
12、优化spark的计算效率,比如将一些数据进行.cache()操作缓存,对某些数据做broadcast广播到其他节点,加快运算。
13、使用git进行版本管理,远程代码仓库使用自己搭建的gitlab

前端埋点 -> 阿里云oss -> shell/python脚本下载日志数据 -> 转换成hdfs -> spark离线计算

logging.info()

解决业务场景中出现的数据倾斜问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值