使用余弦相似度还是欧氏距离?

总览

度量学习 Metric Learning 的目标是预测不同输入的相对距离。例如衡量两张人脸的相似程度,或是推理两句话表达含义的相似度。通常做法是,让模型使用各种输入 生成代表特征的 embedding 向量,然后用向量间的距离衡量这些输入的相似度。

至于如何计算 embedding 向量间的距离,主要有两种方法。

  • 余弦相似度 Cosine Similarity,向量之间角度的余弦值
  • 欧氏距离 Euclidean Distance,向量之间的距离

两者异同

该如何选择合适的计算方法?

余弦相似度 欧氏距离
模长 对模长不敏感 对模长敏感
维度 适用于高维空间 适用于低维空间
正交性 能较好区分相似向量 几乎无法分辨正交性
归一化 需要归一化向量以获得准确结果 不需要归一化
实际应用 NLP、文档相似度、推荐系统等 聚类、分类、降维等
计算 计算复杂度相对较低 在高维空间中计算复杂度较高

总结

对于涉及高维的且模长不重要的向量的任务(例如 NLP),余弦相似度很合适。

对于涉及低维的、模长大小不可忽视的向量的任务(例如分类),欧氏距离很合适。

参考来源

posted @ 2024-06-04 11:42  倒地  阅读(260)  评论(0)    收藏  举报