-->

AI内参_34_032_经典搜索核心算法BM25及其变种内附全年目录

你好,我是洪亮杰。

今天我和你分享的主题是BM二五算法及其变种。

周一我们讲了TFIDF算法和它的四个变种。

相对于TFIDF而言,在信息检索和文本挖掘领域,BM二五算法则更具理论基础,而且是工程实践中当仁不让的重要基线算法。

Bm二五在二十世纪七十年代到八十年代被提出,到目前为止已经过去了二三十年了。

但是这个算法依然在很多信息检索的任务当中表现优异,是很多工程师首选的算法之一。

今天呢我就来谈谈BM二五算法的历史算法本身的核心概念,以及BM二五的一些重要变种,帮助你快速掌握这个信息检索和文本挖掘的利器。

我先来讲讲BM二五的历史。

Bm二五有时候全称a coppy. Bm二五是由英国一批信息检索领域的计算机科学家开发的排序算法。

这里的BM是best match的简称,也就是最佳人员。

Bm二五背后,有两位著名的英国计算机科学家,第一位叫做斯蒂芬罗伯逊。

斯蒂芬是最早从剑桥大学数学系本科毕业,然后从城市大学获得硕士学位之后,从伦敦大学学院获得博士学位。

斯蒂芬从一九七八年到一九九八年之间,在城市大学任教,一九九八年到二零一三年间,在微软研究院剑桥实验室工作。

我们之前提到过,美国计算机协会ACM现在每三年会颁发一次杰拉德索尔顿奖,用于表彰对信息检索技术有突出贡献的研究人员。

二零零零年,这个奖项就是颁给了斯蒂芬奖励他对信息检索在理论方面的贡献。

Bm二五可谓是斯蒂芬一生中最重要的成献。

另外一位重要的计算机科学家就是英国的计算机科学家。

卡伦琼斯周一我们在TFIDF的文章当中讲过,卡伦也是剑桥大学博士毕业,并且毕生致力于信息检索技术的研究。

卡伦的最大贡献是发现IDF以及对TFIDF的总结。

卡伦在一九八八年获得了第二届杰拉德索尔顿奖。

下面我来讲讲BM二五算法的核心概念。

现代BM二五算法是用来计算某一个目标文档。

相对于一个查询关键字的相关性的流程,通常情况下,BM二五是非监督学习排序算法中的一个典型代表。

顾名思义,这里的非监督是指所有的文档。

相对于某一个查询关键字是否相关,这个信息是算法不知道的。

也就是说,算法本身无法简单的从数据中学习到相关性,而是根据某种经验法则来猜测相关的文档都有什么特质。

那么BM二五是怎么定义的呢?我们先来看传统的BM二五的定义。

一般来说,经典的BM二五分为三个部分,第一部分单词和目标文档的相关性。

第二部分单词和查询关键词的相关性。

第三部分单词的权重部分。

这三个部分的成积组成某一个单词的分数。

然后整个文档相对于某个查询关键字的分数,就是所有查询关键字里所有单词分数的总和。

我们先从第一部分说起,即单词和目标文档的相关性。

那么这里相关性的基本思想依然是词频,也就是TFIDF里面TF的部分。

词频就是单词在目标文档中出现的次数,如果出现的次数比较多,一般就认为更相关。

然而,和TFIDF不同,BM二五最大的贡献之一就是挖掘出了词频和相关性的之间的关系,是非线性的。

那么这是一个初看有违常理,但细想又很有道理的洞察。

具体来说,每个单词对于文档相关性的分数不会超过一个特定的阈值。

这个阈值当然是动态的,根据文档本身会有调整这个特征,就把BM二五里的词频计算和一般的TF区分开了。

也就是说,词频本身需要标准化,要达到的效果是某一个单词对最后分数的贡献不会随着词频的增加而无限增加。

那BM二五里词频的标准化是怎么做的呢?就是某一个词的词频除以这个词的词频加上一个权重。

那么这个权重包含两个超参数,这些超参数后期是可以根据情况手动调整的。

那么这个做法在非监督的排序算法中很普遍。

同时啊这个权重还包括两个重要信息。

第一,当前文档的长度。

第二,整个数据集所有文档的平均长度。

这几个因素混合在一起,我们就得到了一个新的词频公式。

既保证单词相对于文档的相关度和这个单词的词频呈现某种正向关系,又根据文档的相对长度,也就是原始长度和所有文档长度的一个比值关系,外加一些超参数对词频进行了限制。

有了单词,相对于文档的相关度,计算公式作为基础单词,相对于查询关键字的相关度可以说是异曲同工。

首先,我们需要计算单词在查询关键字中的词频,然后对这个词频进行类似的标准化过程和文档的标准化过程唯一的区别。

这里没有采用文档的长度。

当然,对于查询关键字来说,如果需要使用长度,也应该是使用查询关键字的长度和平均长度。

但是根据BM二五经典公式来说,这一部分并没有使用长度信息进行重新标准化。

接着我来谈谈最后一个部分单词权重的细节通常有两种选择。

第一种选择就是直接采用某种变形的IDF来对单词加权。

一般来说,IDF就是利用对数函数对文档频率,也就是有多少文档,包含某个单词信息进行变换。

这里回顾一下周一讲的内容,IDF是文档频率的倒数,并且通过对数函数进行转换。

如果在这里使用IDF的话,那么整个BM二五就可以看作是一个某种意义下的TFIDF.只不过TF的部分是一个复杂的,基于文档和查询关键字,有两个部分的词频函数。

第二种单词的权重选择叫做罗伯逊斯巴克琼斯权重简称RSJ值,是由计算机科学家斯蒂芬罗伯逊和卡伦琼斯合作发现。

我们刚才讲过,这两位都是重要的信息检索学术权威。

这个权重其实就是一个更加复杂版本的IDF.一个关键的区别是,RSJ值需要一个监督信息,就是要看文档对于某个查询关键字是否相关,而IDF并不需要对比以上两种思路,在很多情况下,利用IDF来直接进行单词权重的版本更加普遍。

如果有监督信息的情况下,RSJ值也不失为一个很好的选择。

通过这里简单的介绍,我们可以很容易的发现,BM二五其实是一个经验公式。

这里面的每一个成分都是经过很多研究者的迭代而逐步发现的。

很多研究在理论上对BM二五进行了建模,从概率相关模型入手,推导出BM二五其实是对某一类概率相关模型的逼近。

对,这一部分我在这里就不展开论述了。

需要你记住的是,BM二五虽然是经验公式,但是在实际使用中经常表现出惊人的好效果,因此啊还有必要对这一类文档检索算法有所了解。

最后来看一下BM二五算法的变种。

由于BM二五的情况,一方面是经验公式,另一方面是某种理论模型的逼近,这样就出现了各式各样的BM二五变种。

这里我仅仅介绍一些有代表性的扩展,一个重要的扩展是BM二五f在BM二五的基础上,再多一个field,也就是域文档上的计算。

这里的域的概念可以理解成一个文档的多个方面。

比如对于很多文档来说,文档包括标题、摘要和正文这些组成部分都可以认为是不同的域。

那么如何结合不同的域让文档的相关性能够统一到一个分数上,就是BM二五f的核心内容。

具体来说,BM二五f对于BM二五的扩展很直观,那就是每个单词对于文档的相关性是把各个域当做一个小文档的加权平均。

也就是说我们先把每个域当做单独的文档计算词频进行标准化,然后结合每个域的值进行加权的域再乘以词的权重。

我上面提到了用IDF或者RSJ值。

另外一个重要的扩展呢,就是如何把BM二五和其他文档信息结合起来。

呃,这个想法是在学习排序这一思路出现。

以前的一种普遍的做法,往往是用线性加权的形式,直接把各种信息相结合。

例如啊在二十一世纪初期,比较流行的做法是用BM二五和page rank的线性结合来确定网页的相关度。

这里面BM二五是和某个查询关键字有联系的信息,而page rank则是一个网页的线体权重。

今天我为你讲了文档检索领域,或者说搜索领域里最基本的一个技术。

Bm二五我们可以看到,BM二五由三个核心的概念组成,包括词在文档中的相关度,词在查询、关键字重的相关度以及词的权重。

Bm二五是一个长期积累的经验,公式,也有很深的理论支持,是一个强有力的非监督学习方法的文本排序算法。

一起来回顾一下要点。

第一,简要介绍了BM二五的历史。

第二,详细介绍了BM二五算法的三个主要组成部分。

第三,简要的介绍了BM二五的一些变种,最后给你留一个思考题。

虽然BM二五是非监督的排序方法,并且我们提到其中有一些超参数。

那么,是否可以通过机器学习的手段来学习到这些超参数的最佳取值呢?欢迎你给我留言,和我一起讨论。