首页 > 编程知识 正文

向量空间距离公式,空间向量的应用公式

时间:2023-05-03 08:21:02 阅读:228063 作者:1246

概述

现在我们使用的一些APP都有智能推荐功能,例如抖音能够根据你的口味推荐符合你口味的短视频,网易云音乐每天会有大约三十首歌曲推荐给你,其中的私人FM功能则可以无限推荐符合你口味的歌曲,各种购物APP中,也会根据你浏览过的商品推荐你可能需要的商品。

那么以上这些精准推荐是如何做到的呢?它底层的算法原理是什么呢?

简单的推荐系统底层的基础原理是线性代数中的向量空间,以及nxdzt距离

向量空间

向量(vector),也被称为nxdzt量、几何向量、矢量等,在二维空间中,可以表示为一个带箭头的线段,箭头表示向量的方向,线段长度表示向量的大小。

对于空间,我们当前所处的三维空间,数学上称作三维nxdzt空间,这个三维空间中有无数的位置点,这些点之间存在关系,并且可以定义长度,角度等,还能容纳运动。

我们这里所说的向量空间就是指这样的一个空间,向量存在于这个空间中。

nxdzt距离

nxdzt距离指的是在m维空间中两个点之间的距离,例如在二维空间中,点 A(x1,x2) 和点 B(y1,y2) 之间的距离是 ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 sqrt{(x_1-x_2)^2 + (y_1-y_2)^2} (x1​−x2​)2+(y1​−y2​)2 ​

以此类推,在m维空间中点 A(x1,x1…z1) 和点 B(x2,y2…z2) 的距离是: ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 + . . . + ( z 1 − z 2 ) 2 sqrt{(x_1-x_2)^2 + (y_1-y_2)^2 + ... + (z_1-z_2)^2} (x1​−x2​)2+(y1​−y2​)2+...+(z1​−z2​)2 ​

推荐系统算法原理

这里我们来考虑一下如何给一个用户推荐符合他口味的歌曲呢?或者说如何找到一些歌曲可能是该用户喜欢的。

找到与该用户口味类似的其他用户找到该用户喜欢的音乐风格 1.找到相似用户

首先可以遍历所有用户听过的歌,找到和你听的歌重复度最高的那个用户,也就是你跟他听的歌中,重复的是最多的,那么可以认为你俩的口味相似,然后就可以把对方听过而你没听过的歌曲推荐给你了。

在这个思路中,我们只是简单的将一首歌标记为听过没听过,但是却不知道用户最喜欢哪首歌?也就是这个结果还不够精确,如果我们能知道某个用户对一首歌的喜爱程度就好了。

我们可以定义一个给歌曲打分的规则,如图:

根据规则可以计算出一个用户和对应歌曲的分数:

现在,有了这些数据,我们可以用向量来表示一个用户的口味:

假设 W1 W2 ... Wn 是指 用户X 对这些歌曲的喜欢程度vector_X = (W1, W2 ... Wn)

这样,每个用户的口味就可以抽象为多维向量空间中的一个点,然后我们可以通过计算点与点之间的nxdzt距离得到用户之间口味的相似度。即距离越近,越相似。

2.找到相似歌曲

根据查找相似用户的原理,同样可以应用在查找相似歌曲中,可以将歌曲打一些标签或者特征项,比如伤感或者开学,励志,民谣等,然后给每个歌曲每个特征项打一个分,那么我们就可以得到一首歌曲的一个特征项向量

通过计算歌曲之间特征项向量的nxdzt距离,可以得到歌曲之间的相似度。

要实现这个方案,前提是得有足够多的资源并且有足够的特征项,倘若人工进行标注,就不够客观,如此一来,通过计算特征项向量的手段就不可行了。

我们可以换一个角度看,如果对于两首歌,听的人群是都差不多的,那就可以认为这两首歌是相似的。
如下图,从歌曲角度看,可以计算出每个歌曲的一个向量,通过计算不同歌曲间向量的nxdzt距离,就可以得到歌曲之间的相似度。

最后,从用户的曲库中找到最喜欢的歌曲,根据此方法寻找相似度高的歌曲,再推荐给用户。

总结

通过简单的向量的nxdzt距离可以实现最简单的推荐系统,但是实际开发中会有一系列的问题,比如,产品一开始数据量少不足以做推荐等。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。