是的,对于给定的嵌入(embedding),使用不适当的距离度量会显著降低结果质量。距离度量量化了向量空间中向量之间的关系,选择哪种度量取决于嵌入的设计方式。例如,方向重要的嵌入(如使用余弦相似度训练的词嵌入)将信息编码在向量之间的角度中,而不是其大小中。 在这种情况下使用欧几里得距离会错误地表示关系,因为它测量直线距离,会将方向和大小混淆。 这种不匹配可能导致不正确的相似度排名或聚类,从而破坏语义搜索或推荐系统等任务。
考虑像 Word2Vec 或 GloVe 这样的词嵌入,它们通常使用余弦相似度进行评估。 这些嵌入在训练期间会规范化向量,以强调方向对齐。 如果您计算欧几里得距离,则方向相同但大小不同的向量(例如,[1, 1] 和 [2, 2])会显得更远,即使它们在语义上是相同的。 相比之下,余弦相似度会正确地将它们评为相同(相似度=1)。 同样,在推荐系统中,用户/项目嵌入通常依赖于方向来表示偏好。 在此处使用欧几里得可能会根据活动水平(大小)而不是共同兴趣(方向)将用户分组,从而导致不相关的推荐。 这些示例突出了度量必须与嵌入的预期解释相一致。
为避免出现不良结果,请始终根据嵌入的属性验证距离度量。 如果嵌入的大小有噪声或无关紧要(例如,在 NLP 任务中),则余弦相似度更安全。 如果大小很重要(例如,在异常检测中,离群值具有较大的范数),则欧几里得可能有效。 有些嵌入,例如来自对比学习的嵌入,是专门为特定度量设计的,请检查训练目标。 诸如 scikit-learn 之类的工具可让您试验度量(例如,聚类中的 metric="cosine"
)。 如果有疑问,请使用小规模验证测试多个指标:比较它们在任务子集上的性能(例如,检索准确率)以确定最佳拟合。