概率检索模型是当前信息检索领域效果最好的模型之一,它基于对已有反馈结果的分析,根据贝叶斯原理为当前查询排序。
我在之前的博客 朴素贝叶斯分类 中介绍了如何用朴素贝叶斯算法对数据进行分类,其实概率检索模型的基本原理与朴素贝叶斯分类是一样的。先回忆一下朴素贝叶斯算法的原理:对于测试元组 X X ,最终目的是要计算对于不同的类 ,计算后验概率 p(Ci|X) p ( C i | X ) ,哪个类最大,就属于哪个类。而为了计算 p(Ci|X) p ( C i | X ) ,则需要用贝叶斯公式做如下分解:
因为要比较大小,所以忽略 p(X) p ( X ) ,只需要考虑分子中的 p(X|Ci)p(Ci) p ( X | C i ) p ( C i ) ,其中 p(Ci) p ( C i ) 可以通过抽样得到,那么问题转化为计算 p(X|Ci) p ( X | C i ) , p(X|Ci) p ( X | C i ) 代表 X X 在类 中的概率。如果 X X 由 个相互之间无关的属性组成,那么这个概率一般如下计算:
其中 Xj X j 为测试元组的第 j j 个属性值,如果属性是离散属性,那么 ,其中 |Xj||Ci| | X j | | C i | 表示类 Ci C i 的数据元组中拥有属性 Xj X j 的概率。如果属性是连续属性呢,你自己看上面那篇博文,我这里不说了。之所以说离散时的情况,是因为本文后面要用。以上就是朴素贝叶斯分类法的原理,我大概复述一遍,方便理解后面要说的东西。
1. 基本思想
概率检索模型与贝叶斯分类的思想非常接近,但还是有本质区别的。概率检索模型的根本目的不是分类,它不需要根据查询判断一个文档属于“相关”或者“不相关”,而是计算这个文档属于属于“相关”或者“不相关”的概率大小为文档排序。我将概率检索模型要解决的问题刻画如下。
问题模型:现在对于一个查询 q q ,已知文档集中哪些与 是相关的(这类文档的类标号记为 C1 C 1 ),哪些与 q q 是不相关的(这类文档的类标号记为 )。概率检索模型的核心是对于每一个文档 X X 计算公式(1),公式(1)计算出的 代表了文档 X X 属于“相关”类的概率与属于“不相关”类的概率的比值(也叫“优势比”)。显然,这个比值越大,代表该文档与查询的相关度越大,因此我们就把 看做是相关度得分,最后通过 α α 将文档排序。
其中, p(C1|X) p ( C 1 | X ) 和 p(C0|X) p ( C 0 | X ) 的计算过程如下: