Note1- 信息检索模型

信息检索模型是一个四元组 [D,Q,F,R(qi,dj)]

布尔模型

布尔模型是一种最简单的信息检索模型,它返回所有满足布尔表达式的文档。

比如,有如下查询:

Which plays of Shakespeare contain the words Brutus and Caesar, but not Calpurnia?

那么对应的查询就是:Brutus AND Caesar AND NOT Calpurnia

关联矩阵

于是可以定义词项与文档的关联矩阵,对于每一个词项,如果其在对应的文档出现过,就将该位置设置为 1,如:

那么当我们要求 Brutus AND Caesar AND NOT Calpurnia 时,只需要对 Calpuria 所在的行求反,然后将这三个向量按位“与”,最后得到的向量就标识了哪些文档符合这个条件。

向量空间模型

同样是用一组向量来表示文档 D(t1,t2,,tn)t 指出现在文档中能够代表文档性质的基本语言单位,即检索词。

词袋模型

即不考虑文档中词的顺序的模型。

tft,d 表示词项 t 在文档 d 中出现的次数,那么就可以定义文档和查询之间的匹配程度为:

tfmatchingscore(q,d)=Σtqd(1+logtft,d)

考虑高频词含有的信息量往往比低频词要少。因此,设 dft 为词项 t 在文档集合中出现的文档数目,那么就可以定义**倒置文档频率 (IDF)**为:

idft=log10Ndf

IDF 衡量了一个词的信息量大小。

那么就可以把文档 d 中的一个词项 t 的权值定义为:

wt,d=(1+logtft,d)logNdft

即:

相似度衡量

概率模型

假设相关度 Rd,q 是二值的,即 Rd,q=1 表示文档 d 与查询 q 是相关的,我们利用概率模型来估计每篇文档和查询之间的相关性概率,然后对结果进行降序排列:

p(R=1|d,q)

二值独立模型

p(R=1|x,q)=p(x|R=1,q)p(R=1|q)p(x|q)

定义排序函数:

O(R|x,q)=p(R=1|x,q)p(R=0|x,q)=p(R=1|q)p(x|R=1,q)p(x|q)p(R=0|q)p(x|R=0,q)p(x|q)=p(R=1|q)p(R=0|q)p(x|R=1,q)p(x|R=0,q)

根据贝叶斯条件独立性假设,一个词的出现与否,与任意一个其他词出现与否互相独立,故

p(x|R=1,q)p(x|R=0,q)=t=1Mp(xt|R=1,q)p(xt|R=0,q)

从而

O(R|x,q)=O(R|q)t,xt=1p(xt=1|R=1,q)p(xt=1|R=0,q)t,xt=0p(xt=0|R=1,q)p(xt=0|R=0,q)

最后的排序函数为:

0(R|x,q)=O(R|q)t,xt=qt=1ptutt,xt=0,qt=11pt1ut=O(R|q)t,xt=qt=1ptutt,xt=qt=11ut1ptt,xt=qt=11pt1utt,xt=0,qt=11pt1ut=O(R|q)t:xt=qt=1pt(1ut)ut(1pt)t:qt=11pt1ut

最终,就得到了我们的检索状态值

RSVd=logt:xt=qt=1pt(1ut)ut(1pt)=t:xt=qt=1logpt(1ut)ut(1pt)

ct=logpt(1ut)ut(1pt)=logpt1pt+log1utut

举例,假设有如下统计信息:

ct=logpt(1ut)ut(1pt)=logs(Ss)(dfts)((Ndft)(Ss))=logs+0.5(Ss+0.5)(dfts+0.5)((Ndft+s+0.5)(Ss+0.5))

BM25 模型

RSVd=tqlog[Ndft](k1+1)tftdk1((1b)+b×(Ld/Lave))+tftd(k3+1)tftqk3+tftq

语言模型

文档集中的每篇文档 d 构建其对应的语言模型 Md,我们的目标是将文档按照其与查询相关的似然 p(d|q) 排序

P(d|q)=P(q|d)P(d)P(q) P(q|Md)=P((t1,t2,,t|q|)|Md)=1k|q|P(tk|Md)=distincttermtanqP(t|Md)tfd

这样估计 P(t|Md)

P^(t|Md)=tft,d|d|

概率平滑

如果一个词在查询中出现了,但在文档中没有出现,那么 P(t|Md)=0,这很不合理。于是就需要概率平滑。

P^(t|d)=λP^mle(t|Md)+(1λ)P^mle(t|Mc)

Mc 是基于全部文档集构造的语言模型。

这个语言模型公式的本质可以理解为: