深入認識檢索方式-語意檢索及關鍵字檢索
關鍵字檢索是什麼?
關鍵字檢索是最傳統、也是目前仍廣泛使用的檢索方式,其核心概念是 字面匹配,
常見方法包括
- 布林檢索:透過 AND、OR、NOT 等條件組合。
- TF-IDF / BM25:利用詞頻與逆文檔頻率衡量詞的重要性。
特徵
- 依賴關鍵字的出現與權重。
- 不理解詞彙背後的語意。
優點
- 運算速度快:字面匹配與排序成本低。
- 資源消耗少:無需額外模型或向量儲存。
- 精準命中關鍵詞:適合用於專業術語檢索(法律條文、程式碼)。
缺點
- 無法理解語意:遇到同義詞、語序變化會漏掉結果。
- 缺乏語境感知:無法判斷兩段文字是否描述相同概念。
語意檢索是什麼?
語意檢索則是利用 向量化(Embedding)技術,將文字轉換成多維度向量,並透過相似度(通常是餘弦相似度)計算內容的相關性。
例如
「買房貸款」與「購屋貸款」在字面上不同,但向量表示會很接近,因為它們語意類似。
核心技術
- 詞嵌入(Word Embedding) → Word2Vec、GloVe
- 句子 / 文件嵌入 → BERT、OpenAI Embedding、Sentence-BERT
優點
- 理解語意:可處理同義詞、語序調換,提升檢索體驗。
- 支持自然語言問題:適合問答、聊天機器人、知識檢索。
缺點
- 成本高:需要模型計算 Embedding,並儲存高維度向量。
- 查詢速度依賴向量索引:需用 FAISS、Milvus、Pinecone 等專門向量資料庫。
核心差異比較
| 特徵 | 關鍵字檢索 | 語意檢索 |
|---|---|---|
| 比對方式 | 文字字面匹配 | 向量相似度比較 |
| 同義詞處理 | 無法處理 | 可處理 |
| 語境理解 | 無法理解 | 支援 |
| 速度 | 快 | 較慢(需優化) |
| 成本 | 低 | 高(模型與向量儲存) |
| 適用場景 | 法條查詢、代碼檢索、全文比對 | 智慧問答、客服、知識庫檢索、搜尋推薦 |
適用場景與最佳實踐
-
當你需要精準命中關鍵詞時 → 關鍵字檢索仍然最有效,例如:
- 法律條文比對
- 程式碼檢索
- 電子書全文搜尋
-
當使用者查詢不固定、語意多變時 → 語意檢索更適合,例如:
- 智慧客服
- FAQ 問答
- 知識管理與文件檢索
-
混合檢索 → 結合關鍵字與語意檢索,提升精準度與覆蓋率,並兼顧效能。
結論
關鍵字檢索與語意檢索並不是「誰取代誰」的關係,而是「互補」的角色。
- 關鍵字檢索在精準查找與低成本場景中仍然有不可取代的優勢。
- 語意檢索則讓人機互動更加自然,適合現代智慧應用。
未來最佳的方案,往往是 混合檢索,結合兩者優勢,根據不同需求彈性調整。
附錄
什麼是 Embedding 模型?
Embedding(向量表示)是一種將文字轉換為向量空間中的數值表示的方法。 在語意檢索中,我們會將文章內容與使用者查詢都轉換成向量,然後透過餘弦相似度(Cosine Similarity)或其他距離度量來計算它們之間的語意相似度。
Embedding 模型可以:
- 將相似語意的句子投射到接近的向量空間
- 能處理多語言(例如英文與中文,如果支援的話)
- 兼顧準確度、效能與成本
常見的 Embedding 模型比較
以下是市面上主流的幾個 Embedding 模型:
| 模型名稱 | 語言支援 | 調用成本 | 效果表現(測試分數) | 特點 |
|---|---|---|---|---|
| OpenAI text-embedding-3-small | 英文為主 | 低 | 中等 | 速度快、價格便宜,但中文效果普通 |
| OpenAI text-embedding-3-large | 英文佳,中文普通 | 中高 | 高 | 適合英文語料庫,中文檢索略遜 |
| Google gemini-embedding-001 | 支援中英文 | 免費額度 | 最佳 | 表現最穩定,語意捕捉能力佳,尤其適合多語環境 |
| Cohere multilingual-22-12 | 支援多語 | 中 | 中高 | 多語言支援佳,但精準度稍遜於 Google |
| Sentence-BERT (開源) | 支援多語 | 免費(需自行部署) | 中 | 需自行訓練或調整,部署成本高,不適合快速開發 |
從測試結果觀察
根據表格 Embedding Model Leaderboard,可以發現:
- Google gemini-embedding-001的整體分數表現最佳,尤其在多語言(含中文)場景中具備優勢。
- OpenAI 的模型在英文效果很好,但中文檢索的語意一致性稍微落後。
- Cohere 在多語場景也不錯,但成本與效果綜合評估不如 Google。
- 開源模型(如 Sentence-BERT)適合自建,但需要 GPU 資源與調優,對於快速開發的專案不友善。
參考
- 【Day 23】語意檢索與關鍵字檢索 - 深入認識檢索方式
- 【Day 24】Embedding 模型比較 - 選擇最適合專案的模型
- 使用繁體中文評測各家 Embedding 模型的檢索能力
- Embedding Model Leaderboard