モデル・技術

BM25とは?語の出現で順位をつける——キーワード検索の定番ランキング

読み:びーえむにじゅうご / 英:BM25(Best Matching 25)

更新日: 読了目安:約6分

BM25は、キーワード検索で文書の関連度をスコア化し、上位から順に並べる——ランキング関数の定番です。検索語と文書中の語句の一致を手がかりに探す基本方式(TF-0236)の中核を担います。本記事は数式の係数暗記ではなく、「なぜRAGでもまだキーワード検索が生きるか」——検索方式の地図——に焦点を当てます。

キーワード検索の基本

キーワード検索は、ユーザーが入力した検索語と、文書中の語句の一致を手がかりに情報を探す方法です(TF-0236)。

キーワード検索は、検索語と文書中の語句の一致を手がかりに情報を探す方法である。

一致した文書をどう並べるか——ランキング——が検索品質の鍵です。BM25はその順位づけに広く使われる関数の一つで、古典的なTF-IDFを発展させた系譜に位置づけられます(G-333)。

BM25の考え方

試験向けに、BM25が何をしているかを直感で押さえます。

  • 語の出現 — 検索語が文書に何回出るか(ただし出すぎると効きが鈍る調整あり)
  • 希少性 — コーパス全体でめずらしい語の一致ほど加点されやすい(TF-IDFと同型の発想)
  • 文書長 — 異常に長い文書が有利になりすぎないよう長さを補正
  • 出力 — 文書ごとに関連度スコア。高い順に検索結果を返す

名前の Best Matching 25 は、確率論的ランキング関数の系譜(Okapi BM25など)に由来します。試験では「BM25=検索語を無視する」などの誤答に注意(TF-0237は×)。

検索方式のスペクトル

方式マッチの基準得意・苦手
BM25語の一致・出現統計型番・固有名詞に強い。言い換えに弱い
TF-IDF語頻度×逆文書頻度BM25の祖先。特徴量・検索の基礎(G-333)
ベクトル検索埋め込みの意味的類似言い換えに強い。短いクエリで外しやすいことも
セマンティック検索意味的類似(概念)実装はベクトル検索が多い

TF-0236の解説にあるように、埋め込み検索とは異なり、意味が近くても表現が違う場合に見つけにくい——がキーワード検索の典型的な弱点です。逆に、製品コードの完全一致ではBM25が依然として有効です。

RAGでの使われ方

RAGの検索段階では、ベクトル検索だけでなくBM25によるキーワード検索を併用する——ハイブリッド検索——が実務でよく採用されます。

  • BM25 — 固有名詞・専門用語・型番を拾いやすい
  • ベクトル検索 — 言い換え質問・概念検索に強い
  • 統合 — 両方の上位結果をマージしてLLMに渡す

BM25はRAGそのものではありません。RAGは検索+生成の全体設計であり、BM25は検索レイヤーの部品の一つです(TF-174)。

試験で押さえるポイント

  • 定義 — キーワード検索で使うランキング関数
  • 原理 — 検索語と文書中の語句一致+出現統計(TF-0236)
  • 対比 — ベクトル/セマンティック検索=意味的類似。BM25=語の一致
  • RAG — 検索部品の一つ。RAG全体ではない

演習で確認する

生成AIパスポート:TF-0236TF-0237 G検定:G-333TF-174

すり替えに注意

誤った説明正しい理解
BM25=RAGランキング関数 vs 検索拡張生成全体
BM25=ベクトルDBスコア計算 vs 格納・検索基盤
BM25=埋め込みモデル語の一致 vs ベクトル化モデル
キーワード検索=検索語を無視一致を手がかりにする(TF-0237は×)
BM25=LLM検索の順位づけ vs 言語生成モデル

よくある質問

BM25は何をする手法ですか?

ユーザーの検索語と文書中の語句の一致を手がかりに、各文書への関連度スコアを計算して順位づけするキーワード検索のランキング関数です。語の出現頻度や文書長などを考慮し、関連しそうな文書を上位に並べます。

BM25とベクトル検索の違いは?

BM25は語の一致に基づくキーワード検索の代表です。ベクトル検索は埋め込みの意味的類似度で探します。BM25は型番の完全一致に強く、言い換えには弱い一方、ベクトル検索は言い換えに強いが固有名詞で外すこともあります。RAGでは両方を併用するハイブリッド検索も多いです。

BM25はRAGそのものですか?

いいえ。BM25は検索段階で使うランキング手法の一つです。RAGは検索した結果をLLMの生成に渡す全体アーキテクチャであり、BM25はその検索レイヤーの選択肢の一つに過ぎません。