上一篇文章介绍了用余弦定理计算两个物品之间相似度的方法。 KiKlaus :推荐算法原理(一)用余弦定理计算物品间相似度的zhuanlan.zhihu.com
此计算方法很简单,但在测量空间两个向量之间值大小的差异时存在明显缺陷。
例如,当向量a (1,1,1 )、向量b ) 5,5 )由余弦定理计算时,这两个向量构成的角的大小为0,即方向完全一致,因此该算法在这两个向量上非常类似但是仔细想想,其实这两个向量在比较值时,(空间的相对位置非常相似,用馀弦定理计算,和我们想的结果相差很大。
用现代铅笔计算物品之间的相似度时,可以解决上述问题。
1 .用现代铅笔公式计算两个物品之间相似度在n维空间中计算两点之间距离的原理
如下图所示,dist(a,b )是三维空间中两点之间的距离。
展开到n维空间时的公式如下。
可以想象,如果以二维展开该公式,则使用胡克定理计算两点之间的距离,但在此不展开。
从上述公式可以看出,两点之间的距离总是非负数,最大值为正无限大。 但是,通常相似度的可能范围应该在[-1,1 ]之间,所以需要将其倒数来将结果抑制在[ 0,1 ]之间。
最后现代铅笔计算两个物品之间相似度的公式如下。
两个物品或用户之间的距离越大,其相似度越小,距离越小,相似度越大。
2 .实际运用
下表是用户和分数的比较表。
然后,用现代铅笔公式计算用户1和用户2的相似度:
计算结果,可知用户1和用户2的类似度比用户1和用户3的类似度高,所以用户2和用户1更类似。
3 .总结
以上是我给大家看的内容,余弦定理和现代铅笔公式各有好坏之分,漂亮的双肩包距离可以表达个体数值特征的绝对差异,所以需要以用户行为为指标分析用户价值的相似性等,从维度数值的大小来表达差异这是价值衡量。 余弦相似度对绝对值不敏感,多采用用户对内容的分数来分析用户兴趣的相似度(用户是否喜欢某个商品),是一个定性的度量。
没有最好的算法。 只有最佳场景。 只有结合实际情况,才能更好地落地生产这些算法~
各位,如果有疑问的话请在评论区发送很多信息~