一、前述
推荐系统是企业中常用的技术,所以系统的掌握推荐系统的知识是很有必要的。本专栏主要讲述手机APP下载的项目。
常用的推荐方法有两个,分别是基于物品的推荐和基于用户的推荐。
基于用户的推荐原理是:跟你喜好相似的人喜欢的东西你也很有可能喜欢(userBaseCF)。
基于物品的推荐原理是:跟你喜欢的东西类似的东西你也可能喜欢(itemBaseCF)。
我们这里用到的是itembaseCF,本质是依据特征找用户喜好规律。
显式的用户反馈:这类是用户在网站上自然浏览或者使用网站以外,显式的提供反馈信息,例如用户对物品的评分,或者对物品的评论。
隐式的用户反馈:这类是用户在使用网站时产生的数据,隐式的反应了用户对物品的喜好,例如用户购买了某物品,用户查看了某物品的信息等等。
本项目基于隐式的用户反馈。
二、协同过滤算法详述
结论:对于用户A,根据用户的历史偏好,这里只计算得出一个邻居用户C,然后将用户C喜欢的物品D推荐给用户A
结论:基于用户的推荐(长虚线)---1和5比较相似,5买了104商品,所以把104推荐给用户1。
基于物品的推荐(短虚线)---101物品和104物品比较相似,所以当用户买了101,把104也推荐给他。
三、lambda架构(所有推荐系统的父架构)
四、本文系统架构
lmbda架构(手机APP下载)
解释:1.选用逻辑回归算法原因是用户要么下载,要么不下载。
2.生成特征索引(实际上是一个文本文件)的原因是格式化测试数据,也是相当于降维,当一个userId进来时找到推荐服务,然后通过服务路由去查找HBase中的数据,并根据特征索引来取对应的特征,所以这一步相当于一个降维。
线上架构(测试集架构):
关联特征:保存的是同现矩阵。
流程:核心思想(计算用户对所有APP(除去历史下载部分)的评分,按分值排序,然后取topn)
问题:
五、需求分析(架构推荐方案)
1、数据清洗(得到训练数据)
2、算法建模(得到模型结果)
3、模型使用(得到推荐结果)
4、结果评估(推荐结果评估)