协同过滤推荐的主要思想:利用已有用户群过去的行为或意见预测当前用户最可能喜欢哪些东西或对哪些东西感兴趣。
纯粹的协同过滤方法的输入数据只有给定的用户—物品评分矩阵,输出数据一般有以下几种类型:
- 表示当前用户对物品喜欢或不喜欢程度的预测数值;
- n项推荐物品的列表。当然,这个top-N列表不会包含当前用户已经购买的物品。
2.1 基于用户的最近邻推荐
它的主要思想:首先,给定一个评分数据集和当前用户的id作为输入,找出与当前用户过去有相似偏好的其他用户,这些用户有时也被称为对等用户或最近邻;然后对当前用户没有见过的每个物品p,利用其近邻对p的评分计算预测值。
基于用户的最近邻推荐
利用Pearson系数来评估用户的相似性。
这种方法的假设是:(1) 如果用户过去有相似的偏好,那么他们未来也会有相似的偏好;(2) 用户偏好不会随时间而变化。
然而实验分析显示,对于基于用户的推荐系统,pearson的相关系数比其他的方法更为优秀。不过,后来发现的基于物品的推荐技术,利用余弦相似度方法比pearson系数推荐效果更好。事实上,基于近邻的预测方法在遇到当前用户只有非常少的共同的物品评分时会出错,导致不准的预测。于是,有专家学者就提出了重要性赋权的方法——基于线性化简相似度权值的方法。
选择最近邻:为了减小计算量并且保证计算预测值,我们只包括了那些与当前用户有正向关联的用户。
降低近邻集合规模的方法通常是为用户相似度定义一个具体的最小阈值,或者将规模大小限制为一个固定值,而且只考虑k个近邻。但是这两种方法有潜在的问题:如果阈值过高,那么规模就会小很多,意味着很多商品无法预测。相反,阈值过低,那么规模就不会显著降低。k取多少,是个问题,MOVIE LENS上的测试显示,在大多数情况下,20到50个近邻似乎比较合理。
2.2 基于物品的最近邻推荐
基于物品的推荐算法的思想是:利用物品之间的相似度来计算预测值。利用余弦相似度来进行物品的相似度的计算。
利用评分矩阵中的某一部分数据来降低复杂度。一种基本技术是二次抽样,这种技术可以随机选取数据的子集,或者忽略那些仅有少量评分或非常热门物品的用户记录。
2.3 关于评分
显式收集用户的观点:通常是5分或者7分制。通过记录用户的打分,来收集用户的评分数据集。
隐式收集用户的观点:跟踪用户的浏览记录,收集用户的浏览日志,对用户的浏览日志进行分析,推荐可能效果更为显著。
数据稀疏与冷启动的问题:实际应用中,可能获取的用户评分数据十分少,因此。评分矩阵就是一个稀疏矩阵。这种情况下的挑战就是利用较少的数据来获得精准的预测。直接做法,利用用户的附加信息(年龄,性别,教育程度兴趣等)来辅助分类用户,这是借助外界的信息。