LS-Labs

搜索与 AI

BM25 是什么?

Okapi BM25

BM25 是关键词检索常用的排序方法,依查询词在文档中出现的次数、这个词在整个数据集里有多少见,以及文档长度,计算文档与查询的相关分数。Elasticsearch 默认使用 BM25 计算相关性。

分数怎么算

BM25 属于 TF-IDF 一类的计分方式。查询词在文档里出现越多次,分数越高,但增加的幅度会逐渐变小;越少见的词权重越高;文档越长,同样的出现次数算得越少。

Elasticsearch 用参数 k1 控制词频多快达到饱和,用 b 控制文档长度的影响,默认值分别是 1.2 与 0.75。

和语义检索的差别

BM25 本身按词项计分,不会自行理解同义词。如果系统没有加入同义词扩展,用户说“订位”、工具只写“预约”,就可能缺少可匹配的词项;以 Embedding 为基础的语义检索则是另一种建立关联的方式。两者可以并用,再将候选交给重排序模型精排。

参考资料

最近查核:

← 返回名词解释