协同过滤推荐
协同过滤推荐
基于用户的最近邻推荐
思想:给定一个评分数据集以及当前(活跃)用户ID作为输入,找出与当前用户过去有相似偏好的其他用户,这些用户有时被称为对等用户或者最近邻;然后,对当前用户没见过的每个商品p,利用其近邻对p的评分计算预测值。
潜在假设:(1)如果用户过去有相似的偏好,那么他们未来也会有相似的偏好(2)用户偏好不会随时间而变化
如何确定相似用户集,推荐系统中通用的方法是Person相关系数。
Person相关系数取值+1(强正相关)
更好的相似度和赋权体系,改进余弦相似度、Spearman秩相关系数或均方差等其他方法也能用于计算用户间的接近程度。
单独使用“纯粹的”Person方法来发现近邻以及为这些近邻的评分赋权可能还不是最好的选择。试想一下,很多领域会存在一些所有人都喜爱的物品,让两个用户对有争议的物品达成共识会比对广受欢迎的物品达成共识更有价值,但Person这样的相似度无法将这种情况考虑在内。为解决这一问题,提出对物品的评分进行变换,降低对广受欢迎物品有同样看法的相对重要性。用一个称为反用户频率(iuf)的变量.通过方差权重因子解决了同样的问题,该方法提高了具有高方差评分值的物品,即有争议物品的作用。
如何选择近邻:不必考虑所有近邻。通用方法是为用户相似度定义一个具体的最小阈值,或者将规模大小限制为一个固定值,而且考虑k个最近邻。
k值(近邻规模)的选择不会影响可预测物品的覆盖率。然而这并未解决如何发现一个好的k值的问题:当近邻个数k太高,太多只有有限相似度的近邻会给预测带来额外的“噪声”;当k太小,预测质量也可能受到负面影响
基于物品的最近邻推荐
思想:利用物品间的相似度,而不是用户间的相似度来计算预测。
相似度度量:1.余弦相似度
基于物品过滤的数据预处理:
先构建一个物品相似度矩阵。在运行时,通过确定与p最相似的物品并计算用户u对这些近邻物品评分的加权综合来得到用户u对物品p的预测评分。近邻数量受限于当前用户评过分的物品个数。由于这样的物品数量一般都比较少,因此计算预测值可以在线上交互应用允许的短时间内完成。
考虑到内存要求,可选方案有,仅考虑那些与其他物品同时评分数最少的物品,或者对每个物品只记录有限的近邻。然而这种方法会增加无法预测某个特定物品的风险。
评分
隐式与显示评分:显示评分需要用户额外付出,进行打分。隐式评分追踪用户的浏览行为,以及一些购物记录,进行估计评分。
数据系数和冷启动问题:评分矩阵一般都非常稀疏,这时候的挑战是相对较少的有效评分得到准确的预测。直接做法是可以利用用户的附加信息,比如性别、年龄、教育程度、兴趣等能够帮助分类用户的信息。因此相似用户不只是根据显示或隐式评分,也会根据评分矩阵的外部信息来分析。多年以来,人们提出了一些处理冷启动和数据稀疏问题的方法。我们在这里用到的是基于图的方法。主要思想是利用假定用户品味的传递性,并由此增强额外信息矩阵。
更多基于模型和预处理的方法
协同推荐技术一般分为两类:基于记忆和基于模型的。传统的基于用户技术是基于记忆的,这是因为原始评分数据保存在内存中,直接生成推荐结果。而基于模型的方法会首先离线处理原始数据,就像基于物品的过滤和某些降维技术。运行时,只需要预计算或学习过的模型就能预测。
矩阵因子分解:SVD.在信息检索方面,这种潜在语义分析(LSA)技术也被归为潜在语义索引(LSI).
PCA:主成分分析
pLSA:概率潜在语义分析
关联规则挖掘