协同过滤推荐算法
一、显式评分与隐式评分
目前许多协同过滤推荐算法使用用户对商品的评分数据最为推荐基础。用户评分数据分为显式评分(ExplicitRating)和隐式评分(ImplicitRating)两类。
二、User-based协同过滤推荐算法
-
User-based协同过滤推荐根据其他用户的观点产生对目标用户的推荐列表。
-
它基于这样一个假设:如果用户对一些项的评分比较相似,则他们对其它项的评分也比较相似。
例4.1:User-based协同过滤推荐算法需要预测用户Peter对项“廊桥遗梦”的评分。(行代表用户,列代表项)
通过数据分析发现,Tom和Peter对电影的评分非常相似,所以Tom是Peter的最佳邻居。因此Tom对“廊桥遗梦”的评分对预测值的影响最大。而Jack和Rose对“廊桥遗梦”的评分对预测值的影响相对小一些。在实际的预测过程中,只搜索与当前用户相似性最高的前若干个邻居,然后根据相似性大小预测当前用户对未评分项的评分。
由上面的例子可知,用户相似性度量、最近邻居查询和预测评分是整个User-based协同过滤推荐算法的主要工作,相应的,User-based协同过滤推荐算法可以划分为如下三个阶段:
a、数据表示:对用户已经购买过的商品进行建模,从而可以有效度量用户之间的相似性。(用户评分数据可以用一个m*n阶矩阵表示)
b、最近邻查询:搜索当前用户的最近邻居。度量用户间相似性的方法有许多种,主要包括如下三种方法:
-
余弦相似性(Cosine):用户评分看作为n维项空间上的向量,未评分的项设为0。