目前推荐算法分为四大类:
【1】协同过滤推荐算法
【2】基于内容的推荐算法
【3】流行度推荐算法
这种方法是对item使用某种形式的流行度度量,例如最多的下载次数或购买量,然后向新用户推荐这些受欢迎的item。类似平时经常看到的热门商品、热门推荐类似。
【4】混合推荐算法
混合推荐算法很好理解,就是将其他算法推荐的结果赋予不同的权重,然后将最后的综合结果进行推荐的方法。如:基于用户的协同过滤的权重为40%,基于item的协同过滤的权重为30%,基于内容的过滤技术的权重为30%,然后综合计算得到最终的推荐结果。
由于【3】、【4】较为好理解,开始详细简述下【1】、【2】算法。
基于用户的协同过滤推荐算法
1.寻找偏好相似的用户
示例:模拟了5个用户对两件商品的评分,来说明如何通过用户对不同商品的态度和偏好寻找相似的用户。
评分标准:可以参考浏览商品的次数,向朋友推荐商品,收藏,分享,或评论等等。这些行为都可以表示用户对商品的态度和偏好程度。
图1:基于上述标准的评分值2.相似用户的距离
2.1欧几里得距离
描述相似用户,则需要输出距离指标来考量用户间的相似度。欧几里得距离即两点之间的绝对值距离。二维公式为d = sqrt((x1-x2)^+(y1-y2)^) ,可以拓展到更高维。
图2:欧几里得距离图示欧几里德距离,也就是用户间的距离。系数越小表示两个用户间的距离越近,偏好也越是接近。不过这里有个问题,太小的数值可能无法准确的表现出不同用户间距离的差异,因此我们对求得的系数取倒数并做归一化处理,使用户间的距离约接近,数值越大。
2.2皮尔逊相关系数
图3:用户评分值皮尔逊相关系数的计算方法,即把不同用户对相同item的兴趣度,当做多个向量。向量之间求余弦夹角。最终余弦值肯定是一个在-1与1之间的系数。越靠近正一则呈正相关,否则呈负相关。
3.为相似用户推荐物品
检查之前的相似度列表,发现用户C和用户D和E的相似度较高。换句话说这三个用户是一个群体,拥有相同的偏好。因此,我们可以对用户C推荐D和E的商品。
但这里有一个问题。我们不能直接推荐前面商品1-商品5的商品。因为这这些商品用户C以及浏览或者购买过了,不能重复推荐。
我们提取了用户D和用户E评价过的另外5件商品A—商品F的商品。并通过1.商品被D或者E评分*D或者E与C用户相似度;2.最终相似排序值=得分总计值/相似度总计值,类似加权平均数的该奶奶,得分越高推荐越靠前。
基于内容的协同过滤推荐算法
把刚刚的过程重新算一遍,只是不从用户维度看这些数据,而是通过内容的维度去计算上述过程。
基于模型的协同过滤推荐
基于样本的用户喜好信息,训练一个推荐模型,然后根据实时的用户喜好的信息进行预测,计算推荐。常见的模型计算有:基于矩阵分解、基于贝叶斯网络、基于SVM。
网友评论