iT邦幫忙

2025 iThome 鐵人賽

DAY 10
0
生成式 AI

30天RAG一點通系列 第 10

(RAG 2-3) 混合檢索與查詢智能化:召回率與精度的雙重保障

  • 分享至 

  • xImage
  •  

在企業級 RAG 系統中,光靠 向量檢索(Semantic Search)或 傳統關鍵字檢索(Lexical Search)往往不足:

  • 向量檢索:語意理解強,但可能「太聰明」,忽略了關鍵字(例如「NOT」、「2024」這種精確匹配需求)
  • 關鍵字檢索(如 BM25):能精準匹配詞彙,但缺乏語意理解,無法處理「同義詞、問法多樣化」的問題

因此企業常用 混合檢索(Hybrid Search)+ 查詢智能化(Query Understanding),來同時兼顧 召回率(recall)與 精度(precision)。

混合檢索(Hybrid Search)

BM25 + 向量檢索的協同優勢

1. Lexical Search(BM25 / Elasticsearch)

  • 找出和 Query 關鍵詞精確匹配的文件
  • 適合處理「數字、代號、專有名詞」

2. Vector Search(Bi-encoder + ANN)

  • 找出和 Query 語意相似的文件
  • 適合處理「不同說法、同義詞、上下文理解」

3. 融合策略

分數加權融合
「實務上需要對 BM25 與向量分數做正規化,再進行加權。」

final_score = α × bm25_score + (1-α) × vector_score

結果合併策略

  • 各自取前 K 筆
  • 合併後再重排(可使用 RRF - Reciprocal Rank Fusion)

動態權重選擇

if query_type == "精確匹配":
    α = 0.7  # 偏重 BM25
elif query_type == "語義查詢":
    α = 0.3  # 偏重向量檢索
else:
    α = 0.5  # 平衡權重

這種方式能最大化召回率,避免只靠單一檢索策略而「漏掉答案」。

查詢智能化(Query Understanding)

即使檢索能力很強,如果使用者輸入的 Query 不佳,結果還是可能失敗。因此需要對 Query 進行 優化處理

1. 查詢改寫(Query Rewriting)

將使用者輸入的口語 Query 改寫成更適合檢索的形式。

範例:

  • 原始 Query:「公司最近有沒有新的 AI 產品?」
  • 改寫後:「公司 AI 新產品 發表 2024」

2. 同義詞擴展(Synonym Expansion)

加入業務領域的同義詞詞庫,提升召回率。

範例:

  • Query:「CRM 系統」
  • 擴展:「客戶管理系統」「Customer Relationship Management」

3. 意圖識別(Intent Classification)

判斷 Query 屬於哪種類型(事實查詢 / 文件檢索 / FAQ 問答),依類型決定檢索策略。

策略比較

方法 優點 缺點 適用場景
純 BM25 精確匹配強 無法理解語意 法規條文、代碼檢索
純向量檢索 語意理解佳 可能忽略關鍵字 FAQ、客服知識庫
混合檢索 兼顧精度 + 召回 成本較高 大型企業知識庫
查詢智能化 提升檢索準確性 額外計算開銷 用戶 Query 多樣化

效果評估

實驗表明:

  • 純 BM25 Recall@10 ≈ 50–60%
  • 純向量檢索 Recall@10 ≈ 65–75%
  • 混合檢索 Recall@10 ≈ 80–90%

如果再加上 查詢改寫 + 同義詞擴展,精度能再提高 5–10%

企業應用案例

客服中心

  • 用戶輸入「密碼鎖定怎麼辦?」
  • 系統改寫為「密碼重設 流程」,混合檢索 FAQ 文件

法務文件檢索

  • Query:「勞基法 加班費 2024」
  • BM25 保證「2024」「勞基法」必須出現,向量檢索找到「加班費相關條文」

產品知識庫

  • Query:「CRM 解決方案」
  • 同義詞擴展自動加入「客戶管理系統」

BM25 深度解析

BM25 運作流程

  1. 精確詞匹配 → 找出包含查詢詞的文檔
  2. 詞頻加權 → 詞彙在文檔中出現越多次,分數越高
  3. 逆文件頻率 → 稀有詞彙權重更高
  4. 文件長度正規化 → 避免長文檔佔優勢

BM25 計算公式

BM25(q,d) = Σ IDF(qi) × (f(qi,d) × (k1+1)) / (f(qi,d) + k1 × (1-b+b×|d|/avgdl))

其中:

  • f(qi,d) = 詞彙 qi 在文檔 d 中的頻率
  • |d| = 文檔 d 的長度
  • avgdl = 平均文檔長度
  • k1, b = 調節參數

BM25 實例

Query:「蘋果 手機」

  • Doc1(蘋果+手機)> Doc2(只有手機)> Doc3(無關)

BM25 限制與解決方案

限制: 如果 Query 出現了索引裡沒有的詞(如「iPhone」),BM25 完全查不到。

解決方案:查詢改寫、同義詞擴展、向量檢索 來彌補。

總結

混合檢索與查詢智能化,讓企業級 RAG 系統同時兼顧:

  • 召回率(Recall):避免漏掉答案
  • 精度(Precision):避免答非所問
  • 最佳實踐:BM25 + 向量檢索融合,再配合查詢改寫與同義詞擴展

想想看

  1. 技術債務權衡:混合檢索能提升 10-30 % 精度,但增加系統複雜度和維護成本。什麼情況下這個投資划算?
  2. 查詢改寫的邊界:過度的查詢改寫可能扭曲用戶原意。如何平衡「理解用戶」和「保持原意」?

上一篇
(RAG 2-2) 檢索精度突破:Rerank重排序的企業實踐
下一篇
(RAG 2-4) 元數據的力量:結構化信息驅動的精準檢索
系列文
30天RAG一點通12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言