💡一句話定義
餘弦相似度(Cosine Similarity)= 用兩向量夾角的餘弦值衡量方向相似度,範圍 −1 到 1:1=同向(很相似)、0=正交(無關)、−1=反向(相反)。關鍵是只看方向、不受長度影響。
cos(θ) = A · B / ( |A| × |B| )
🎮互動:拖角度看相似度
拉動兩支向量的角度與長度:注意分數只隨夾角變、跟長度無關。也可以點下方預設範例(國王vs皇后、貓vs汽車、開心vs難過…)快速體驗。
📐 餘弦相似度 互動動畫
拖動向量看角度如何影響相似度
餘弦相似度 Cosine Similarity
-
30°
60°
120
90
💡 點擊預設範例快速體驗
👑👸
國王 vs 皇后
語意相近 ≈ 0.95
🐱🚗
貓 vs 汽車
語意無關 ≈ 0.0
😊😢
開心 vs 難過
語意相反 ≈ -1.0
🍎🍎
蘋果 vs 蘋果
完全相同 = 1.0
🏠🏢
房子 vs 大樓
有點相關 ≈ 0.5
🧭為什麼「只看方向」?
在高維文字/嵌入空間裡,語意相似多體現在「方向」,而向量長度常反映的是不相干的東西(例如文件長短、某個詞出現的次數)。用餘弦就能把「長度」這個雜訊排掉、只比語意方向。RAG 檢索正是靠它:把問題轉成嵌入,跟資料庫每份文件算餘弦,取最相似的幾筆餵給模型。
📏餘弦相似度 vs 歐氏距離
| 面向 | 餘弦相似度 | 歐氏距離 |
|---|---|---|
| 看什麼 | 兩向量的方向(夾角) | 兩點的絕對距離 |
| 受長度影響 | 不受影響 | 受影響 |
| 值 | −1~1,越大越像 | ≥0,越小越近 |
| 適用 | 高維文字、嵌入語意比對 | 座標、幾何距離問題 |
⚙️餘弦距離與正規化
餘弦距離 = 1 − 餘弦相似度:越小越像,方便當「距離」用於檢索排序。若向量已正規化(單位長度),餘弦相似度就等於內積,計算更快——這也是向量資料庫常先正規化的原因。注意:零向量沒有方向,無法比較。
✅自我檢測
Q1. 餘弦相似度的值域與三個關鍵角度?
−1 到 1。0°→1(同向、最相似)、90°→0(正交、無關)、180°→−1(反向、相反)。
Q2. 為什麼比較嵌入常用餘弦而非歐氏距離?
餘弦只看方向、不受長度影響;高維文字語意主要在方向,長度差異(如文件長短、詞頻)不該主導相似度判斷。
Q3. 餘弦相似度和餘弦距離差在哪?
餘弦距離 = 1 − 餘弦相似度。相似度越大越像;距離越小越像,方便當距離用於排序檢索。
Q4. 向量正規化後有什麼好處?
若向量已單位長度,餘弦相似度就等於內積,計算更快。向量資料庫常先正規化以加速最近鄰搜尋。
🎯重點整理
- 是什麼:用夾角餘弦衡量方向相似,−1~1。
- 關鍵:只看方向、不看長度。
- 公式:cos(θ)=A·B/(|A|·|B|)。
- vs 歐氏:餘弦重方向、歐氏重絕對距離。
- 應用:語意搜尋、RAG 檢索;正規化後=內積。