什麼是餘弦相似度?
餘弦相似度是透過「兩個向量之間的夾角」而非長度大小,來衡量兩者的相似程度。其結果介於 −1 與 1 之間:值為 1 代表兩向量方向完全相同,0 代表彼此正交(毫無關聯),−1 則代表方向完全相反。這項指標廣泛應用於文字探勘、推薦系統、資訊檢索與機器學習,常用來比較文件、嵌入向量(embeddings)或特徵向量之間的相似度。
如何使用本計算器
請將向量 A 與向量 B 的各個分量,以逗號分隔的數字輸入。兩個向量的維度必須相同(若維度不一致,計算器會以較短的長度為準)。按下計算後,即可看到餘弦相似度、內積、各向量的長度(範數),以及兩向量之間以「度」表示的夾角。
公式解析
餘弦相似度等於兩向量的內積,除以兩者歐幾里得範數(長度)的乘積:
$$\cos\theta = \frac{\vec{A} \cdot \vec{B}}{\lVert \vec{A} \rVert \, \lVert \vec{B} \rVert} = \frac{\sum_{i=1}^{n} A_i B_i}{\sqrt{\sum_{i=1}^{n} A_i^{2}} \; \sqrt{\sum_{i=1}^{n} B_i^{2}}}$$
內積 \(\vec{A} \cdot \vec{B}\) 是各對應元素相乘後再加總;範數 \(\lVert \vec{A} \rVert\) 則是各分量平方和的平方根。除以兩者的長度可使結果標準化,因此最後只取決於方向,而與向量長短無關。
實際範例
假設 A = [1, 2, 3]、B = [4, 5, 6]。內積為 \(1\cdot4 + 2\cdot5 + 3\cdot6 = 4 + 10 + 18 = 32\)。A 的長度為 \(\sqrt{1+4+9} = \sqrt{14} \approx 3.7417\),B 的長度為 \(\sqrt{16+25+36} = \sqrt{77} \approx 8.7750\)。因此 \(\cos\theta = 32 / (3.7417 \times 8.7750) \approx 32 / 32.8329 \approx 0.9746\),換算後的夾角約為 12.93°。
常見問題
結果可能是負數嗎?會的。當兩向量方向大致相反時,餘弦相似度就會是負值,方向完全相反時則為 −1。
如果兩個向量長度不同怎麼辦?計算器只會比較重疊的維度(也就是較短向量的長度)。為了得到有意義的結果,建議使用維度相同的向量。
它和歐幾里得距離有何不同?餘弦相似度忽略向量的大小,只專注於方向,因此即使一個向量遠比另一個長,只要兩者方向一致,就會被視為完全相似。