技术干货程序猿阵线联盟-汇总各类技术干货程序员

相似度计算方法:余弦相似度

2018-10-05  本文已影响82人  小草莓子桑

最近接触到了推荐系统 ,在这个专题中,和大家分享一下自己的收获和心得。

基于用户的协同过滤算法

基于用户的协同过滤算法是推荐系统中最古老的算法,这个算法是1992年提出的,是用在了邮件过滤系统中,后面被用到了新闻过滤系统中。简单的来说,推荐系统中,基于用户的协同过滤就是,先找到与目标用户兴趣相似的用户,然后把这些用户喜欢的推荐给目标用户,先找到与目标用户兴趣相似的用户就是计算用户之间的相似度,今天主要就是讲讲用余弦相似度。

余弦相似度原理

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

余弦相似度公式

从书里面拿出来的公式,犹豫不会在线打数学公式,用手写的照片代替


书里面的公式

直接背书可能大家会迷糊,给大家来个通俗版的


通俗版公式
这个通俗版的大家应该可以看明白,下面就来说说推导公式的过程

推导公式的过程

如图a、b向量,夹角为θ


a、b两个向量

如图做辅助线c


辅助线c
现在的问题,就是求θ的余弦值,根据余弦定理,相比大家还记得吧
余弦定理

如图,把这个模型放到二维坐标系中


三角形的三个顶点坐标如图
那么,构建出来的三角形,三条边的边长如下:
a、b、c三条边的边长
把a、b、c边长带入余弦定理公式,计算过程如下:
推导过程如下
这是在二维坐标中,进行推导的,如果过程扩展到n位坐标系中,这个公式就是上面说通俗版公式

举个栗子

A用户对a、b、d物品有兴趣,B用户对a、c物品有兴趣,C用户对b、e物品有兴趣,D用户对c、d、e物品有兴趣,把这个转化成向量图,带入公式计算得出相似度,计算过程如图所示


计算过程

余弦相似度就为大家分享到这里,欢迎大家来交流,指出文中一些说错的地方,让我加深认识,愿大家没有bug,谢谢!

上一篇下一篇

猜你喜欢

热点阅读