RAG 與知識庫

BM25 是什麼?老派但精準的關鍵字比對演算法

BM25(Best Matching 25)是一種傳統的資訊檢索演算法,透過精準的關鍵字比對與加權計算,找出與查詢最相關的文件。它綜合三件事來評分:關鍵字在文件中出現的次數、這個關鍵字在整體文件集中的稀有程度,以及文件長度的調整。分數越高代表越相關,計算快、可解釋,是搜尋引擎的經典技術。
BM25 是什麼?老派但精準的關鍵字比對演算法:文章重點卡

BM25 是什麼?老派但精準的關鍵字比對演算法

在向量搜尋流行之前,搜尋引擎靠的就是這一類演算法。到了 RAG 時代它也沒有退場,因為有些查詢,就是要靠字面精準命中。

你將學到什麼

定義

用關鍵字出現次數、稀有程度與文件長度算相關分數的檢索演算法。

白話比喻

像用書末索引找頁碼:字要對得上才算,對上越多次越前面。

跟誰容易搞混

向量搜尋比的是語意,BM25 比的是字面,兩者常常合併使用。

定義

BM25(Best Matching 25)是一種排名演算法,根據關鍵字在文件中的出現頻率、文件長度,以及關鍵字在整體文件集中的稀有程度,計算文件與查詢的相關分數。

它的核心精神有三個:精準,完全依賴關鍵字是否出現與出現次數;高效,計算快速可擴展;可解釋,評分依據清晰透明。

白話比喻

它像你翻書末的索引。你查一個詞,索引告訴你哪幾頁有,出現越多次的那頁通常越相關。

而且大家都會用的詞不值錢。「的」出現一萬次沒有意義,某個專有名詞只出現在三頁裡,那三頁才是重點,這就是稀有程度的作用。

BM25 跟向量搜尋差在哪?

比較項目BM25 關鍵字比對Vector Search 向量搜尋
比對依據字面是否命中語意是否接近
同義詞不會匹配可以匹配
可解釋性高,分數來源清楚較低,靠向量距離
最擅長的查詢型號、人名、專有名詞、錯誤代碼概念性、口語化的提問

實際用例

BM25 的計分邏輯拆開來看有三塊:詞頻代表關鍵字在這份文件中出現幾次,次數越多越相關;反向文件頻率代表這個詞越稀有、區辨能力越強。

第三塊是長度正規化,用來避免偏好過長的文件,否則一份什麼都寫一點的長文會不公平地贏過精準的短文。

常見的應用場景包括搜尋引擎、學術資料庫、企業內部文件檢索,以及 FAQ 與客服系統的常見問題比對。

常見誤解很多人以為做了 RAG 就該全部改用向量搜尋,把 BM25 當成過時的東西。實際上兩者互補:向量搜尋懂語意但不夠精準,BM25 精準但不懂語意。把兩者結合起來的做法叫 Hybrid Search 混合搜尋,在企業知識庫裡幾乎是標配。整條檢索的流程,可以再看 Retrieval 檢索
本文源起本文內容出自酒Ann 的「AI 實戰陪跑班」課程教材,由酒Ann 編寫成彙編條目。想系統性搞懂 AI 名詞,歡迎追蹤 酒Ann 的 Facebook

延伸學習

把這篇文章分享給需要的人FacebookLINEThreadsX

常見問答

BM25 為什麼在 AI 時代還有用?
因為它精準、快速且可解釋。產品型號、專有名詞、人名、錯誤代碼這類查詢,就是要字面對得上,語意相近反而會撈到錯的東西。
BM25 的限制是什麼?
它無法理解語義,同義詞不會匹配,對關鍵字的拼寫變化也很敏感,可能遺漏語意相近但用詞不同的內容。
BM25 跟向量搜尋要選哪一個?
實務上多半兩個都用,也就是混合搜尋。用 BM25 抓字面精準命中,用向量搜尋補語意相近的內容,再把兩邊的結果合併排序。