推荐系统的余弦相似度算法

     在推荐系统中,对于文章内容和物品相似度有多种算法可以使用,而余弦相似度算法相对简单并且准确性也不错,因此使用率比较高。

      余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"。


通过计算两个向量之间的夹角来衡量两个向量的相似度,角度越小说明相似度越高。

在向量表示的三角形中,假设a向量是(x1, y1),b向量是(x2, y2),那么可以将余弦定理改写成下面的形式:

    

向量a和向量b的夹角 的余弦计算如下:

    

如果向量a和b不是二维而是n维,上述余弦的计算法仍然正确。假定a和b是两个n维向量,a是  ,b是  ,则a与b的夹角 的余弦等于:

余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,夹角等于0,即两个向量相等,这就叫"余弦相似性"。

下面我们就推荐系统中的物品相似度,举例说明两个物品的余弦相似度的计算方法 :


根据上面的表格,我们来计算Item1和Item2的相似度:

   (1)首先根据表格中的值得到item1和Item2的n维向量值(5,0,1,3)和(6,0,0,2);
  (2)带入公式4中计算为(在excel中进行计算):
           
           
= (5*6 + 0*0 + 1*0 + 3 * 2)/ (SQRT(5*5+0*0+1*1+3*3) * SQRT(6*6 + 0*0 + 0*0 + 2*2))

        =0.96214047
      item1和item2计算后的余弦值为0.96+,说明两者有很高的相似度;





   
          
    

猜你喜欢

转载自blog.csdn.net/fycghy0803/article/details/79880452
今日推荐