1 推荐算法
1.1 推荐模型构建流程
1.1.1 使用什么数据
- 显性数据:Rating,Comments
- 隐形数据: Order history,Cart events,Page views,Click-thru,Search log
1.1.2 使用什么特征
- 一个给定的商品,可能被拥有类似品味或需求的用户购买
- 使用用户行为数据描述商品
1.1.2.1 数据表示
- 将所有用户行为合并在一起,形成一个user-item矩阵
1.1.3 使用什么算法
1.2 推荐算法概述
1.2.1 推荐算法概述
- 基于内容过滤:从信息检索,和文本检索发展而来。基于商品描述及用户喜好描述,为用户推荐商品。(基于检索行为)
- 协同过滤:基于用户行为为用户推荐感兴趣的商品。行为可以是过往的交易行为和商品评分,这种方式不需要显性的属性信息(会根据其他相似用户进行推荐)
- 混合推荐
1.2.2 基于内容过滤存在的弊端
- 需要了解商品内容:需要人工或自动标注信息,商品内容不能反映所有特点
- 冷启动问题:需要花时间学习哪些内容或feature对用户而言是重要的
- 如果用户兴趣点改变了呢
1.2.3 基于内容推荐和协同推荐对比
1.2.4 基于协同过滤的推荐算法
- 协同过滤算法:基于用户行为的推荐。行为可以是以往的交易行为和商品行为,这种方式不需要显性的属性信息
- 协同过滤分类;最邻近方法,借助商品的关系或者用户的关系。 基于模型的方法,用隐含变量刻画商品
1.2.5 协同过滤之最邻近方法
- 最邻近方法:“跟你喜好相似的人喜欢的东西你也很有可能细化”或“跟你喜欢的物品类似的物品你也有可能喜欢”
- 分类:
User-based方法,基于user的协同过滤,通过不同用户对item的评分来评测用户之间的相似性,基于用户之间的相似性作出推荐。
Item-based方法,基于item的系统过滤,通过用户对不同item的评分来评测item之间的相似性,基于item之间的相似性作出推荐。
1.2.6 User-based
1.2.6 Item-based
1.2.7 相似度计算
1.2.8 k-Nearest Neighbor
2 基于模型的方法
- 思想
通过机器学习算法,在数据中找出模式,并将用户与物品之间的互动方式模式化
基于模型的协同过滤方式是构建协同过滤更高级的算法 - 分类
基于图的模型
基于矩阵分解的方法
2.1 基于图的模型
- 基于领域的模型看做基于图的模型的简单形式
- 示例
- 原理
将用户的行为数据表示为二分图
基于二分图为用户进行推荐
根据两个顶点之间的路径数、路径长度和经过的顶点数来评价两个顶点的相关性
2.2 基于矩阵分析的模型
2.3 ALS算法(交替最小二乘法)
适合评分的推荐
3 协同过滤的实现
3.1 基于用户的协同过滤实现
- Step1:找到和目标用户兴趣类似的用户集合
- Step2:找到集合中用户喜欢的,且目标用户没有听说过的物品推荐给目标用户
3.1.1 协同过滤实现:Step1
3.1.2 协同过滤实现:Step2
3.2 基于物品的协同过滤实现
- Step1:计算物品之间的相似度
- Step2:根据物品的相似度和用户的历史行为,为用户生成推荐列表
3.2.1 基于物品的协同过滤实现:Step1
3.2.2 基于物品的协同过滤实现:Step2
4 推荐系统冷启动问题
- 问题域:
User冷启动问题:新用户
Item冷启动问题:新商品
System冷启动问题:新系统
4.1 User冷启动
- 如何推荐商品给新用户
非个性化推荐:最流行的商品,排名最高的商品
使用用户注册信息
4.2 Item冷启动
给物品打标签