【信息检索与数据挖掘期末复习】(五)Language Model

news/2024/10/28 0:18:39/

什么是语言模型?

一个传统的语言生成模型可以用于识别或生成字符串

我们可以将有穷自动机看作是一种确定性的语言模型
在这里插入图片描述

基本模型:每一个文档都是通过一个像这样的自动机生成的,只不过这种自动机是有概率的

一种最简单的语言模型等价于一个概率有穷自动机,该自动机仅仅由一个节点组成,它也只有一个生成不同词项的概率分布

  • STOP 并不是一个词,它是一个结束符
    在这里插入图片描述

eg:
在这里插入图片描述

不同的语言模型(我们将文档看作一个生成查询的语言模型

在这里插入图片描述

可以看到,对于该查询,P(query∣Md1)<P(query∣Md2)P(query|M_{d1}) < P(query|Md2)P(queryMd1)<P(queryMd2) 。因此,文档 d2d_2d2 与查询的相关性更大

IR中的语言模型

IR中最早使用也是最基本的语言模型是查询似然模型

查询似然模型

每个文档都被看作一个语言模型(d -> MdM_dMd。检索的目标是按照其与查询相关的概率 p(d∣q)p(d|q)p(dq) 进行排序。

在这里插入图片描述

  • p(q)p(q)p(q) 对所有文档来说是一样的,所以可以忽略

  • p(d)p(d)p(d) 是先验概率,我们常常将其视为对所有文档是相同的

    • 我们也可以对高质量文档赋予更高的先验概率
  • p(q∣d)p(q|d)p(qd) 是文档 d 在对应语言模型下,生成 q 的概率

我们按照 p(d∣q)p(d|q)p(dq) 排序,实际上就是按照查询似然 p(q∣d)p(q|d)p(qd) 进行排序

如何计算 p(q∣d)p(q|d)p(qd) 呢?

计算 p(q∣d)p(q|d)p(qd)

等价于多项式朴素贝叶斯模型(基于条件独立假设)

在这里插入图片描述

  • 其实前面还有一个系数 KqK_qKq ,但是对于一个特定的查询,它是一个常数,因此被忽略

我们可以将上式转化为

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FHdugd5E-1670240021845)(C:\Users\nishiyu\AppData\Roaming\Typora\typora-user-images\image-20211228201737438.png)]

如何得到 p(t∣Md)p(t|M_d)p(tMd)

查询生成概率的估计

在最大似然估计及一元语言模型假设的情况下

在这里插入图片描述

问题:

  • 该模型有一票否决权。即,若查询中出现了文档 ddd 中没有的词,概率为 0
  • 对文档中出现的词的估计有问题,特别是那些在文档中只出现一次的词往往会被过度估计(一次出现在一定程度上出于偶然性)

解决上述两个问题的方法是平滑

平滑

不仅仅是为了避免零概率,实际上实现了词项权重计算的主要部分

想法:对非零的概率结果进行折扣,对未出现的词的概率赋予一定的值

在一般的参照概率分布中,文档中未出现的查询项都可能在查询中出现,它的概率在某种程度上接近但不可能超过整个文档集中偶然出现的概率。

也就是说,若 tft,d=0tf_{t,d} = 0tft,d=0,那么 $\hat{P}\left(t \mid M_{d}\right) \le \frac{\mathrm{cf}_{t}}{T} \$

  • cftcf_tcft 是 t 在整个文档集中出现的次数
  • T 是所有文档集中词条的个数

Jelinek-Mercer 平滑

将基于文档的多项式分布和基于全部文档集估计出的多项式分布相混合,这类模型称为线性插值语言模型

在这里插入图片描述

  • 基于全部文档集估计出的多项式分布

在这里插入图片描述

  • McM_cMc 是基于全部文档集构造的语言模型

  • 如何设置正确的 λ\lambdaλ 是获得良好性能的关键

    • 取大值:倾向于检索包含所有查询词的文档
    • 取小值:适用于长查询。较小的 λ\lambdaλ 意味着更平滑(似然估计的概率贡 献更小)

上面是对一个词的平滑,对整个查询的平滑就是乘积

在这里插入图片描述

Dirichlet 平滑

在这里插入图片描述

  • P^(t∣Mc)\hat{P}(t|M_c)P^(tMc)P^(t∣d)\hat{P}(t|d)P^(td) 的先验
  • 我们将P^(t∣Mc)\hat{P}(t|M_c)P^(tMc) 设置为 P^(t∣d)\hat{P}(t|d)P^(td) 的初始值
  • 当我们阅读一篇文档时,我们根据文档内容,更新 P^(t∣d)\hat{P}(t|d)P^(td)
  • α=0\alpha = 0α=0,则相当于没进行平滑,α\alphaα 越大,先验概率的权重就越大,也就越平滑

两种平滑的对比

  • 前一种在冗余查询上表现更好,后一种在关键词查询上效果更好
  • 两种模型都对平滑参数很敏感,不能在没调参的情况下使用这两种模型

向量空间 VS BM25 VS LM

  • 向量空间模型是基于相似度的,是几何 / 线性代数的概念。其余两个都是基于概率论的

  • tftftf在三个模型中都用了

    • LMLMLM:直接使用 tftftf
    • 其他两个使用得更复杂一点
  • dfdfdf

    • 在BM25和向量空间中都直接使用了
    • LMLMLM:混合 tftftfcfcfcf,与 idfidfidf 有类似的效果
      • 在一般集合中罕见的词项,但是在一些文档中很常见,将会对排名产生很大的影响
  • cfcfcf

    • 只有 LMLMLM 使用了 cfcfcf,其他的都是用的 dfdfdf
    • cfcfcf是基于整个集合的,dfdfdf以文档为单位的
  • 长度归一化

    • 向量空间:余弦或主元归一化
    • LMLMLM:概率是固有的长度归一化
    • BM25BM25BM25:优化长度归一化的参数

理论基础的对比使用指标的对比长度归一化的对比


http://www.ppmy.cn/news/1985.html

相关文章

如何选择分度带(中央子午线)

如何选择分度带(中央子午线) 发布时间&#xff1a;2018-01-17 版权&#xff1a; 同步视频教程&#xff1a;如何选择中央子午线或者分度带 播放 什么是中央子午线&#xff1f; 什么是分度带? 【百度百科】 第一步&#xff1a;查看你所下载(或者要套合的范围)的图像的经纬…

Android之Handler、Message、MessageQueue、Looper详解

Android之Handler、Message、MessageQueue、Looper详解HandlerHandler的原理线程间通信的实现步骤Handler在多线程中的应用如何在子线程中创建HandlerHander中removeMessages方法Handler内存泄漏Handler发生内存泄漏的情况解决内存泄漏Handler.post 和 Handler.sendMessage的区…

李宏毅2022《机器学习/深度学习》——学习笔记(5)

文章目录优化方法CNNCNN和全连接神经网络的区别感受野共享参数CNN和全连接神经网络的总结PoolingCNN流程自注意力机制自注意力机制解决的问题输入是一组向量的例子输入是一组向量时输出的可能自注意力机制核心思想自注意力机制具体细节Self-attention和CNN的关系参考资料优化方…

java面向对象 继承 多态

目录 继承性(inheritance) 为什么要有继承&#xff1f; 作用&#xff1a; 继承举例 方法的重写 重写举例 四种访问权限修饰符 关键字—super 关键字super举例 调用父类的构造器 调用父类构造器举例 子类对象的实例化过程 多态性 概念 使用 多态性应用举例 虚…

浅谈架构.补缺.V2

源于错题 01 端口服务 20 文件传输协议&#xff08;数据&#xff09; 21 文件传输协议&#xff08;控制&#xff09;//安全 23 Telnet终端仿真协议 //moba处理 67 DHCP&#xff08;服务端&#xff09; 25 SMTP简单邮件发送协议 53 域名服务器&#xff08;DNS&#xff09; 80…

【《On Java 8》学习之路——封装】知识点整理分享

文章目录封装package访问权限修饰符接口和实现类访问权限封装总结本文是对《On Java 8》即《Java编程思想》第五版的知识点汇总整理&#xff0c;仅供学习分享。 封装 类库开发者必须同意在修改类库中的一个类时&#xff0c;不会移除已有的方法&#xff0c;因为那样将会破坏客户…

Java常问面试题概要答案

文章目录1.JDK、JRE、JVM的区别2.hashcode()与equals()之间的关系3.String、StringBuffer、StringBuilder的区别4.Java泛型5.ArrayList和LinkedList区别6.ConcurrentHashMap7. B树和B树8.负载均衡常见策略1.JDK、JRE、JVM的区别 JDK&#xff1a;java标准开发包&#xff0c;包含…

Java项目:SSM企业OA管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目包含管理员与普通员工两种角色&#xff0c; 管理员角色包含以下功能&#xff1a; 岗位管理,部门管理,工龄奖金管理,员工管理,考勤管理,…