(1) 基于用户的协同过滤算法
基于用户行为数据设计的推荐算法一般称为协同过滤算法。学术界对协同过滤算法 进行了深入研究,提出了很多方法,比如基于邻域的方法(neighborhood-based)、隐语义模型(latent factor model)、基于图的随机游走算法(random walk on graph)等。
基于邻域的算法是推荐系统中最基本的算法,该算法不仅在学术界得到了深入研究,而且在 业界得到了广泛应用。基于邻域的算法分为两大类,一类是基于用户的协同过滤算法,另一类是 基于物品的协同过滤算法。
基于用户的协同过滤算法是推荐系统中最古老的算法,这个算法是1992年提出的,是用在了邮件过滤系统中,后面被用到了新闻过滤系统中。
简单的来说,在一个在线个性化推荐系统中,基于用户的协同过滤就是,当一个用户A需要个性化推荐 时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。这种方法称为基于用户的协同过滤算法。
协同过滤算法主要利用行为的相似度 计算兴趣的相似度。余弦相似度是一种计算方法。
(2) 余弦相似度原理
用向量空间中的两个向量夹角的余弦值作为衡量两个个体间差异大小的度量,值越接近1,就说明夹角角度越接近0°,也就是两个向量越相似,就叫做余弦相似,衡量的是两个变量在各个方向(属性)上的比例的相似度。
(3) 余弦相似度公式
给定用户u和用户v,令N(u)表示用户u曾经有过正反馈的物品集合,令N(v) 为用户v曾经有过正反馈的物品集合。
《推荐系统实践》书中的计算公式:
(4) 推导公式的过程
二维变量余弦相似度的计算:
如图 夹角为θ,图中c是一条辅助线:
上述a、b、c边的长度分别为:
根据余弦定理有:
n维变量余弦相似度的计算: