BM25 の式を読み解く
こんにちは、 @kz_morita です。
今回は,検索エンジンなどの,クエリと文書のマッチ度に使われる BM25 の式を読み解いていきます.
BM25 とは BM25 は,検索システムにおいて,クエリが文書とどれだけマッチしているかについてを計算するための手法になります.
式で表すと以下になります.
$$ score(D, Q) = \sum^{n}_{i=1} IDF (q_i) \cdot \frac{f(q_i, D) \cdot (k_1 + 1)} {f(q_i, D) + k_1 \cdot (1 - b + b \cdot \frac{|D|}{avgdl})} $$
これらの式の意味を一つずつ見ていきます.
各種変数の意味 上記の式の score 関数に登場する各種変数について見ていきます.
D 検索対象の特定の文書の文字列集合 |D| 検索対象の特定の文書の文字列集合の大きさ (どれくらいの単語量 ≒ 文書量) なのか avgdl 全文書の文字列集合の大きさの平均 Q 検索クエリの文字列集合 q 検索クエリの1つの単語 IDF関数 Inverse Document Frequency の略.いろんな文書に登場する一般的な単語だと値が小さく,レアな単語だと値が大きい f 関数 検索クエリの単語が対象の文書の中でどのくらい現れるかの指標.tf (Term Frequency) であったり,純粋な数のカウントだったりする.tf の場合は,以下のような式になる $$ tf = \frac{ある単語の出現回数}{全単語の合計数} $$