SparrowRecSys电影推荐系统项目(一)
前言
SparrowrecSys推荐系统是王喆老师非常好的一个项目实战,我打算把这个项目弄懂并深入挖掘自己喜欢的领域。
一、SparrowSystems总体架构图
这个架构图逻辑清晰,将整个推荐系统分为3部分:数据部分、模型部分、前端部分。
二、数据部分
推荐系统数据部分主要负责的是用户、物品、场景信息的收集,根据处理数据量和实时性不同,按照实时性强弱进行排序,主要有三种数据处理方式:客户端与服务器端实时数据处理、流处理平台实时数据处理、大数据平台离线数据处理。
主要大数据平台:Spark、Flink.
大数据平台输入:推荐系统日志、物品和用户数据信息。
疑问:日志是怎么生成的?物品和用户数据信息要被处理成什么格式?
大数据平台输出:
1.训练阶段:生成模型所需要的样本数据,用于算法模型的训练和评估
2.推断阶段:生成线上服务层用户特征、物品特征和一部分场景特征,用于推荐系统线上推断。
场景特征:上下文信息,比如天气。
三、模型部分
推荐系统模型部分由三部分组成:召回层(粗排)、排序层(精排)、补充策略与算法层。
召回层:召回层一把采用简单高效的算法模型从还海量的候选集中召回用户可能感兴趣的物品,召回的物品在几百量级。
排序层:排序层将召回层筛选的物品进行进行精排序,最终得到物品量级在几十量级。
补充策略与算法层:为了兼顾结果的多样性、流行度、新鲜度等指标,对精排后的物品进行一定的调整,得到最终用户可见推荐列表。
总结:推荐模型接受所有物品候选集到最后产生推荐列表,这一过程叫做模型服务过程,模型服务过程中的参数需要通过模型训练确定模型结构、结构中不同参数权重的具体数值,以及相关模型算法策略中的参数取值。
模型训练方法:
1.离线训练:利用全量样本和特征,使模型逼近全局最优点。
2.在线更新:实时消化新的数据样本,更快地反应新的数据变化趋势,满足模型实时性的要求。
模型测试方式:
1.离线测试:Holdout检验、交叉检验、自助法、时间切割法、Replay
2.在线测试:A/B test