Rank教程: 04-概率检索模型
欢迎转载,作者:Ling,注明出处:Rank教程: 04-概率检索模型
概率检索模型(Probabilistic Retrieval Model):
定义:
根据文档与用户需求相关性由高到低进行排序。具体来说就是要推导出一个公式,该公式可以表示用户需求,然后根据公式计算的值进行排序。
注:
空间向量模型是根据用户查询和文档内容相似性进行排序。
分类:
- 二元独立模型
- BM25
- BM25F
用户需求公式推导:
问题: 如何计算P(D/R)和P(D/NR)?
二元独立模型
二元独立模型(Binary Independent Model):
两个假设:
二元假设:只考虑“出现”和“不出现”情况,以此表示文档
词汇独立性假设:单词之间彼此独立,互不关联
基于上面两个假设,我们举例说明如何计算P(D/R)和P(D/NR):
举例:
查询Q:{乔布斯,Ipod,Iphone,苹果,Ipad}
D文档:{乔布斯,买了,Iphone,和,Ipad}
则D文档可以表示成{1,0,1,0,1}, 它表示查询中的单词是否出现在D文档中,比如1,3,5单词都出现了,2,4都没出现
P(D|R)=P1*(1-P2)*P3*(1-P4)*P5
其中Pi表示第i个单词出现在相关文档中的概率
P(D|NR)=S1*(1-S2)*S3*(1-S4)*S5
其中Si表示第i个单词出现在不相关文档中的概率
则:
接下来我们推导一般的P(D|R) / P(D|NR)的公式
所以:
变形:为了更好计算
问题转化为求Pi 和 Si
给定用户Query,我们先得到所有相关和不相关的文档,然后我们就可以估算出P和S:
di=1表示 单词i出现在文档中
ri表示单词i出现在相关文档中的文档数量
ni-ri表示单词i出现在不相关中的文档数量
ni表示单词出现在文档中的文档总数量
di=0表示单词i不出现在文档中
R-ri表示单词i不出现在相关文档中的文档数量
(N-R)-(ni-ri)表示单词i不出现在不相关中的文档数量
N-ni表示单词不出现在文档中的文档总数量
R表示相关文档总数
N-R表示不相关文档总数
N表示总文档数
则:0.5和1.0是平滑因子
单词i在所有相关文档出现数目比上所有相关文档总数
单词i在所有不相关文档出现数目比上所有不相关文档总数
带入之前公式:
其含义是:
Query中的词在文档中出现的情况,累加其上面的估值,就是Q和D相关性的度量值。按照这个排序即可。
问题:
- 如何得到相关和不相关文档:
通过其他方法,比如之前的布尔模型
- 能否有其他表示:
IDF(qi)=log((N-ni+0.5)/(ni+0.5))
N表示文档总数,ni表示出现了qi的文档数目
下面的BIM部分都可以用IDF(qi)替换
二元独立模型BIM效果并不好,但是它是BM25的基础
BM25:
在BIM基础上得到,对于特征单词,BIM只考虑它是否在文档中出现过,而BM25会考虑单词在查询中的权值,以及在文档中的权值。BM25是目前最成功的内容排序模型。
公式:三部分组成,二元独立模型,查询文档权值和查询权值
如果r和R都设定为0,则:
这个就是IDF形式,所以二元独立模型作用就是类似IDF,后面两个权值有点类似TF,整体类似TF-IDF
另外一种BM25形式即:
BM25F:
在BM25上进一步改进,BM25是将文档当作一个整体看待,而BM25F是考虑了一个文档不同“域”的重要程度。
留言