搜尋與 AI
BM25 是什麼?
Okapi BM25
發布於
BM25 是關鍵字檢索常用的排序方法,依查詢字詞在文件中出現的次數、這個字詞在整個資料集裡有多少見,以及文件長度,計算文件與查詢的相關分數。Elasticsearch 預設就用 BM25 計算相關性。
分數怎麼算
BM25 屬於 TF-IDF 一類的計分方式。查詢字詞在文件裡出現越多次,分數越高,但增加的幅度會逐漸變小;越少見的字詞權重越高;文件越長,同樣的出現次數算得越少。
Elasticsearch 用參數 k1 控制字詞次數多快達到飽和,用 b 控制文件長度的影響,預設值分別是 1.2 與 0.75。
和語意檢索的差別
BM25 本身按詞項計分,不會自行理解同義詞。若系統沒有加入同義詞展開,使用者說「訂位」、工具只寫「預約」,就可能缺少可匹配的詞項;以 Embedding 為基礎的語意檢索則是另一種建立關聯的方式。兩者可以並用,再將候選交給重排序模型精排。
參考資料
- Elastic:Similarity settings
- Robertson, S., & Zaragoza, H.(2009):The Probabilistic Relevance Framework: BM25 and Beyond
- Elastic:Synonym token filter
最近查核: