What is BM25f

BM25f is an extension of the BM25 scoring function, which is a part of the family of ranking functions used in information retrieval. BM25 itself is a modern alternative to the classic TF-IDF scheme, designed to rank documents based on their relevance to a given query.

Here’s a breakdown of the BM25 scoring function before diving into BM25f:


BM25 is based on a probabilistic model of information retrieval. The BM25 ranking function, often simply called BM25, ranks documents based on their relevance to a given query. It consists of two parts:

  1. TF Component: The term frequency component, similar to TF in TF-IDF, but with a non-linear scaling.
  2. IDF Component: This is somewhat similar to the IDF in TF-IDF, but with a different formula and saturation.

The BM25 formula for a term ( t ) and a document ( d ) is usually expressed as:

[ \text{score}(d, t) = \frac{(k_1 + 1) \times \text{f}(t, d)}{k_1 \times ((1-b) + b \times \frac{|d|}{\text{avgdl}}) + \text{f}(t, d)} \times \text{IDF}(t) ]


  • ( \text{f}(t, d) ) = frequency of term ( t ) in document ( d )
  • ( |d| ) = length of document ( d )
  • ( \text{avgdl} ) = average document length in the corpus
  • ( k_1 ) and ( b ) = free parameters, typically chosen as ( k_1 = 1.2 ) and ( b = 0.75 )

The IDF (inverse document frequency) component in BM25 is designed to prevent negative scores for terms that appear in more than half of the documents (a limitation of the classic IDF formula):

[ \text{IDF}(t) = \log \frac{N – n(t) + 0.5}{n(t) + 0.5} ]


  • ( N ) = total number of documents in the corpus
  • ( n(t) ) = number of documents containing the term ( t )


BM25f is an extension of the BM25 model to handle multiple fields in documents. For instance, in a database of research papers, each paper could have fields like ‘Title’, ‘Abstract’, ‘Body’, ‘References’, etc. Each field might have different levels of importance when determining the relevance of a document to a query.

BM25f extends BM25 by considering the term frequency from multiple fields and weighing them differently. The basic idea is to use a weighted sum of term frequencies from various fields in the TF component of BM25.

In practice, using BM25f involves setting not only the BM25 parameters ( k_1 ) and ( b ) but also additional parameters for each field to weigh their importance appropriately.

In summary, BM25f provides a more sophisticated scoring mechanism for complex documents with multiple fields, making it suitable for diverse and structured datasets.