1 Model-Based 协同过滤算法
随着机器学习技术的逐渐发展与完善,推荐系统也主键运用机器学习的思想来进行推荐。将机器学习应用到推荐系统中的方案非常多。一下对Modek-Based CF算法做一个大致的分类:
- 基于分类算法、回归算法、聚类算法
- 基于矩阵分解的推荐
- 基于神经网络算法
- 基于图模型算法
接下来我们重点学习一下集中应用较多的方案: - 基于回归的协同过滤推荐
- 基于矩阵分解的协同过滤推荐
2 基于回归的协同过滤推荐
将评分看成连续的值,借助线性回归思想来预测目标用户对某物品的评分。其中一种实现策略是Baseline(基准预测)。
Baseline:基准预测
偏置(bias):某个用户普遍偏离平均值的差值
Baseline 目标:
- 找出每个用户普遍偏离平均值的偏置值 bu
- 找出每个物品普遍偏离平均值的偏置值 bi
使用Baseline的算法思想预测评分的步骤如下: - 计算所有电影的平均评分μ(即全局平均评分)
- 计算每个用户评分与平均评分μ的偏置值bu
- 计算每部电影接受的评分与平均评分μ的偏置值bi
- 预测用户对电影的评分:r(预测)=bui = μ + bu +bi
举例:通过Baseline来预测用户A对电影“阿甘正传”的评分
对于所有电影评分平均分能够直接计算,因此问题在于要测出每个用户和每部电影的得分偏置置。对于线性回归问题,我们可以利用平方差构建损失函数。
加入L2正则化:
- 公式第一部分:是用来寻找与已知数据你和最好的bu和bi
- 攻势第二部分:正则化项,用于避免过拟合现象。
对于求解最小损失函数的过程,我们一般采用随机梯度下降法和交替最小二乘法来优化实现。
方法一:随机梯度下降法优化
使用随机梯度下降优化算法预测Baseline偏置值
step 1:梯度下降法推导
step 2:随机梯度下降
step 3:算法实现
pandasAPI