推荐系统系列---基于movielens数据集的KNN算法与矩阵分解算法比较

                                                         理论部分

1. 隐因子模型的推荐算法:使用奇异值分解或者随机梯度下降等方法将用户的评分矩阵分解为用户和产品的特征矩阵 ;

2. 提出一种对推荐效果新的评估方法:

3.Movielens 数据集:

(1)100k,包括1000个用户对1700部电影的点评信息。94.88%的评分都没有 。要给用户给予推荐,其实就是对评分矩阵中未知的项进行预测,也就是对一个稀疏的打分矩阵空白处进行“填空"。
(2)1m,包括6000个用户对4000部电影100万的评分记录。
(3)10m,包括72000个用户对10000部电影的的1000万个评分记录以及100000个标签。

4. 奇异值分解SVD:

推荐系统系列---基于movielens数据集的KNN算法与矩阵分解算法比较_第1张图片

      

   

5. 随机梯度下降算法:

推荐系统系列---基于movielens数据集的KNN算法与矩阵分解算法比较_第2张图片

6.平均绝对误差:


7.Baseline 模型:

推荐系统系列---基于movielens数据集的KNN算法与矩阵分解算法比较_第3张图片

8.KNN模型:

相似度的计算:

推荐系统系列---基于movielens数据集的KNN算法与矩阵分解算法比较_第4张图片


估计用户u对物品i的评分:

推荐系统系列---基于movielens数据集的KNN算法与矩阵分解算法比较_第5张图片

9.近邻模型与baseline模型的结合:

推荐系统系列---基于movielens数据集的KNN算法与矩阵分解算法比较_第6张图片

10.奇异值分解模型:

推荐系统系列---基于movielens数据集的KNN算法与矩阵分解算法比较_第7张图片


11.基于梯度下降的分解模型

推荐系统系列---基于movielens数据集的KNN算法与矩阵分解算法比较_第8张图片

garma代表的是学习速率,lamda代表的是正则系数;garma越大,结果越发散,通常情况下把garma取得比较小,视不同的数据集取值不同,大概在0.001量级。这样的话训练的时间会变长,但结果会更好。lamda一般也比较小,通常在0.01量级。迭代前,将对用户和产品的特征向量初始化,初始化非常关键,关系到运算速度的快慢。

==================================================================================================

实验结果















你可能感兴趣的:(推荐系统)