给一个用户需求和一个文档集,一个检索系统需要决定文档有多满足查询
IR 系统难以理解一个查询背后的信息需求,并且对文档满足查询的程度做了非确定性推测
概率论可以为这种非确定性推理提供一个基本的理论
概率模型提供了排序,因此要优于布尔模型
向量空间模型:根据相似度对文档进行排序。相似的概念并不能直接转化为“该文档是否适合提供给用户?”的评估。最相似的文件可以是高度相关的,也可以是完全不相关的。
概率论可以说是我们真正希望IR系统做的事情:给用户提供相关的文档。
假设相关性是二值的:要么相关,要么不相关 R d , q = 1 / 0 R_{d,q} = 1 / 0 Rd,q=1/0 。概率模型检索回来的文档按 P ( R = 1 ∣ d , q ) P(R=1|d,q) P(R=1∣d,q) 降序排列
如果检索到的文档按相关性概率递减排序,那么系统的效果达到最好
当返回一个无序文档集而不是排序的结果时,可以使用贝叶斯最优决策原理:返回相关的可能性大于不相关的可能性的文档
文档和查询都表示为词项出现与否的布尔向量
独立性:指的是词项之间在文档中的出现是相互独立的
针对查询向量来说,返回的文档可以表示成 x ⃗ \vec x x 且是相关文档的概率,也就是向量 x ⃗ \vec x x 对应的文档与查询相关的概率,也就是具体的一篇文档与查询相关的概率
因此,我们按照 P ( R = 1 ∣ d , q ) P(R=1|d,q) P(R=1∣d,q) 进行排序,在BIM中就对应按照 P ( R = 1 ∣ x ⃗ , q ⃗ ) P(R=1|\vec x,\vec q) P(R=1∣x,q) 进行排序
针对一个查询,当返回一篇相关文档或不相关文档时,文档表示为 x ⃗ \vec x x 的概率,也就是与查询相关的文档中,文档可以表示成向量 x ⃗ \vec x x 的概率
先验概率,针对查询,返回一篇相关文档是相关文档 / 不相关文档的概率,也就是文档集中,与查询相关 / 不相关的文档的概率
我们可以根据文档相关性的优势率对文档进行排序,这样的话可以忽略上面的分母
同时可以看出,优势率中第一项对一个给定的查询来说,是一个常数,不会影响文档的排序,因此可以忽略
朴素贝叶斯条件独立性假设:在给定查询的情况下,认为一个词的出现与否与其他词是相互独立的
因此,优势率可以表示成如下形式(将向量的出现,拆分成向量中词的出现, x t x_t xt 代表一个词)
一个词,在一篇文档中要么出现,要么不出现,因此我们可以写成如下形式
下面式子的含义是:返回的文档是相关文档,且其中出现了词 x t x_t xt ,因此就是 x t x_t xt 出现在相关文档中的概率
简化表示,我们定义
可以得到这样一个表
同时,假设:查询语句中未出现的词,出现在相关文档和不相关文档中的概率一样。 q t q_t qt 代表查询语句中的一个词
现在,我们可以只考虑出现在查询中的词,因为未出现的词后面两项都是 1
第二项因子,考虑的是查询中的词项出现在文档中(分子是出现在相关文档中,分母是出现在不相关文档中)的情况,第三项考虑的是查询中的词项未出现在文档中的情况
我们将式子转化成如下形式
这里,式子的第三个因子考虑的是查询中出现的所有词,因此对于一个给定的查询来说,这个因子是个常数。因此,我们可以将其忽略。所以,文档排序中唯一需要估计的量只有第二个乘子
注意:第二个乘子中所有需要考虑的词,仅仅是在查询语句中出现的词
最后用于排序的量称为== R S V ( r e t r i e v a l s t a t u s v a l u e ) RSV(retrieval\, status\, value) RSV(retrievalstatusvalue) 检索信息状态==
我们定义== c t c_t ct 为优势率比率的对数值==
可以看到, c t c_t ct 是 R S V d RSV_d RSVd 求和中的一项
c t c_t ct 实际上给出的是模型中词项的权重,而查询文档的得分是,可以看到这与向量空间模型的操作是相同的,只是词项的权重不一样
但是 q t q_t qt 和 u t u_t ut 是不知道的,且两个加起来不等于 1。因为一个是在相关文档的集合中考虑的,一个是在不相关文档中考虑的
相关文档数目为 S S S , 文档总数为 N N N , d f t df_t dft 为包含 t t t 的文档数
为了避免出现 0 的概率(比如 s = 0) , 我们通常在每一项上都加上 $\frac{1}{2} \$
假设相关文档只占文档集很小的一部分,我们可以简化不相关文档那部分的数据。这是 i d f idf idf 的表达式。这种优化很难扩展到 p t p_t pt 上
假设对于查询中的所有词项 x t x_t xt , p t = 0.5 p_t = 0.5 pt=0.5。
因此 c t c_t ct 的第一项为 0
因此决定 c t c_t ct 的就是 i d f idf idf
对于短文档的一遍查询,该方法能取得不错的结果
前面曾经说过, t f tf tf 很重要,那我们如何在模型中加入 t f tf tf 项,并且考虑归一化呢?
是一个概率模型,加上了词项频率和长度归一化
BIM模型最初主要为较短的编目记录和长度大致相当的摘要所设计,因此没考虑这两个方面
对于文档 d d d ,最简单的文档评分方法是给文档中的每次查询词项赋予一个 i d f idf idf 权重
引入词项频率和文档长度
对于长查询,对查询词项也可以使用类似的权重计算方法