基于相似度的矢量系数
Vector coefficients based on similarity
我一直在寻找一种解决方案来创建基于向量相似度的推荐系统。
基本上,我每个用户有几个向量,例如:
User1: [0,3,7,8,5] , [3,5,8,2,4] , [1,5,3,9,4]
User2: [3,1,6,7,9] , [2,4,1,3,8] , [7,8,3,3,1]
对于每个向量,我需要计算一个系数,并根据该系数将一个向量与另一个向量区分开来。我发现了可以根据两个向量的相似性计算系数的公式,我真的不想要 that.I 需要一个公式来计算每个向量的系数,然后我用那些 coefficients.Are 有什么好的公式吗?
谢谢
因此,根据您对我的评论的回应:我不认为有一个相似系数度量可以满足您的要求。让我解释一下为什么...
相似系数是函数 f(x, y) -> c
,其中 x
和 y
是向量,c
是标量。请注意 f
有两个参数。 f(x,y) = f(y,x)
,但是 f(x)
是没有意义的 - 它要求 x
相对于...没有相似性。
那又怎样?我们可以只使用函数 g(x) = f(x, V)
,其中 V
是一个固定向量。例如。让V = [1, 1, ..., 1]
。现在我们有了一个单子函数,它为我们提供了每个单独向量的相似度值。但是...
了解 f(x,y) = c
和 f(x,z) = c'
并不能告诉你很多关于 f(y,z)
的信息。在 2-space, x = [1, 1], y = [0, 1], z = [1,0]
中取向量。二维对称的相似度函数会说 f(x,y) = f(x,z)
但希望不是 = f(y,z)
所以我们上面的 g
函数不是很有用,因为知道两个向量与 [=19= 有多相似] 并没有告诉我们它们彼此之间有多相似。
那你能做什么?我认为解决您的问题的一个简单方法是 k nearest neighbors algorithm. It allows you to find vectors close to a given vector (or, if you prefer to find clusters of vectors without specifying a given vector, look up clustering)
的变体
编辑:来自 Yahya 的回答的灵感:如果你的向量超大并且 knn 或聚类太难,请考虑主成分分析或其他一些将它们缩小到一定大小的方法(减少维数)——只需要保持记住无论你做什么都可能有损
我一直在寻找一种解决方案来创建基于向量相似度的推荐系统。 基本上,我每个用户有几个向量,例如:
User1: [0,3,7,8,5] , [3,5,8,2,4] , [1,5,3,9,4]
User2: [3,1,6,7,9] , [2,4,1,3,8] , [7,8,3,3,1]
对于每个向量,我需要计算一个系数,并根据该系数将一个向量与另一个向量区分开来。我发现了可以根据两个向量的相似性计算系数的公式,我真的不想要 that.I 需要一个公式来计算每个向量的系数,然后我用那些 coefficients.Are 有什么好的公式吗? 谢谢
因此,根据您对我的评论的回应:我不认为有一个相似系数度量可以满足您的要求。让我解释一下为什么...
相似系数是函数 f(x, y) -> c
,其中 x
和 y
是向量,c
是标量。请注意 f
有两个参数。 f(x,y) = f(y,x)
,但是 f(x)
是没有意义的 - 它要求 x
相对于...没有相似性。
那又怎样?我们可以只使用函数 g(x) = f(x, V)
,其中 V
是一个固定向量。例如。让V = [1, 1, ..., 1]
。现在我们有了一个单子函数,它为我们提供了每个单独向量的相似度值。但是...
了解 f(x,y) = c
和 f(x,z) = c'
并不能告诉你很多关于 f(y,z)
的信息。在 2-space, x = [1, 1], y = [0, 1], z = [1,0]
中取向量。二维对称的相似度函数会说 f(x,y) = f(x,z)
但希望不是 = f(y,z)
所以我们上面的 g
函数不是很有用,因为知道两个向量与 [=19= 有多相似] 并没有告诉我们它们彼此之间有多相似。
那你能做什么?我认为解决您的问题的一个简单方法是 k nearest neighbors algorithm. It allows you to find vectors close to a given vector (or, if you prefer to find clusters of vectors without specifying a given vector, look up clustering)
的变体编辑:来自 Yahya 的回答的灵感:如果你的向量超大并且 knn 或聚类太难,请考虑主成分分析或其他一些将它们缩小到一定大小的方法(减少维数)——只需要保持记住无论你做什么都可能有损