推荐系统理论(七) -- 评分预测问题
本文的思维导图如下:
1、评分预测问题简介
推荐系统中还有另一个重要的问题,称为评分预测问题。例如下面的表格,在表中每个用户都对一些电影给出了评分,比如用 户A给《虎口脱险》评了1分,给《唐山大兄》评了5分,给《少林足球》评了4分,给《大话西 游》评了5分。但是,每个用户都没有对所有电影评分,比如用户A没有给《变形金刚》和《黑 客帝国》评分。那么,当用户浏览网页并看到《变形金刚》和《黑客帝国》时,我们希望能够给 用户一个分数表明我们认为用户是否会喜欢这部电影,而这个分数也可以帮助用户决策是否要看 这部电影,而如何提高这个分数的预测精度就是评分预测要解决的主要问题。
我们一般可以用均方根误差RMSE度量预测的精度:
评分预测的目的就是找到最好的模型最小化测试集的RMSE。
2、平均值预测
最简单的评分预测算法是利用平均值预测用户对物品的评分的。
2.1 全局平均值
最简单的平均值预测方法就是全局平均值,它定义为训练集中所欲评分记录的评分平均值:
2.2 用户评分平均值
预测函数可以定义为用户u在训练集中所有评分的平均值:
2.3 物品评分平均值
预测函数还可以定义为物品i在训练集中接受的所有评分的平均值:
2.4 用户分类对物品分类的平均值
我们可以利用训练集中同类用户对同类物品评分 的平均值预测用户对物品的评分:
3、基于邻域的评分预测
基于用户的邻域算法和基于物品的邻域算法都可以应用到评分预测中。基于用户的邻域算法认为预测一个用户对一个物品的评分,需要参考和这个用户兴趣相似的用户对该物品的评分,即:
基于物品的邻域算法在预测用户u对物品i的评分时,会参考用户u对和物品i相似的其他物品 的评分,即:
4、矩阵分解模型
4.1 传统的SVD分解
4.2 Simon Funk的SVD分解
该模型又被称为Latent Factor Model(简称LFM),从矩阵分解的角度说,如果我们将评分矩阵R分级为两个低维矩阵相乘:
4.3 加入偏置项后的LFM
实际情况下,一个评分系统有些固有属性和用户物品无关,而用户也有些属性和物品无关,物品也有些属性和用户无关。其预测公式如下:
4.4 考虑领域影响的LFM
我们可以将用户历史评分的物品加入LFM模型中,该模型被称为SVD++。
其实很简单,我们将ItemCF的预测算法改成如下公式:
上面的式子有个错误,最后括号里应该没有x了。
5、加入时间信息的预测算法
5.1 基于邻域的模型融合时间信息
5.2 基于矩阵分解的模型融合时间信息
仿照前面的分解,我们将用户-物品-时间三维矩阵如下分解: