使用余弦相似度还是欧氏距离?
总览
度量学习 Metric Learning 的目标是预测不同输入的相对距离。例如衡量两张人脸的相似程度,或是推理两句话表达含义的相似度。通常做法是,让模型使用各种输入 生成代表特征的 embedding 向量,然后用向量间的距离衡量这些输入的相似度。
至于如何计算 embedding 向量间的距离,主要有两种方法。
- 余弦相似度 Cosine Similarity,向量之间角度的余弦值
- 欧氏距离 Euclidean Distance,向量之间的距离
两者异同
该如何选择合适的计算方法?
| 余弦相似度 | 欧氏距离 | |
|---|---|---|
| 模长 | 对模长不敏感 | 对模长敏感 |
| 维度 | 适用于高维空间 | 适用于低维空间 |
| 正交性 | 能较好区分相似向量 | 几乎无法分辨正交性 |
| 归一化 | 需要归一化向量以获得准确结果 | 不需要归一化 |
| 实际应用 | NLP、文档相似度、推荐系统等 | 聚类、分类、降维等 |
| 计算 | 计算复杂度相对较低 | 在高维空间中计算复杂度较高 |
总结
对于涉及高维的且模长不重要的向量的任务(例如 NLP),余弦相似度很合适。
对于涉及低维的、模长大小不可忽视的向量的任务(例如分类),欧氏距离很合适。
参考来源
- “When to use Cosine Similarity over Euclidean Similarity?”,https://www.geeksforgeeks.org/when-to-use-cosine-similarity-over-euclidean-similarity/

浙公网安备 33010602011771号