一个传统的语言生成模型可以用于识别或生成字符串
我们可以将有穷自动机看作是一种确定性的语言模型

基本模型:每一个文档都是通过一个像这样的自动机生成的,只不过这种自动机是有概率的
一种最简单的语言模型等价于一个概率有穷自动机,该自动机仅仅由一个节点组成,它也只有一个生成不同词项的概率分布

eg:


可以看到,对于该查询, P ( q u e r y ∣ M d 1 ) < P ( q u e r y ∣ M d 2 ) P(query|M_{d1}) < P(query|Md2) P(query∣Md1)<P(query∣Md2) 。因此,文档 d 2 d_2 d2 与查询的相关性更大
IR中最早使用也是最基本的语言模型是查询似然模型
每个文档都被看作一个语言模型(d -> M d M_d Md)。检索的目标是按照其与查询相关的概率 p ( d ∣ q ) p(d|q) p(d∣q) 进行排序。

p ( q ) p(q) p(q) 对所有文档来说是一样的,所以可以忽略
p ( d ) p(d) p(d) 是先验概率,我们常常将其视为对所有文档是相同的
p ( q ∣ d ) p(q|d) p(q∣d) 是文档 d 在对应语言模型下,生成 q 的概率
我们按照 p ( d ∣ q ) p(d|q) p(d∣q) 排序,实际上就是按照查询似然 p ( q ∣ d ) p(q|d) p(q∣d) 进行排序。
如何计算 p ( q ∣ d ) p(q|d) p(q∣d) 呢?
等价于多项式朴素贝叶斯模型(基于条件独立假设)

我们可以将上式转化为
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FHdugd5E-1670240021845)(C:\Users\nishiyu\AppData\Roaming\Typora\typora-user-images\image-20211228201737438.png)]](https://1000bd.com/contentImg/2024/04/13/2929ed21fd5743e9.png)
如何得到 p ( t ∣ M d ) p(t|M_d) p(t∣Md)?
在最大似然估计及一元语言模型假设的情况下

问题:
解决上述两个问题的方法是平滑
不仅仅是为了避免零概率,实际上实现了词项权重计算的主要部分
想法:对非零的概率结果进行折扣,对未出现的词的概率赋予一定的值
在一般的参照概率分布中,文档中未出现的查询项都可能在查询中出现,它的概率在某种程度上接近但不可能超过整个文档集中偶然出现的概率。
也就是说,若 t f t , d = 0 tf_{t,d} = 0 tft,d=0,那么 $\hat{P}\left(t \mid M_{d}\right) \le \frac{\mathrm{cf}_{t}}{T} \$
将基于文档的多项式分布和基于全部文档集估计出的多项式分布相混合,这类模型称为线性插值语言模型


M c M_c Mc 是基于全部文档集构造的语言模型
如何设置正确的 λ \lambda λ 是获得良好性能的关键
上面是对一个词的平滑,对整个查询的平滑就是乘积


向量空间模型是基于相似度的,是几何 / 线性代数的概念。其余两个都是基于概率论的
t f tf tf在三个模型中都用了
d f df df
c f cf cf
长度归一化
理论基础的对比,使用指标的对比,长度归一化的对比