BM25 算法(文本相关性)

名词解释

现代 BM25 算法是用来计算某一个目标文档(Document)相对于一个查询关键字(Query)的“相关性”(Relevance)的流程。BM25,有时候全称是 Okapi BM25,是由英国一批信息检索领域的计算机科学家开发的排序算法。这里的“BM”是“最佳匹配”(Best Match)的简称。(内容来自:经典搜索核心算法:BM25 及其变种)

LeanCloud 解读

BM25 是搜索算法中计算权重的一种度量方法,可以理解以 TF-IDF 为基础的一种升级算法,在实际运用中更加灵活和强大,具有更高的实用性。

BM25 在搜索关键词时增加了文档长度与平均长度的比值,以及对比值数的限制,相比 TF-IDF,除了引入长度比值外,BM25 还 normalize 了 TF,可以控制特别高的 TF 对 rank 的影响。从下图可以看到,文档越短,它逼近上限的速度越快,反之则越慢。这是可以理解的,对于只有几个词的内容,比如文章标题,只需要匹配很少的几个词,就可以确定相关性。而对于大篇幅的内容,比如一本书的内容,需要匹配很多词才能知道它的重点是讲什么。

BM25 算法示例图

BM25 在 20 世纪 70 年代到 80 年代被提出,到目前为止已经过去二三十年了,但是这个算法依然在很多信息检索的任务中表现优异,是很多工程师首选的算法之一。LeanCloud 应用内搜索底层是 Elasticsearch,用的就是 BM25 算法。

内容参考链接:

经典搜索核心算法:BM25 及其变种

搜索中的权重度量利器: TF-IDF和BM25

评论

Loading comments ...