有关协同过滤的总结
1 基于用户的最近邻推荐:
主要思想:找出与当前用户有相似偏好的其他用户,即对等用户或最近邻,然后对当前用户没有见过的产品P,利用其近邻对p的评分计算预测值。
注意:相似偏好是指对物品的评分偏好,而不是相似个人资料的用户。
对于具有相似偏好的用户集,采用Pearson相关系数,给定评分矩阵R,用户a和用户b的相似度sim(a,b)的求法是对【(用户a对产品pn的评价与用户a的平均评分之差)乘以(用户b对产品pn的评价与用户b的平均评分之差)的积】求和(一共P个产品),再除以【(用户a对产品pn的评价与用户a的平均评分之差)的平方的求和】的平方根与【(用户b对产品pn的评价与用户b的平均评分之差)的平方的求和】的平方根。(如果你没有看懂,请百度之......)。
pearson相关系数取值从+1(强正相关)到-1(强负相关)。
求完相似度,再根据最相似的N个近邻与用户a的平均评分的偏差,计算用户a对物品p的预测值:a的平均评分加上,【近邻b对产品p的评分与b的平均评分之差与相似度的积】求和(一共N个近邻)再除以N个相似度之和。(具体的公式请百度之......)
在这里,P个产品和N个近邻如何确定?没有一个确定值,有研究表示,N在20到50之间比较合理。
2 基于物品的最近邻推荐:
主要思想:利用物品间的相似度。注意:物品的相似度依然是其他用户对其评分的相似度,不是物品名字属性什么的相似度。
对于具有相似物品的集,采用余弦相似度,对于评分向量,点积除以模的积,相似度介于0和1之间,越接近1则表示越相似。但是基本的预先方法不会考虑用户评分平均值之间的差异。改进版的余弦方法可以解决这个问题,像pearson方法一样,在评分之中减去平均值。
相似度求完,再求N个(产品的相似度乘以该用户对产品的评分)之和再除以N个产品相似度之和。(看不懂请百度之公式......)
对于大规模电子商务网站,他们通常选择离线预计算数据:其想法是事先构建一个物品相似度矩阵,描述所有物品两两之间的相似度。
3 基于图的方法:
主要思想:利用假定用户品味的“传递性”,并由此增强额外信息矩阵。
该方法用于评分矩阵稀疏的时候,在物品和用户之间连线,没有评分则不连,标准的协同过滤方法会选择距离为3的物品,但是这种思路会考虑5步距离或者更长的距离的物品。
4 矩阵因子分解:
主要思想:使用矩阵因子分解方法从评分模式抽取出一组潜在的(隐藏的)因子,并通过这些因子向量描述用户和物品。
主要使用奇异值分解(SVD)方法发现文档中的潜在因子,SVD将高度相关且在一起出现的词语作为单独因子,把通常很大的文档向量矩阵拆解成更小阶的近似矩阵。
SVD的原理可以通俗的表述为:将给定M分解成3个矩阵的乘积,其中U和V分别成为左、右奇异向量,A对角线上的值成为奇异值,即M=UAVT 。
5 主成分分析:
主要思想:用主成分分析对评分数据预处理,过滤得出数据中“最重要”的方面,以解释大多数变量。
4和5都是降维方法,数学基础不太好的人很难搞懂,嗯,有待进一步研究......
6 关联规则挖掘:
关联规则X=>Y表示只要交易T包含X里的元素(规则体),Y里的元素(规则头)就非常有可能也是相同交易的元素。关联规则的衡量标准是支持度和可信度,支持度=交易量包含X交Y的集合/交易量集合,可信度=交易量包含X交Y的集合/交易量包含X的集合。支持度和可信度的最低阈值一般需要根据经验确定。
主要方法,线下计算足够高可信度和支持度的关联规则集合。对物品根据规则进行可信度排序,如果有多条规则推荐一个物品,则取可信度最高的那条规则。然后返回不同物品的规则列表中最前的N个元素。有一种搜寻规则的挖掘算法利用领域特性专门搜寻规则头中(即Y中)包含某种目标物品(用户或物品)的规则。该算法不仅提高算法的效率,而且能够发现很少购买物品的规则,这些物品可能会因为有限的支持度在全局搜索时被过滤掉。
7 基于概率分析的推荐方法:
用概率的方法实现协同过滤,最初非常简单的方法是将预测问题看成是分类问题。提到概率方法的分类问题,不得不提贝叶斯分类器了。