一步一步学推荐系统(三)——推荐系统通用架构及通用算法
推荐架构
- Offline Recommend(离线层)
- 作用:对海量数据进行离线加工
- 工具:Hadoop/Spark
- Nearline Recommend(近线层)
- 作用:利用流式处理技术对实时产生的数据进行加工
- 工具:Storm/Spark
- Online Recommend(在线层)
- 作用:负责在线运算,处理简单的运算逻辑
- 工具:Webpy/Java
- 基础数据采集
- 工具:MongoDB/HDFS
- 基础数据处理
- MapReduce/Spark
- 数据持久化
- Redis/MongoDB/Memcache
推荐算法
算法一:CB算法
CB算法(Content Base):基于内容的推荐算法
算法二:User Based CB算法
CB算法(Content Base):入User属性的基于内容推荐算法
算法三:User Based CF算法
CF算法(Collaboration Filtering)基于协同的推荐算法
- User Based CF
- Item Based CF
通过User-Item矩阵计算两个用户之间的相似度
假设:
- 用户喜欢那些跟他有相似爱好的用户喜欢的东西
- 具有相似爱好的用户在未来也具有相似爱好
方法:
- 给定用户-商品集合N(u),他们和u具有相似爱好
- 将N(u)喜欢的物品推荐给u
算法四:Item Based CF算法
通过User-Item矩阵计算两个产品之间的相似度
假设:
- 用户喜欢跟他过去喜欢的物品相似的物品
- 历史上相似的物品在未来也相似
方法:
- 给定用户u,找到他过去喜欢的物品的集合R(u)
- 将R(u)相似的物品推荐给u
User Based CF 和 Item Based CF 区别
CF算法的优缺点