来源:互联网 更新时间:2026-08-10 15:32
说起BM25算法,它在信息检索圈里算得上是一位“老将”了。上世纪70年代到80年代,由英国一批信息检索领域的科学家共同发明,名字里的“BM”是“最佳匹配”(Best Match)的缩写,而“Okapi”则是第一个采用这套方法的系统名称。三十多年过去,BM25依然是工程实践中最稳健的基线算法之一,在很多检索任务里表现依旧亮眼,是不少工程师的首选方案。
它的核心逻辑其实挺直白:把查询文本拆成一个个词素(词),然后针对每个搜索结果文档,计算每个词素与文档的相关性得分,最后把这些得分加权求和,得到最终的排序依据。它与TF-IDF的统计思想一脉相承,但细节上更精细。
围绕BM25,后续衍生出不少变种,简单梳理几个关键方向:
先概括一下BM25到底干什么用。它是一个用于信息检索中对查询(query)与候选文档(document)进行相关性排序的打分函数。严格说,它并不是一个单一的公式,而是一类评分函数的统称——它的发明经历了多次迭代演进。通常,这种相关性打分基于统计计数,属于无监督学习。
主要思想:对查询进行特征提取,生成若干特征项(词);对于每个搜索结果文档D,计算每个特征项与D的相关性得分,最后加权求和得到query与D的总体相关性。
BM25的一般形式可简写为:
其中,表示query,表示分解后的一个特征项,D表示搜索结果文档;表示特征项的权重;表示特征项与文档D的相关性得分。
上述公式中的和都是基于词袋方法的词频计数,不考虑多个搜索词在文档里的关联性,只考虑各自出现次数。下面来看这两个量如何设计。
其中N为文档总数,为包含的文档数。出现在越多的文档中,其权重越低。但有个问题:如果某个词出现在超过半数的文档里,IDF会变为负值,导致它对BM25分数的贡献是负的。通常不希望这样,可以将其置为0或一个小的正数,或者改用平滑过渡到0的函数。
其中为在D中的词频,为文档长度,为平均文档长度,和为可调超参数(一般)。关于的函数是一个“饱和”递增函数,使词频增长对得分的贡献变成非线性。
从定义可知,调节特征词文本频率尺度:当时退化为二元模型(不考虑词频);取较大值则近似只用原始词频。一般称为文本长度规范化因子,调整文档长度对相关性影响的大小。越大,文档长度的影响越大;文档相对越长,值越大,得分越小。这可以理解为:文档越长,包含某个词的机会越大,所以同等词频下,长文档与它的相关性应弱于短文档。
综合以上,BM25的完整形式如下:
另外,若query较长且某些词在query中间出现频率较高,也应考虑其重要性相应提高,但同样需要类似的饱和约束。将类似权重策略用于query中的特征项,得到:
其中为特征项在查询中的频率,超参数调节其在query中的文本频率尺度。这里对query进行长度规范化是不必要的,因为候选检索结果中query是固定的。
从以上讨论可知,BM25其实是一系列经验公式,每个环节都经过研究者的逐步迭代而发现。不少研究从“概率相关模型”入手,证明BM25是对某一类概率模型的逼近,这里不深入展开。从实践看,BM25权重公式已在大量数据集和搜索任务中被高频、广泛且成功地使用。
一条查询与任意搜索结果文档之间的相关性得分可表示为:
上式中,表示query,表示解析后的语素,d表示搜索结果文档,表示语素的权重,表示语素和d的相关性得分。
(1)的定义:常用IDF形式,N是全部文档数,是包含的文档数。显然,与成反比:包含的文档越多,其区分度越低,重要性越小。
(2)的定义:一般形式为:
其中,、是可调因子(一般,);为在d中的词频;为在query中的词频;为d的长度;为所有文档的平均长度。多数情况下,在query中只出现一次,即,公式可简化为:
从K的表达式可知,的作用是调整对“相关性影响”的大小:越大,对得分的影响越大;而越长,K值越大,得分越小。解释:较长文档包含某个词的机会更大,同等词频下,长文档的相关性应弱于短文档。
BM25公式本身留有较大灵活性——通过采用不同的特征项分析方法、权重判定方法以及相关度计算方法,后续研究者提出了许多个性化的搜索相关性算法。其中,Lv & Zhai两位学者的工作最为深入和全面。
Lv & Zhai观察到BM25中的文本长度规范化项使得模型过于偏好短文档。他们在《When documents are very long, BM25 fails!》一文中提出BM25L来弥补这一不足。首先,BM25L对IDF权重项做了调整,使其不会取负值:
更重要的是,BM25L通过调节原始BM25中的项,给加一个正常数,使得分数向更小的值偏移(即对较长文档的惩罚降低)。BM25L公式可写作:
其中记号与BM25保持一致,
Lv & Zhai进一步发现对长文本的惩罚不仅存在于BM25,也出现在许多其他排序函数中。他们提出一个一般性解决方案:为每个出现在文档中的特征项的相关性得分设置一个下界。这样,无论文档多长,某个搜索词至少贡献一个正常数得分。具体做法是在乘IDF之前对整个加上一个常数:
之前的改进忽略了超参数的考察。Lv & Zhai在另一项工作中发现,全局的参数不如特征项相关的参数高效。他们利用信息论中的信息增益和散度等概念,实现了去“超参化”——会随的不同而变化,可直接计算得出,该算法称为BM25-adpt。其推导比前两个变种复杂,需要另文详解。
除上述几种衍化算法外,还有其他重要变种,如等,在不同场景下表现优于原始BM25。当然,效果优劣也取决于具体数据集和搜索任务。整体来看,BM25及其变种构成了信息检索领域一套实用且强大的打分工具,值得持续关注和灵活运用。
新浪机器学习热点小时报丨2026年07月25日18时_今日实时机器学习热点速递
黄金价格不断创新高!黄金稳定币XAU、PAXG市值达11亿美元
CC币价格预测(2026-2035):Canton币今日价格走势+长期价格预测
新浪互联网热点小时报丨2026年07月26日16时_今日实时互联网热点速递
腾讯ima怎么创建共享知识库?
蚂蚁庄园今日答案7月21日(今日已更新) 蚂蚁庄园今天正确答案是什么呢
今日比特币暴涨分析:Metaplanet的比特币BTC投资推动股价上涨17%
区块链OTC交易所有哪几家比较正规?
2026热门直线加速赛车手游推荐:高人气、爽快加速体验的精品榜单
腾讯ima怎么把微信内容一键导入知识库?
Intel喜讯连连:18A工艺良率提升到85%、CPU将涨价15%
原神霜月三处月灵龛具体位置汇总
kimi提示词专家使用方法新手指南
抖音怎么取消申请退货退款?抖音上取消退货怎么操作
合集38个项目筹集5.406亿美元 Figure融资2亿
Windy卫星云图怎么看?云层变化识别技巧
9条破亿视频,新号涨粉百万,过去半年谁在制造AI爆款?
如何修复Edge浏览器无法通过微软账号进行身份验证?
五菱星光L六座新能源SUV上市:三版可选,中配12.28
新浪人工智能热点小时报丨2026年07月30日18时_今日实时人工智能热点速递
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc