09 | 协同过滤中的相似度计算方法有哪些
刑无刀
该思维导图由 AI 生成,仅供参考
今天,我们来聊聊协同过滤中的相似度计算方法有哪些。
相似度的本质
推荐系统中,推荐算法分为两个门派,一个是机器学习派,另一个就是相似度门派。机器学习派是后起之秀,而相似度派则是泰山北斗,以致撑起来推荐系统的半壁江山。
近邻推荐顾名思义就是在地理位置上住得近。如果用户有个邻居,那么社交软件上把邻居推荐给他在直观上就很合理,当然,如果邻居姓王的话,就不要推荐了。
这里说的近邻,并不一定只是在三维空间下的地理位置的近邻,在任意高维空间都可以找到近邻,尤其是当用户和物品的特征维度都很高时,要找到用户隔壁的邻居,就不是那么直观,需要选择好用适合的相似度度量办法。
近邻推荐的核心就是相似度计算方法的选择,由于近邻推荐并没有采用最优化思路,所以效果通常取决于矩阵的量化方式和相似度的选择。
相似度,与之配套的还有另一个概念就是距离,两者都是用来量化两个物体在高维空间中的亲疏程度的,它们是硬币的两面。
推荐算法中的相似度门派,实际上有这么一个潜在假设:如果两个物体很相似,也就是距离很近,那么这两个物体就很容易产生一样的动作。
如果两篇新闻很相似,那么他们很容易被同一个人先后点击阅读,如果两个用户很相似,那么他们就很容易点击同一个新闻。这种符合直觉的假设,大部分时候很奏效。
其实属于另一门派的推荐算法——机器学习中,也有很多算法在某种角度看做是相似度度量。
例如,逻辑回归或者线性回归中,一边是特征向量,另一边是模型参数向量,两者的点积运算,就可以看做是相似度计算,只不过其中的模型参数向量值并不是人肉指定的,而是从数据中由优化算法自动总结出来的。
在近邻推荐中,最常用的相似度是余弦相似度。然而可以选用的相似度并不只是余弦相似度,还有欧氏距离、皮尔逊相关度、自适应的余弦相似度、局部敏感哈希等。使用场景各不相同,今天,我会分别一一介绍如下。
相似度的计算方法
数据分类
在真正开始巡视相似度计算方法前,我先给你把度量对象做个简单分类。相似度计算对象是向量,或者叫做高维空间下的坐标,一个意思。那表示这个向量的数值就有两种:
实数值;
布尔值,也就是 0 或者 1。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了协同过滤中常用的相似度计算方法,包括欧氏距离、余弦相似度和皮尔逊相关度。欧氏距离适用于实数值向量的相似度计算,余弦相似度适用于文本、用户和物品的相似度计算,而皮尔逊相关度则适用于度量两个随机变量的变化趋势是否一致。此外,文章还介绍了杰卡德相似度,适用于布尔值向量的相似度计算。通过简洁清晰的语言,为读者提供了对协同过滤中相似度计算方法的全面了解。文章还提出了一个问题,即在社交网络中计算好友的相似度时,应选择哪种相似度计算方法,引发读者思考和讨论。整体而言,本文通过介绍常用的相似度计算方法,为读者提供了对推荐系统算法的深入了解,同时引发了读者的思考和交流。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《推荐系统三十六式》,新⼈⾸单¥59
《推荐系统三十六式》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(21)
- 最新
- 精选
- 叶晓锋如何做社交网络好友相似的度量,我喜欢这个问题。粗略来说我会用这几个特征:帖子发布数量,月均发帖数量,平均帖子字数,头像,一些标签数据,例如是否大V,是否营销号,是否网红,职业等标签数据。另外还可以统计发文Top关键词向量及词频。标签数据可计算杰卡的相似度,Top关键词可计算余弦相似度,发布量,字数等可计算欧氏距离,然后再融合这几种相似度得到总和相似度。
作者回复: 赞!
2018-03-23284 - 愚公移山老师,感觉改进的余弦相似度和皮尔逊相关度是一样的?
作者回复: 不一样。一个是对行向量中心化,一个是对列向量中心化。
2018-03-2321 - Aaron收藏为什么是隐式反馈数据呢?已经很强的表明用户的感兴趣程度了
作者回复: 1.不必去纠结这个区分,所有数据你都应该拿来用。 2.用户收藏的目的可不是为了表达或者评价他对物品的喜好,而是为了以后看。 3.我认为反馈的主要直接目的不是表达“自己有多爱”,都是隐式反馈。
2018-07-225 - 林彦用户好友关系是布尔值,适合Jaccard相似度和余弦相似度
作者回复: 如果关系上有亲密度呢?
2018-03-232 - holysky讲的非常好。
作者回复: 欢迎传阅。
2018-03-231 - auroroa余弦相似度的小例子,用调整的余弦相似度计算得到的相似度是 -0.1。 这里计算的结果应该是 -1 吧,实际转换成(-1.5,-1.5)和(1.5,1.5)的余弦值2018-07-19124
- 曾阿牛看过某厂分享过一种方法。 将社交网络看成图,用node2vec方法: 1.定义网络:用户为点,用户之间的沟通次数/点赞次数等互动行为定义为边的权重 2.根据边的权重进行随机游走,生成序列 3.用word2vec生成点的向量值 4.选择相似度公式计算2018-03-2415
- Geek_75d2a2感谢分享,这个blog里面讲述了调整余弦相似度和皮尔逊相关度的区别:http://wulc.me/2016/02/22/%E3%80%8AProgramming%20Collective%20Intelligence%E3%80%8B%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0(2)--%E5%8D%8F%E5%90%8C%E8%BF%87%E6%BB%A4/2019-09-233
- neohope感觉不同产品用的好友推荐策略是不太一样: 微博,可以通过关心的话题,转发情况以及点赞情况,是可以计算相似度的,但要适当降低大V和热门时间的系数。当然也会推荐你关注的人关注的人,这个是天然成立的。 微信,是熟人社交,但有时候不能通过点赞转发来判断是不是关系好,因为有时候是不得已而为之。可能通过好友的标签、屏蔽关系和联系的多少来计算亲密度会更准确一些。所以微信一开始是通过通讯录来完成市场占领的,后面是通过转发名片、群聊、扫一扫等方式,多数情况下并不需要主动推荐。 linkedin,是职场社交,更像基于图数据库,你有几个朋友通过几次跳转能联系到某人然后推荐。因为熟人的熟人可能是熟人。 facebook,其实是一个更纯粹的社交网络,需要多种推荐方式要一起使用才可以的。包括教育经历、工作经历、兴趣爱好、喜欢的话题、追星、择友标准、喜欢的食物等很多维度都要用到。感觉今天讲到的几种方法其实都可以使用,图数据库也要用到。2019-12-042
- liuchen调整的余弦相似度计算就是用用户均值中心化后的向量进行余弦相似度计算,因为中心化后的值才相对真实反映用户的喜好 皮尔逊相关系数就是概率论的一种度量向量之间相关性的方法2018-12-011
收起评论