几率检索模型:BIM+BM25+BM25F

1. 几率排序原理

以往的向量空间模型是将query和文档使用向量表示而后计算其内容类似性来进行相关性估计的,而几率检索模型是一种直接对用户需求进行相关性的建模方法,一个query进来,将全部的文档分为两类 -- 相关文档不相关文档,这样就转为了一个相关性的分类问题。atom

对于某个文档D来讲,P(R|D)表示该文档数据相关文档的几率,则P(NR|D)表示该文档属于不相关文档的几率,若是query属于相关文档的几率大于不相关文档P(R|D)>P(NR|D),则认为这个文档是与用户查询相关相关的。spa

如今使用贝叶斯公式将其转一下:3d

在搜索排序过程当中不须要真正的分类,只须要保证相关性由高到底排序便可,因此只须要P(D|R) / P(D|NR)降序便可,
这样就最终转为计算P(D|R),P(D|NR)的值便可。
code

 

2. 二元独立模型(BIM)

为了可以使得上述两个计算因子可行,二元独立模型作出了两个假设:xml

1. 二元假设blog

相似于布尔模型中的文档表示方法,一篇文档在由特征(或者单词)进行表示的时候,以特征(或者单词)出现和不出现两种状况来表示,不考虑词频等其余因素。排序

2. 词汇独立性假设文档

指文档里出现的单词之间没有任何关联,任意一个单词在文档的分布几率不依赖于其余单词是否出现。由于词汇之间没有关联,因此能够将文档几率转换为单词几率的乘积。class

上述提到的文档D表示为{1,0,1,0,1},用pi来表示第i个单词在相关文档出现的几率,则在已知相关文档集合的状况下,观察到D的几率为:基础

1,3,5表示这个单词在D中出现,因此其贡献几率为pi,而第2,4这两个单词并无在D中出现,因此其贡献的几率为1pi。

同理在不相关文档中观察到的几率为:

最终获得的相关性几率估算为:

如今将其推广以后能够有通用的式子:

di=1表示在文档中出现的单词,di=0表示没在文档中出现的单词。

在这里进一步对上述公式进行等价变换以后有:

其中上面式子第三步的第二部分表示各个单词在全部文档中出现的几率,因此这个式子的值和具体文档并无什么关系,在排序中不起做用,才能够简化到第4步。

为了方便计算,将上述连乘公式取log:

有了上述最终可计算的式子以后,咱们就只须要统计文档D中的各个单词在相关文档/不相关文档中出现的几率便可:

上面的表格表示各个单词在文档集合中的相关文档/不相关文档出现数量,同时为了不log(0)出现,加上平滑以后能够计算获得:

则最终能够获得以下公式:

其表明的含义是:对于同时出如今用户查询Q和文档D中的单词,累加每一个单词的估值,其和就是文档D和查询的相关性度量。

在不肯定哪些文档是相关的,哪些文档是不相关的的时候,能够给公式的估算因子直接赋予固定值,则该公式将会退化为IDF因子。

 

3. BM25模型

BIM模型基于二元独立假设推导而出,即对于单词特征,只考虑是否在文档中出现过,而不考虑单词的权值。BM25模型在BIM模型的基础上,考虑了单词在查询中的权值及单词在文档中的权值,拟合出综合上述考虑因素的公式,并经过实验引入一些经验参数。

BM25模型的具体计算公式以下所示:

上面的式子中:

  1. 第1个组成部分即为上一小节的二元独立模型BIM计算得分,若是赋予一些默认值的话,等价于IDF因子的做用。
  2. 第2个组成部分是查询词在文档D中的权值,其中fi表明了单词在文档D中的词频,K因子表明了对文档长度的考虑,其计算公式为
    1. k1为经验参数,做用是对查询词在文档中的词频进行调节。若是设为0,则第2部分总体变为1,即不考虑词频的因素,退化成了BIM模型;若是设为较大值,则第2部分计算因子基本与词频fi保持线性增加,即放大了词频的权值。根据经验,通常讲k1设置为1.2。
    2. b为调节因子,将b设为0时,文档长度因素将不起做用,经验代表通常b=0.75。
    3. dl表明当前文档D的长度。
    4. avdl表明文档集合中全部文档的平均长度。
  3. 第3个组成部分是查询词自身的权值,qfi表示查询词在用户查询中的词频,若是查询较短小的话,这个值通常是1,k2也为调节因子,是针对查询中的词频进行调节,由于查询每每很短,因此不一样查询词的词频都很小,词频之间差别不大,为了放大这部分的差别,k2通常取值为0~1000。

综合来看,BM25模型计算公式其实融合了4个考虑因素:IDF因子,文档长度因子,文档词频,和查询词频。并对3个自由调节因子(k1,k2,b)进行权值的调整。

例子:

假设当前以“乔布斯 IPAD2”这个查询词为例,来计算在某文档DBM25相关性的值,因为不知道文档集中相关与不相关的分类,因此这里直接将相关文档个数r置为0,则将获得的BIM因子为:

其余数值假定以下:

  1. 文档的集合总数:N=100000
  2. 包含乔布斯的文档个数为:n=1000
  3. 包含IPAD2的文档个数为:nIPAD2=100
  4. 文档D中出现乔布斯的词频为:f=8
  5. 文档DD中出现IPAD2的词频为:fIPAD2=8
  6. 查询词频均为:qfi=1
  7. 调节因子k1=1.2k
  8. 调节因子k2=200
  9. 调节因子b=0.75
  10. 设文档D的长度为平均长度的1.5倍(dl/avdl=1.5),即K=1.2×(0.25+0.75×1.5)=1.65

则最终能够计算到的BM25结果为:

每一个文档按上述公式计算获得相关性排序便可。

 

4. BM25F模型

BM25模型中,文档被当作一个总体进行进行词频的统计,而忽视了不一样区域的重要性,BM25F模型正是抓住了这点进行了相应的改进。

BM25F模型在计算相关性时候,会对文档分割成不一样的域来进行加权统计,很是适用于网页搜索,由于在一个网页有标题信息meta信息页面内容信息等,而标题信息无疑是最重要的,其次是meta信息,最后才是网页内容BM25F在计算相关性的,会将网页分为不用的区域,在各个区域分别统计本身的词频。

因此BM25F模型的计算公式为:

BM25F的第1部分仍是BIM的值。

其中与BM25主要的差异体如今因子上,它是单词i在各个区域不一样的得分,计算公式以下:

 

上面的公式表示:

  1. 文档D来个不一样的u个域
  2. 各个域对应的权重为Wk
  3. fui为第i个单词在各个域中的 fui / Bu 的加权和
  4. fui表示词频
  5. Bu表示各个域的长度状况
  6. ulu为实际域的实际长度,uvulu表示域的平均长度
  7. bu则为各个域长度的调节因子
相关文章
相关标签/搜索