BM25

Best Matching 25

BM25とは

BM25(Best Matching 25)とは、情報検索において文書のランキングに使用される確率的な関連度スコアリング関数です。TF-IDFの発展形として1994年にStephen Robertsonらが提案し、Elasticsearchなどの検索エンジンに標準的に実装されている、最も実用的な検索アルゴリズムの一つです。

表:BM25の要点まとめ
ひとことで言うとTF-IDFを改良した、検索の関連度を測る定番のスコア計算式。
何がうれしいか同じ語が何度も出ても効きすぎないよう調整され、文書の長さの違いも補正される。
注意点語の一致が前提なので、言い換えには弱い。ベクトル検索と併用するのが近年の定番。

BM25の計算

BM25は各クエリ単語のTF(単語頻度)とIDF(逆文書頻度)を組み合わせてスコアを算出します。TF-IDFとの違いは、TFに飽和関数を適用すること(単語頻度が高くてもスコアが際限なく増加しない)と、文書の長さによる正規化を行うことです。パラメータk1は飽和の速度を、bは文書長正規化の度合いを制御します。

図:BM25が順位を決めるまで
1検索語を分解キーワードに分ける
▶
2出現回数を集計各文書ごとに数える
▶
3頭打ち補正多すぎても効果を抑制
▶
4文書長で補正長い文書が有利になりすぎない
▶
5スコア順に並べる関連度の高い順に表示

BM25の利点

BM25は計算が高速で、大規模な文書集合にも効率的に適用できます。長い文書に対する過剰な重み付けを避ける正規化機能があり、パラメータ調整も直感的です。深層学習ベースの手法が登場しても、そのシンプルさと効率性から依然として広く使われています。

BM25とニューラル検索の融合

現代の情報検索システムでは、BM25によるスパース検索と、BERTなどのモデルによる密ベクトル検索を組み合わせたハイブリッド検索が注目されています。BM25で候補を絞り込み、ニューラルモデルでリランキングする手法が効果的です。