首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相对相似度计算的适用性

相对相似度计算的适用性
EN

Data Science用户
提问于 2021-08-12 16:00:51
回答 1查看 21关注 0票数 0

我计算了a & b (=x)和b & c (=y)之间的余弦相似性。我可以使用相同的嵌入来计算ac之间的相似性(假设它是= z)。

我有一种情况,我只有相似性度量xy。如果没有原始的嵌入,我如何找到ac之间的相似之处?如果我用一个平面来表示这个,那么我就会有无穷多的解。有什么方法可以提供一些关于ac之间关系的见解吗?

代码语言:javascript
复制
a = torch.Tensor([1, 2])
b = torch.Tensor([1, -1])
c = torch.Tensor([2, 3])

sim_ab = torch.dot(a, b) / (torch.sqrt(sum(torch.square(a)) * sum(torch.square(b))))
sim_ac = torch.dot(a, c) / (torch.sqrt(sum(torch.square(a)) * sum(torch.square(c))))
sim_bc = torch.dot(b, c) / (torch.sqrt(sum(torch.square(b)) * sum(torch.square(c))))

print("Actual similarity between b and c: ", sim_bc)

x = torch.arccos(sim_ab)
y = torch.arccos(sim_ac)

print("Measured similarity between b and c: ", torch.cos(x-y))

>>> Actual similarity between b and c:  tensor(-0.1961)
>>> Measured similarity between b and c:  tensor(-0.1961)
EN

回答 1

Data Science用户

发布于 2021-08-13 09:09:35

考虑简单的情况通常是有用的,例如,即使在二维(平面)情况下,也无法确定z。两个向量之间的相似性与它们之间的角度(在原点)是相同的,因此:

  • 对于固定向量b,如果a有角xb,那么a位于b的两条线之一。
  • 如果另一个向量c的角度为yb,那么它也位于b的两边之一。

对于ac之间的角度,这已经给出了两个不同的答案:x+y还是x-y,取决于ac是否位于b的“同一边”。

在较高的维数中,z的可能角数增加,例如,在三维中,ac各位于b周围的一个圆锥体上,它们之间有一定的可能角度。

这不是一个证据,但我认为从这一点可以将z绑定到x+yx-y之间(如果一个值非常小,可能有用,也许不是),但是不能唯一地定义z。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/99996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档