BM25算法解析

本文介绍了 bm25算法公式

BM25算法解析

bm25 是一种用来评价搜索词和文档之间相关性的算法,用简单的话来描述下bm25算法:我们有一个query和一批文档Ds,现在要计算query和每篇文档D之间的相关性分数。这种场景的应用就有很多:1、电商中计算搜索词query与商品的之间的相关性 2、知乎搜索中搜索词query与回答之间的相关性 3、匹配式智能客服中,用户问题与答案之间的相关性等。那bm25算法是怎样计算query与文档之间的相关性的呢?BM25算法计算相关性的一般性公式如下:
bm25

其中,Q表示Query,qi表示Q分词之后的每个单词;d表示一个文档;Wi表示词qi的权重;R(qi,d)表示词qi与文档d的相关性得分。所以query中每个词与文档的相关性的加权和就是query与文档的相关性得分。而求query中每个词的权重就可以使用上面所讲的tfidf,但常常只用idf(后面会讲为什么只用idf的原因),而这里采用idf的公式为:
bm25-02

其中n(qi)是文档包含词qi的文档数,N是文档总数,和上面的idf计算公式有点不同,但思路是相同的。而求R(qi,d)的公式为如下:
公式

其中,k1,b为调节因子,通常根据经验设置,一般k1=2,b=0.75;fi为qi在d中的出现频率,dl为文档d的长度,avgdl为所有文档的平均长度。总的来讲就是R(qi,d)与这个词在该文档中出现的频率呈正相关,与该文档的长度呈负相关。最终Score(Q,d)的公式为:
公式02

上一篇 下一篇


推荐文章

评论
说点什么吧?

发表评论

取消回复
  最新文章