生成两个向量之间具有给定角度的向量

Generating two vectors with a given angle between them

我正在尝试生成两个具有给定余弦相似度的向量。输入将是余弦相似度(或无论如何取决于它的角度)和向量中的维数 (D),输出将是两个 D 维向量,它们之间具有给定的相似性现在,我知道如何使用余弦相似度函数来计算相似度,但是当我反过来尝试时我迷路了。 有没有这样的程序或算法,它是如何调用的?

对于给定的起始向量u和余弦相似度c

  • 在 n-D space 中生成 2 个点;称他们为 ab
  • b 投影到与 u 正交且包含 a
  • 的平面上
  • 将结果减去a得到与u正交的向量;称之为 h
  • 使用[u,h]作为基础和基本三角函数生成所需的向量v

上面的方法是 dimension-agnostic 因为它只使用点积。结果向量 {v} 具有单位长度并均匀分布在 u.

周围