余弦相似度-1.认识

4 阅读2分钟

余弦相似度(Cosine Similarity)是一种衡量两个非零向量之间方向相似性的数学方法,它通过计算这两个向量夹角的余弦值来判断它们是否“指向相近的方向”。


📌 核心思想

  • 不关心向量的长度(大小) ,只关注它们的方向
  • 两个向量方向越接近(夹角越小),余弦相似度越接近 1
  • 方向完全垂直(90°),相似度为 0
  • 方向完全相反(180°),相似度为 -1

因此,余弦相似度的取值范围是:

[−1, 1]

在文本、推荐系统等实际应用中,向量分量通常为非负数(如词频、TF-IDF权重),此时余弦相似度范围为  [0, 1]

✅ 举个例子(文本相似度)

句子A:这只皮靴号码大了。那只号码合适。
句子B:这只皮靴号码不小,那只更合适。

  1. 分词并构建词表 → 得到9个词

  2. 统计词频 → 转为向量

    • A: (1, 1, 2, 1, 1, 1, 0, 0, 0)
    • B: (1, 1, 1, 0, 1, 1, 1, 1, 1)
  3. 计算余弦相似度 ≈ 0.707

→ 结果接近1,说明两句话语义较相似。


🌐 常见应用场景

  • 文本挖掘:判断两篇文档或句子是否主题相近
  • 信息检索:搜索引擎匹配查询与文档
  • 推荐系统:比较用户偏好向量(如电影评分)
  • 大语言模型(LLM) :词向量/嵌入(embedding)之间的语义相似性(如“国王”和“王后”向量夹角很小)

特别地,像 OpenAI 的 embedding 模型会将所有向量归一化为单位长度(范数=1) ,此时余弦相似度简化为直接计算点积,大幅提升计算效率。

总结一句话:

余弦相似度衡量的是“方向是否一致”,而不是“距离有多近”。

这使得它在处理高维稀疏数据(如文本)时非常有效且高效。