BM25

ビーエムニジュウゴ

BM25

BM25(Best Matching 25)とは、文書中の単語の出現頻度と文書長を考慮してクエリとの関連度をスコアリングする確率的情報検索アルゴリズムである。

TF-IDF の発展形として

BM25 は TF-IDF の考え方を拡張したランキング関数で、Elasticsearch や Apache Solr など主要な全文検索エンジンのデフォルトアルゴリズムとして長く使われてきた。「ある単語が文書中に多く出現するほど関連性が高い」という直感を、飽和関数で補正する点が特徴的だ。単語の出現回数が増えてもスコアが際限なく上がらず、一定のところで頭打ちになる。

パラメータは主に2つ。k1 は単語頻度の飽和速度を制御し、b は文書長による正規化の強さを調整する。デフォルト値(k1=1.2, b=0.75)のまま使われることが多いが、ドメイン固有のコーパスではチューニングで検索精度が改善する場合もある。

RAG パイプラインでの位置づけ

ベクトル検索(セマンティック検索)が注目される中でも、BM25 はキーワードの完全一致や専門用語の検索で依然として強い。実務では BM25 とベクトル検索を併用し、RRF(Reciprocal Rank Fusion)でスコアを統合するハイブリッド検索が定番パターンになっている。

固有名詞や型番のような「意味」よりも「文字列の一致」が重要なクエリでは、ベクトル検索単体よりも BM25 を含むハイブリッド構成が安定した結果を返す。