BM25 是搜索算法中计算权重的一种度量方法,可以理解以 TF-IDF 为基础的一种升级算法,在实际运用中更加灵活和强大,具有更高的实用性。
BM25 在搜索关键词时增加了文档长度与平均长度的比值,以及对比值数的限制,相比 TF-IDF,除了引入长度比值外,BM25 还 normalize 了 TF,可以控制特别高的 TF 对 rank 的影响。从下图可以看到,文档越短,它逼近上限的速度越快,反之则越慢。这是可以理解的,对于只有几个词的内容,比如文章标题,只需要匹配很少的几个词,就可以确定相关性。而对于大篇幅的内容,比如一本书的内容,需要匹配很多词才能知道它的重点是讲什么。
BM25 在 20 世纪 70 年代到 80 年代被提出,到目前为止已经过去二三十年了,但是这个算法依然在很多信息检索的任务中表现优异,是很多工程师首选的算法之一。LeanCloud 应用内搜索底层是 Elasticsearch,用的就是 BM25 算法。
内容参考链接: