生成两个向量之间具有给定角度的向量
Generating two vectors with a given angle between them
我正在尝试生成两个具有给定余弦相似度的向量。输入将是余弦相似度(或无论如何取决于它的角度)和向量中的维数 (D),输出将是两个 D 维向量,它们之间具有给定的相似性现在,我知道如何使用余弦相似度函数来计算相似度,但是当我反过来尝试时我迷路了。
有没有这样的程序或算法,它是如何调用的?
对于给定的起始向量u
和余弦相似度c
:
- 在 n-D space 中生成 2 个点;称他们为
a
和 b
- 将
b
投影到与 u
正交且包含 a
的平面上
- 将结果减去
a
得到与u
正交的向量;称之为 h
- 使用
[u,h]
作为基础和基本三角函数生成所需的向量v
上面的方法是 dimension-agnostic 因为它只使用点积。结果向量 {v}
具有单位长度并均匀分布在 u
.
周围
我正在尝试生成两个具有给定余弦相似度的向量。输入将是余弦相似度(或无论如何取决于它的角度)和向量中的维数 (D),输出将是两个 D 维向量,它们之间具有给定的相似性现在,我知道如何使用余弦相似度函数来计算相似度,但是当我反过来尝试时我迷路了。 有没有这样的程序或算法,它是如何调用的?
对于给定的起始向量u
和余弦相似度c
:
- 在 n-D space 中生成 2 个点;称他们为
a
和b
- 将
b
投影到与u
正交且包含a
的平面上
- 将结果减去
a
得到与u
正交的向量;称之为h
- 使用
[u,h]
作为基础和基本三角函数生成所需的向量v
上面的方法是 dimension-agnostic 因为它只使用点积。结果向量 {v}
具有单位长度并均匀分布在 u
.