Okapi BM25
BM25は、bag-of-wordsを拡張した手法であり、文書内のクエリの単語同士の相互関係ではなく、文書におけるクエリの単語の出現頻度に基づいて、文書集合を順位付けする。
単語 q 1 , . . . , q n {\displaystyle q_{1},...,q_{n}} を含むクエリQが与えられたとき、文書DのBM25スコアは、
score ( D , Q ) = ∑ i = 1 n IDF ( q i ) ⋅ f ( q i , D ) ⋅ ( k 1 + 1 ) f ( q i , D ) + k 1 ⋅ ( 1 − b + b ⋅ | D | avgdl ) , {\displaystyle {\text{score}}(D,Q)=\sum _{i=1}^{n}{\text{IDF}}(q_{i})\cdot {\frac {f(q_{i},D)\cdot (k_{1}+1)}{f(q_{i},D)+k_{1}\cdot \left(1-b+b\cdot {\frac {|D|}{\text{avgdl}}}\right)}},}
と定義される。このとき、 f ( q i , D ) {\displaystyle f(q_{i},D)} を文書Dにおける単語の出現頻度、 | D | {\displaystyle |D|} を文書Dの単語数、avgdlを文書集合の平均単語数とする。 k 1 {\displaystyle k_{1}} およびbは任意のパラメータであり、 k 1 ∈ [ 1.2 , 2.0 ] {\displaystyle k_{1}\in [1.
BM25の係数bを極値に変えたものは、BM11( b = 1 {\displaystyle b=1} のとき)やBM15( b = 0 {\displaystyle b=0} のとき)という。
BM25F:重要度や長さが異なるフィールド(見出しや本文、アンカーテキストなど)で構成される文書を考慮した、BM25の改変版である。
BM25+:BM25では、単語出現頻度が文書長で適切に正規化されていないため、クエリを含む長い文書よりクエリを含まない短い文書の方がBM25スコアが高くなることがある。BM25+は、BM25の上記について改良するために開発された。BM25+の定義式では任意のパラメータ δ {\displaystyle \delta } が追加されている(訓練データがないときの初期値は1.0)。BM25+の定義式は、下式である。
score ( D , Q ) = ∑ i = 1 n IDF ( q i ) ⋅ [ f ( q i , D ) ⋅ ( k 1 + 1 ) f ( q i , D ) + k 1 ⋅ ( 1 − b + b ⋅ | D | avgdl ) + δ ] {\displaystyle {\text{score}}(D,Q)=\sum _{i=1}^{n}{\text{IDF}}(q_{i})\cdot \left[{\frac {f(q_{i},D)\cdot (k_{1}+1)}{f(q_{i},D)+k_{1}\cdot \left(1-b+b\cdot {\frac {|D|}{\text{avgdl}}}\right)}}+\delta \right]}