搜尋意圖: 如果你在找「餘弦相似度 是什麼」或「餘弦相似度 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。
TL;DR: 餘弦相似度是一種衡量兩個非零向量之間夾角餘弦值的度量方法,常用於評估文本或資料點之間的相似程度。
實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。
下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。
你有沒有遇過兩段文字長短不同,卻想知道它們有多像?
你可以把餘弦相似度想成「看兩個向量方向像不像」:它不太管長度,只看方向是否接近。
它很重要,因為文本、向量和語意搜尋常需要比相似程度,餘弦相似度在這種場景特別好用,也常是向量檢索的第一個排序標準。
容易混淆
餘弦相似度 vs 歐氏距離 vs 內積
餘弦相似度:看方向,不太看長度
歐氏距離:看兩點物理上隔多遠
內積:會受方向和長度一起影響
最關鍵的區別:餘弦相似度重點是「方向一致不一致」。
記住這句就好
方向像不像,比長短更重要。
實際案例
語意搜尋
前:只靠關鍵字,字不同就找不到
後:把查詢和文件轉成向量,再用餘弦相似度找最接近的內容
推薦相似文章
前:文章長度不同,直接比字數沒意義
後:用向量方向判斷主題是否接近,再推相似內容
算法與應用
餘弦相似度常和嵌入表示、向量資料庫、語義搜尋、Word2Vec 一起出現
它會先把資料轉成向量,再用夾角來比較相似性
在實務上,是否要先正規化向量,會影響它和內積的關係
中英對照與常見說法
| 說法 | 出現場合 |
|---|---|
| 餘弦相似度 | 台灣正式用語 |
| 余弦相似度 | 簡體寫法 |
| Cosine Similarity | 英文原名 |
| 夾角餘弦 | 強調幾何意義時的說法 |
| 相似度(similarity) | 泛稱,向量檢索脈絡下多半就是指餘弦相似度 |
公式與實際算一次
兩個向量 A 與 B 的餘弦相似度定義為:
cos(θ) = (A · B) / (‖A‖ × ‖B‖)
分子是內積,分母是兩個向量長度的乘積。實際算一次:
A = [1, 2, 3],B = [2, 4, 6]
步驟 計算 結果 內積 A · B 1×2 + 2×4 + 3×6 28 ‖A‖ √(1 + 4 + 9) 3.742 ‖B‖ √(4 + 16 + 36) 7.483 相似度 28 ÷ (3.742 × 7.483) 1.0 結果剛好是 1,因為 B 就是 A 乘以 2,兩個向量方向完全相同。這正是餘弦相似度的關鍵性質:它只看方向,不看長度。
值域是 -1 到 1。1 代表方向相同,0 代表垂直(無關),-1 代表方向相反。用在文字嵌入時實務上很少出現負值,因為多數嵌入模型的輸出落在相近的區域。
跟其他距離的取捨
| 度量 | 看的是 | 適合 |
|---|---|---|
| 餘弦相似度 | 方向 | 文字嵌入、向量檢索,因為文件長短不該影響主題相似度 |
| 歐氏距離 | 絕對位置 | 座標、影像特徵等長度本身有意義的情境 |
| 內積 | 方向加上長度 | 推薦系統,長度可以編碼熱門程度 |
| Jaccard 相似度 | 集合重疊比例 | 標籤、關鍵字這類集合型資料 |
一個常被忽略的等價關係:向量先做 L2 正規化之後,內積就等於餘弦相似度,歐氏距離的排序也跟餘弦相似度一致。所以多數向量資料庫的做法是入庫前先正規化,之後統一用內積算,速度最快。
情境判斷
Q1(直覺題): 兩段文字長度差很多,但主題很像,餘弦相似度還能有效嗎?
→ 可以,因為它主要看方向,不太在意長短。
Q2(判斷題): 如果兩個向量很長,餘弦相似度就一定比較高嗎?
→ 不一定,長度不是它最在意的事,方向才是。
常見問題
餘弦相似度一定介於 0 到 1 嗎?
不一定,若允許負向量,範圍可以到 -1 到 1。
文字比對一定要用餘弦相似度嗎?
不一定,但它是最常見也最直觀的方法之一。
它和關鍵字比對差在哪?
關鍵字比對看字面,餘弦相似度看語意向量的方向。