美文网首页
推荐系统法宝-相似度计算

推荐系统法宝-相似度计算

作者: 机器不能学习 | 来源:发表于2018-11-21 11:57 被阅读0次

在一些最临近算法中我们常看见一些距离

欧氏距离

我们最常见也最常用的距离,它能够最直观的描述两个点的距离关系。
在N维的情况下有公式(x1k,代表第k个特征值)


标准化欧式距离

为什么引入标准欧式距离?如果两个点特征值不在一个数量级时,大的特征值会覆盖掉小的。如y1(10000,1),y2(20000,2)。如果进行欧式距离计算,完全可以忽略第二个特征值。
假设样本集X的均值(mean)为m,标准差(standarddeviation)为s,那么X的“标准化变量”表示为:​

image

而且标准化变量的数学期望为0,方差为1。
被标准化后各个特征值属于统一量级。
由此标准化欧式距离也出来了:


图片.png

s是根号下方差,u是平均数


图片.png

弦相似性

余弦相似性通过测量两个向量的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。两个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相反的方向时,余弦相似度的值为-1。这结果是与向量的长度无关的,仅仅与向量的指向方向相关。余弦相似度通常用于正空间,因此给出的值为0到1之间。

图片.png
这里的Ai,Bi分别代表向量A和B的各分量

理解:余弦相似常常用于比较两事物的相似度,它与距离无关只有关角度。
欧氏距离能够体现个体数值特征的绝对差异,所以更多的用于需要从维度的数值大小中体现差异的分析,如使用用户行为指标分析用户价值的相似度或差异;而余弦相似度更多的是从方向上区分差异,而对绝对的数值不敏感,更多的用于使用用户对内容评分来区分用户兴趣的相似度和差异,同时修正了用户间可能存在的度量标准不统一的问题(因为余弦相似度对绝对数值不敏感)。
修正数值不敏感的方法就是将该值减去均值。
相似度应用:
1.应用于文本相似度
2.应用于推荐系统评分

调整余弦相似度

举个小例子,用户 A 对两部电影评分分别是 1 分和 2 分,用户 B 对同样这两部电影评分是 4 分和 5 分。用余弦相似度计算出来,两个用户的相似度达到 0.98。这和实际直觉不符,用户 A 明显不喜欢这两部电影。

针对这个问题,对余弦相似度有个改进,改进的算法叫做调整的余弦相似度(Adjusted Cosine Similarity)。调整的方法很简单,就是先计算向量每个维度上的均值,然后每个向量在各个维度上都减去均值后,再计算余弦相似度。

前面这个小例子,用调整的余弦相似度计算得到的相似度是 -0.1,呈现出两个用户口味相反,和直觉相符。

-值得注意的是,它和下面的皮尔逊系数不一样,皮尔逊系数是减去行平均(减去行平均可以更好看到列属性的变化趋势,从而也忽略了数值)。而这个改进公式减去的是列的平均,列平均表示大众对该商品的一个喜爱程度,如果甲小于该值,减去该平均后就为负数,如果乙大于该值,减去后为正。与甲相乘后数值为负,也表示两者负相关了。

皮尔逊相关度

皮尔逊相关度,实际上也是一种余弦相似度,不过先对向量做了中心化,向量 p 和 q 各自减去向量的均值后,再计算余弦相似度。

皮尔逊相关度计算结果范围在 -1 到 1。-1 表示负相关,1 比表示正相关。皮尔逊相关度其实度量的是两个随机变量是不是在同增同减。

如果同时对两个随机变量采样,当其中一个得到较大的值另一也较大,其中一个较小时另一个也较小时,这就是正相关,计算出来的相关度 推荐系统法宝-相似度计算

就接近 1,这种情况属于沆瀣一气,反之就接近 -1。

由于皮尔逊相关度度量的时两个变量的变化趋势是否一致,所以不适合用作计算布尔值向量之间相关度,因为两个布尔向量也就是对应两个 0-1 分布的随机变量,这样的随机变量变化只有有限的两个取值,根本没有“变化趋势,高低起伏”这一说。

杰卡德(Jaccard)相似度

杰卡德相似度,是两个集合的交集元素个数在并集中所占的比例。由于集合非常适用于布尔向量表示,所以杰卡德相似度简直就是为布尔值向量私人定做的。对应的计算方式是:

分子是两个布尔向量做点积计算,得到的就是交集元素个数;
分母是两个布尔向量做或运算,再求元素和。


推荐系统法宝-相似度计算

相关文章

  • 推荐系统法宝-相似度计算

    在一些最临近算法中我们常看见一些距离 欧氏距离 我们最常见也最常用的距离,它能够最直观的描述两个点的距离关系。在N...

  • 相似度计算和p-value

    推荐系统中的itembased和userbased协同过滤算法在计算评分时需要用到相似度计算。记录几个常见的相似度...

  • 相似度测量

    在分类聚类算法,推荐系统中常常需要计算物品之间的相似度,而如何衡量物品之间的相似度,下文将介绍几种常用的计算方法。...

  • 文章推荐系统 | 五、计算文章相似度

    推荐阅读:文章推荐系统 | 一、推荐流程设计文章推荐系统 | 二、同步业务数据文章推荐系统 | 三、收集用户行为数...

  • 基于图的推荐算法

    上一次讲了《相似度计算方法:余弦相似度》中,提到了推荐系统中的基于用户的协同过滤算法,由于用户的行为数据,很适合用...

  • 推荐系统基础-常用相似度算法

    推荐系统中计算相似度常用的方法 欧几里得算法(欧几里得距离) 欧几里德算法又称辗转相除法,用于计算两个正整数a,b...

  • 集体智慧编程:提供推荐_推荐物品

    前面已经实现不同人之间相似度的计算,接下来就是根据相似度,向用户推荐物品。找到相似度最高的用户B,将他的喜好推荐给...

  • 使用ES的快速实现内容相似性推荐

    问答系统:通过用户给出的一段描述性文本,通过相似度计算查找与用户输入接近的问题相似推荐:用户在浏览当前文章时,基于...

  • 基于物品的协同过滤算法的Python实现

    作者:冯向博微信:supermvn介绍:推荐系统学习整理 目录 一. 基于物品的协同过滤二. 物品相似度计算与实现...

  • 余弦相似度-矩阵比向量计算性能比较

    背景 比如在推荐系统,通过算法计算出数据在返回向量时,就需要比较向量之间的距离,来判断相似度。 比如用tfidf计...

网友评论

      本文标题:推荐系统法宝-相似度计算

      本文链接:https://www.haomeiwen.com/subject/lxffqqtx.html