You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何对词向量与文档向量间的相似度进行归一化处理?

嘿,针对你提到的把各种向量相似度/距离指标转换成0-1区间内实际相似度程度的需求,我整理了几种常用的归一化方法,附带适用场景和相关的理论依据,帮你解决这个问题:

一、针对余弦相似度的校准方法

虽然余弦相似度本身处于0-1区间,但它更多反映的是向量方向的一致性,并非直接对应“相似度程度”。常用的校准方法有:

  • 幂次缩放法:通过cos_sim^k(k为大于1的常数,比如k=2或3)来压缩低相似度区间,让高相似度的区分度更明显,同时保持结果在0-1范围内。这个方法在文本语义相似度任务中被广泛使用,相关的衍生研究可参考基于BERT的语义相似度论文中的预处理环节。
  • 分位数校准法:假设样本的余弦相似度服从特定分布(如正态分布),将其映射到0-1的分位值,每个值对应的分位数就代表其相对的相似度程度。这种方法能有效修正余弦相似度的“伪百分比”问题,让结果更贴合实际的相似性认知。
二、针对距离指标(欧氏、曼哈顿、堪培拉、闵可夫斯基)的归一化方法

这类距离指标的数值范围没有限制,需要通过转换映射到0-1区间:

  • 倒数截断法:对于任意非负距离值d,使用公式 1 / (1 + d)。当距离趋近于0(完全相似)时,结果趋近于1;距离越大,结果趋近于0。这个方法简单直观,在《Pattern Recognition and Machine Learning》(Christopher Bishop著)的距离度量章节中有提及,适用于没有明确距离上限的场景。
  • 最大距离归一化:如果能确定样本集中的最大有效距离d_max(可通过截断异常值得到,比如取95分位数作为上限),使用公式 1 - d/d_max。当d=d_max时相似度为0,d=0时为1。这种方法常用于聚类任务的相似度可视化。
  • 指数衰减法:使用公式 exp(-λ*d),其中λ是可调节的衰减系数(根据样本距离分布设置,比如让95%的样本距离对应的相似度不低于0.1)。这个方法在推荐系统的用户-物品相似度计算中被广泛应用,相关研究可参考《Collaborative Filtering for Implicit Feedback Datasets》。
  • 堪培拉距离专属转换:由于堪培拉距离的计算项|x_i - y_i|/(|x_i| + |y_i|)本身处于0-1区间,可直接用 1 - (canberra_distance / n)n为向量维度)来将结果映射到0-1区间,非常适合高维稀疏向量(如TF-IDF文本向量)的相似度转换。
三、通用归一化框架(适配所有指标)

如果需要统一处理多种相似度/距离指标,推荐使用分位数归一化
将所有样本的指标值(不管是余弦相似度还是各类距离)排序后,映射到0-1的分位值,每个值对应的分位数即为其相对的相似度程度。这种方法不依赖指标的分布特性,适用于混合多种度量的场景,相关文献可参考《Normalization Methods for High-Dimensional Data》。

内容的提问来源于stack exchange,提问作者Isaac Sim

火山引擎 最新活动