余弦相似度
输入两个向量,计算余弦相似度以衡量方向一致性,适用于文本语义匹配、推荐召回与嵌入向量比对。
🤖 Cosine Similarity Calculator
Compute the cosine similarity of two vectors to measure how closely their directions agree. Common in text matching, recall and embedding comparison.
📐 计算公式 / 原理
cos θ = (Σaᵢbᵢ) / (√Σaᵢ² · √Σbᵢ²)
余弦相似度取值范围 [−1,1],1 为同向、0 为正交、−1 为反向。因为做了模长归一化,它对向量整体缩放不敏感,适合比较长度差异很大的文本或特征向量;若需要同时反映模长差异应改回欧氏距离。
📐 计算公式与说明
cos = (A·B)/(|A|·|B|)
取值 −1 到 1,越接近 1 越相似。
📚 深度解析:余弦相似度
💡 常见使用场景
- cos(x,y)=Σxᵢyᵢ/(‖x‖·‖y‖),取值 [−1,1],1 为同方向、0 正交、−1 反向。
- 对向量归一化后,余弦等价于内积,计算更快且利于检索索引。
- 文本/图像嵌入比对几乎都用余弦,因模长常受频率或亮度干扰不代表语义。
两向量夹角
x=(1,2,2), y=(2,4,4):‖x‖=3,‖y‖=6,内积=2+8+8=18 → cos=18/(3×6)=1,两向量同向(实际 y=2x),完全相似。
❓ 常见问题(FAQ)
- 余弦为负说明什么?
- 说明两向量夹角大于 90°,语义倾向相反(如反义句、对立情感)。多数相似度场景只取非负区间,需按业务决定是否保留负值。
- 为什么先归一化?
- 归一化后模长均为 1,余弦=内积,便于用内积加速检索(如 FAISS);且消除向量长度对相似度的影响,聚焦方向。