Okapi BM25算法

引言

        Okapi BM25,一般简称 BM25 算法,在 20 世纪 70 年代到 80 年代,由英国一批信息检索领域的计算机科学家发明。这里的 BM 是“最佳匹配”(Best Match)的缩写,Okapi 是第一个使用这种方法的信息获取系统的名称。在信息检索领域,BM25 算法是工程实践中举足轻重的重要的 Baseline 算法。迄今为止距 BM25 的提出已经过去三十多年,但是这个算法依然在很多信息检索的任务中表现优异,是很多工程师首选的算法之一。

BM25

        BM25 算法实质上是一个用于信息检索中,对给定查询(query)和若干“相关”文档(document)进行相关性排序打分的排序函数。严格来讲,这不是一个打分函数,而是一个家族的一系列评分函数,因为它的提出并非一蹴而就的事情,它的发明经过了若干试验迭代演进。一般情况下,这个相关性打分是一个类似 TF-IDF 的基于统计计数的无监督学习过程。

BM25 算法其主要思想可简述如下:对 query 进行特征提取分解,生成若干特征项(词)qi;然后对于每个搜索结果 D,计算每个特征 qi 与 D的相关性得分,最后,将 qi 相对于 D�的相关性得分进行加权求和,从而得到 query 与 D的相关性得分。

BM25 算法的一般表示可简写为如下形式:

 其中,q表示 query, qi表示 q 分解之后的一个特征项(对中文而言我们可以把对 query 的分词作为基本特征项),d表示一个搜索结果文档;Wi 表示特征 qi的权重;R(qi,d)表示特征项 qi 与文档 d 的相关性得分。

上面这个一般的式子里的 Wi 和 R(qi,d) 的具体计算,都是基于词袋方法的词频计数,它不考虑多个搜索词在文档里的关联性,只考虑它们各自的出现次数。

下面我们来考察以上得分函数的两个量 Wi和 R(qi,d) 该如何设计和计算。

首先来看如何定义 Wi,考察一个特征词的权重,方法比较多,较常用的是 IDF,BM25 选择的是 Robertson-Sparck Jones IDF:

其中,N 为文档集合中的全部文档数,n(qi)为包含 qi的文档数。IDF 公式指出,qi出现在越多的文档中,则 qi 的权重则越低。这里个定义有个问题,那就是,如果一个词在超过半数的文档里出现,则 IDF 为负值,于是这个词对 BM25 分数的贡献是负的。一般不希望这样的特性,所以当 IDF 为负数时,可将其置为 0,或者一个比较小的正数,或者改用一种平滑过渡到 0 的函数形式。

我们再来考察特征项 qi与文档 d 的相关性得分 R(qi,d)

        比较朴素的考虑可以用特征词的文档词频来简单表示 R(qi,d),但这种直观的想法不可避免导致长文本中,词的频度普遍较高,最终相关性得分会过度倾向于长文本,显然不尽合理;另一方面,不难想象到,某个词对文档的贡献不应该无限度地随词频增长而线性增加,当该词的词频高于某个程度就应该趋于饱和,而不应该让其得分贡献无限度增大,从而在整个得分求和式子中占支配地位。

        基于以上两方面的考虑,BM25 采取了以下方式来计算 R(qi,d):        

BM25 的变种和改进 

  1. BM25L
  2. BM25+
  3. BM25-adpt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值