通过近一段时间的各种面试,体会到RL在工业界真正的应用比较少,大多集中在游戏AI和机器人等领域。
而推荐系统在工业界的应用以及相关岗位非常丰富,所以自己考虑学习一些推荐系统知识,并与自己原来的强化学习和机器学习基础相结合,因为目前其中RL在推荐系统中以及一些计算广告领域已经有了一些应用。
1.前言
推荐系统的本质:预测任意用户u对于任意物品i的偏好或评分
2.推荐系统的基础算法
2.1 基于内容的推荐算法
2.1.1 整体流程
特征(内容)提取 | 提取每个待推荐物品的特征(内容属性) |
用户偏好计算 | 计算用户在不同特征上的偏好分数(可设置时间衰减系数) |
内容召回 | 粗排,强调筛选效率 |
物品排序 | 细排,强调准确性 |
2.1.2 特征提取
其中的关键在于特征提取部分 :
- 结构化特征(可用二进制表示)
- 非结构化数据(基础统计,词频统计)
2.1.3 优缺点
优点:无冷启动问题,能为具有特殊兴趣爱好的用户进行推荐
缺点:对于特征提取要求比较高,精度不高
2.2 基于领域的推荐算法
2.2.1 基于用户的协同过滤算法
根据用户之间的相似度来找到与用户喜好相似的其他用户,并把其他用户喜欢的商品推荐给该用户。
2.2.2 基于物品的协同过滤算法
根据物品之间的相似度来找到与用户所喜欢的物品相似的物品。而其中最重要的部分则是如何计算相似度:
- 基于共同喜欢物品的用户列表
- 基于余弦相似度
- 热门物品的惩罚
2.2.3 基于矩阵分解的推荐算法
通过对用户对于物品的评分矩阵进行SVD分解并降维得到item和user的特征向量,计算物品之间的相似度,对那些未评分过的物品进行评分
2.2.4 基于稀疏自编码器的推荐算法
通过自编码器得到item特征向量对应的低维稀疏向量。
2.3 基于社交网络的推荐算法
2.3.1 基于用户的推荐在社交网络中的应用
通过统计用户的共同好友关系来计算用户之间的相似度。
2.3.2 node2vec技术
3.混合推荐系统
3.1 基础思想
混合推荐系统的整体思想是对前面三种基础推荐方法进行组合:
加权型混合推荐 | 将不同的方法的推荐结果进行加权求和 |
切换型混合推荐 | 在不同的场景使用不同的推荐算法 |
交叉型混合推荐 | 使用不同的推荐算法来构建每一部分 |
特征组合混合推荐 | 使用各种各样的数据源来进行训练 |
瀑布型混合推荐 | 使用不同的方法进行不同粒度的推荐 |
特征递增型混合推荐 | 一个模型的输出当做另一个模型的输入 |
元层次混合推荐 |
3.2 特征工程
特征处理:
- 无量纲处理
- 离散化处理
- 非线性变换
- AE
- 特征融合
特征选择:
- 包裹式
- 过滤式
- 嵌入式
4. 基于深度学习的推荐模型
召回 | 内容过滤,协同过滤,或者他们的混合方法 |
| 召回的必要性:整个物品集的规模是非常大的,需要进行粗排,主要目的是在有限的资源条件下提供一个尽可能准确的一个小候选集。另外,召回很像做了一次特征工程,特征选择,剔除无用的特征对于后续的排序也有很大好处。强调筛选效率 | ||||
排序 | 预测推荐指标(例如CTR) | 逻辑回归,梯度提升树,因子分解机,神经网络算法(Wide&Deep Network) | 强调准确性 |