方向插值:归一化方向向量D与A/B/C相似度计算要求输出0-1且和为1

可行计算方案
完全存在符合你需求的计算方法,根据参考向量的性质不同可以选择两种方案:
通用方案(A、B、C无正交要求)
采用余弦相似度+带温度Softmax的组合,适配所有场景:
- 第一步:计算D和三个参考向量的余弦相似度,因为所有向量均为归一化向量,直接计算点积即可:
sim_A = D · A、sim_B = D · B、sim_C = D · C,结果范围为[-1,1],数值越高代表两个方向越接近。 - 第二步:通过Softmax运算得到归一化得分:
该方案天然保证三个得分都处于(0,1)区间,且总和严格等于1,得分高低完全匹配方向的接近程度。# τ为温度系数,取值为正,值越小得分区分度越高,可根据需求调整 τ = 0.5 total = exp(sim_A / τ) + exp(sim_B / τ) + exp(sim_C / τ) score_A = exp(sim_A / τ) / total score_B = exp(sim_B / τ) / total score_C = exp(sim_C / τ) / total
简化方案(A、B、C为三维空间标准正交基)
如果三个参考向量两两正交且都是单位向量,可直接用投影平方计算,运算成本更低:score_A = (D·A)²、score_B = (D·B)²、score_C = (D·C)²
根据向量模长的性质,三个得分总和恰好等于||D||² = 1,每个得分范围为[0,1]。注意该方案默认方向相反和方向相同的接近度等价,如果你认为反向属于低接近度,优先选择通用方案。
内容的提问来源于stack exchange,提问作者Łukasz
相关产品推荐
相关产品推荐

