推荐系统学习

1.两种相似度的定义:

•User-Based CF 计算user与user的相似度矩阵

–用户喜欢那些跟他有相似爱好的用户喜欢的东西

基于用户相似度:用户对同一商品进行购买与评分,评分越高则喜欢程度越高,进行相似度计算,后续可推荐相似用户买过的商品

•Item-Based CF 计item-item的相似度矩阵

–具有相似兴趣的用户在未来也具有相似兴趣

基于商品,某个用户一段时间买了某些商品,根据买的商品属性与归类,可以得到算出与该些商品相似的商品,推荐给该用户

 2.基于用户推荐系统的实现方法

–给定用户u,找到一个用户的集合N(u),他们和u具有相似的兴趣–将N(u)喜欢的物品推荐给用户.

 相似度计算实例:

以上左图是A、B、C、D四个用户对5部电影做了评分,形成的用户--电影评分矩阵

右图为:A与B,B与c等等的两两相似度

欧氏距离:

A与B 的相似度: sqrt【(5-1)^2+  (1-5)^2+(2-5)^2+(2-5)^2】=7.07

  

余弦相似度:

    分子:  5*1+1*5+2*5+2*5=30

      A的模:sqrt(5^2+1^2+2^2+2^2)=5.83095

        B的模    sqrt(1^2+5^2+5^2+5^2=8.71780

     距离:d=30/5.83095*8.71780=0.59

算出了A与B的相似度为0.59

 1.问题:如何算出C用户对TItannic电影的评分呢?

(1)得出c的评分,必须找出与c用户相似的用户

A与C :0.73

B与C:0.97

D与C:0.87

如果我们去相似度两个用户那就是 B、D,打分分别为5分、3分

估算出c对此电影的评分:

(0.97*5+0.87*3)/(0.97+0.87)=4.05

拆分开理解:

加权求和的一个思想,相似度越高,占得打分权重越高

二、相似度的归一化

1)概述

  两者都是评定个体间差异的大小的。欧几里得距离度量会受指标不同单位刻度的影响,所以一般需要先进行标准化,同时距离越大,个体间差异越大;

  空间向量余弦夹角的相似度度量不会受指标刻度的影响,余弦值落于区间[-1,1],值越大,差异越小。

2)计算公式

  欧氏距离(也叫欧几里得距离)公式:

  余弦相似度的计算公式如下:

3)归一化

一般来说,为了比较的方便,都会对得到的结果进行归一化处理:

1)在欧氏距离公式中,取值范围会很大,一般通过如下方式归一化:

  sim = 1 / (1 + dist(X,Y))

2)因为余弦值的范围是 [-1,+1] ,相似度计算时一般需要把值归一化到 [0,1],一般通过如下方式:

  sim = 0.5 + 0.5 * cosθ

经过归一化处理以后,相似度全部落在了0和1之间,值越大,相似度越高。

4)相似度度量的选择

  选择哪种度量方式,没有统一的结论,要依据处理数据的特点来进行确定,可以参考一下知乎上关于这个问题的讨论

:http://www.zhihu.com/question/19640394

 三、如何使用余弦进行推荐相似度计算

原文地址:https://www.cnblogs.com/hejunhong/p/11312767.html