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

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

基于用户的协同过滤算法

基于用户的协同过滤算法是推荐系统中最古老的算法,这个算法是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,谢谢!

推荐阅读更多精彩内容

  • 协同过滤和推荐系统几乎可以划等号,协同过滤的重点在于“协同”,所谓协同,也就是群体互帮互助,互相支持是集体智慧的体...
    andyham阅读 1,216评论 0 3
  • 在《程序员》12月刊A中,我们介绍了POI(兴趣点)的设计及其搜索。由于推荐系统是兴趣点系统的核心,所以接下来,我...
    阿七笔记阅读 3,781评论 0 8
  • 作者 | HCY崇远 01 前言 本文源自于前阵子连续更新的推荐系统系列,前段时间给朋友整理一个关于推荐系统相关的...
    daos阅读 5,363评论 0 77
  • 概述及标签体系搭建 1 概述 随着信息技术的迅速发展和信息内容的日益增长,“信息过载”问题愈来愈严重,愈发带来很大...
    JinkeyAI阅读 21,622评论 10 240
  • 这篇文章的技术难度会低一些,主要是对推荐系统所涉及到的各部分内容进行介绍,以及给出一些推荐系统的常用算法,比起技术...
    我偏笑_NSNirvana阅读 11,551评论 5 88
  • 陌上月影飞红落,何赖风扬清波皱。 清水疏桐荷添幽,偏惹离人漠漠愁。
    青丘公子璟阅读 134评论 1 2
  • 今天第一次在朋友圈看到简书这个东东,很好奇,立即点开下载安装,并试着运用。自己是不是out了!(捂嘴笑)
    静心爽阅读 67评论 0 0
  • 夜白点头,“说的没错,不是绝对,还是有可能成功的。” 颜爱歌揉了揉眉心。 夜白接着道:“所以,他为什么只是...
    LCBW0VYu阅读 1,685评论 0 0
  • 很多时候,我们只是不甘心。 今天刷空间的时候,偶然看到之前高中的一个同学,好像找到了适合自己的摄影师,拍的很美,很...
    简心湫翎阅读 166评论 0 0