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

news/2024/5/17 11:26:18/文章来源:https://blog.csdn.net/qq_52852138/article/details/128192009

什么是语言模型?

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

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

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

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

  • 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.luyixian.cn/news_show_231256.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

纪念DedeCMS创始人IT柏拉图先生

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; IT柏拉图开发了DedeCMS&#xff0c;造福了千万站长&#xff0c;但却没有因为这套系统过上体面的生活。 &#xff08;图片取自IT柏拉图的新浪微博&#xff09; 1979年你出生了&#xff0c;比我大…

终于有人把Java面试高分Guide总结得如此系统,堪称傻瓜式笔记总结

纵观今年的技术招聘市场&#xff0c; Java依旧是当仁不让的霸主 &#xff01;即便遭受 Go等新兴语言不断冲击&#xff0c;依旧岿然不动。究其原因&#xff1a; Java有着极其成熟的生态&#xff0c;这个不用我多说&#xff1b;Java在 运维、可观测性、可监 控性方面都有着非常优…

Paper reading:Fine-Grained Head Pose Estimation Without Keypoints (CVPR2018)

Paper reading&#xff1a;Fine-Grained Head Pose Estimation Without Keypoints &#xff08;CVPR2018&#xff09; 一、 背景 为什么要读这篇论文&#xff0c;因为LZ之前要做头部姿态估计&#xff0c;看到一些传统的方法&#xff0c;都是先进行人脸检测&#xff0c;然后再…

Redis原理 - 对象的数据结构(SDS、Inset、Dict、ZipList、QuickList、SkipList、RedisObject)

Redis数据结构 1. SDS Redis 是用 C 语言写的&#xff0c;但是对于 Redis 的字符串&#xff0c;却不是 C 语言中的字符串&#xff08;即以空字符’\0’结尾的字符数组&#xff09;&#xff0c;它是自己构建了一种名为 简单动态字符串&#xff08;simple dynamic string,SDS&am…

实验7 数据库编程

第1关 定义一个名为PROC_COUNT的无参数存储过程 任务描述 定义一个名为PROC_COUNT的无参数存储过程&#xff0c;查询工程名称中含有“厂”字的工程数量&#xff0c;并调用该存储过程。 相关知识 1、工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)…

Java ConcurrentHashMap 高并发安全实现原理解析

三、C13Map的字段定义 C13Map的字段定义 //最大容量 private static final int MAXIMUM_CAPACITY 1 << 30; //默认初始容量 private static final int DEFAULT_CAPACITY 16; //数组的最大容量,防止抛出OOM static final int MAX_ARRAY_SIZE Integer.MAX_VALUE -…

linux环境下,一步步教你命令行搭建自己的git服务器和客户端

前言&#xff1a; 先说下我的git服务器环境&#xff0c;git服务端的搭建我用的是阿里的ubantu云服务器&#xff0c;毕竟云服务器上可以在任何联网的电脑上访问嘛&#xff0c;方便。局域网也可以&#xff0c;svn和git这两种最常用的代码管理系统&#xff0c;在企业中基本…

LVGL自定义组件__页面指示器

前言 LVGL对硬件的要求非常低&#xff0c;使用其自带的组件能够搭建出精美的界面&#xff0c;动效也很棒。但是如过移植到Linux平台下&#xff0c;开发稍微复杂的应用项目&#xff0c;那些组件就远远不够用了。为此需要自己自定义一些组件&#xff0c;以方便实用。 效果 为此…

GitHub上架即下架,《分布式系统人人都是架构师》全彩笔记开源

又来给大家分享好书了&#xff1a;高翔龙老师的 《超大流量分布式系统架构解决方案&#xff1a;人人都是架构师2.0》&#xff0c;我在网上没找见开源的PDF版本所以分享一下&#xff01;小编会在文末附电子版免费方式。 高翔龙是谁&#xff1f; 云集基础架构负责人&#xff0c…

Verilog中 高位与低位

Verilog中信号定义位宽的一些问题 总是被Verilog中信号定义位宽的问题所困扰&#xff1a; wire[7:0] data1 和 wire[0:7] data1有什么不一样 wire[7:0] data2[3:0]、wire[7:0] data2[0:3]、wire[0:7] data2[3:0]、wire[0:7] data2[0:3]又分别有什么不一样&#xff1f; 今天下定…

【C++进阶】引用 函数提高

文章目录一 、引用1.1 引用的基本使用1.2 引用的注意事项1.3 引用做函数参数1.4 引用的本质 &#xff1a;指针的常量1.5 常量引用二、函数提高1 函数默认参数2 函数占位参数3 函数重载一 、引用 1.1 引用的基本使用 作用&#xff1a;给变量起别名 语法&#xff1a;数据类型 &a…

TC申请是否需要银行转账记录?

【TC申请是否需要银行转账记录&#xff1f;】 答案是毫无疑问的。 根据TE官网公开的文件CCS Certification Procedures V3.0 里面关于TC申请所需的文件指引E2.1.1f&#xff1a;&#xff08;如图&#xff09; 企业在申请与TE相关的认证项目&#xff08;例如GRS/RCS等等&#xf…

MySQL基础三问:底层逻辑、正在执行、日志观察

背景及目录&#xff1a; 经常面试会遇到且实际工作中也会应用到的三个场景&#xff1a; 一.mysql查询时的底层原理是什么&#xff1f; 二.如何查看正在执行的mysql语句&#xff1f; 三.如何观察mysql运行过程中的日志信息&#xff1f; - - - - - - - - - -分割线- - - - -…

「Redis」07 持久化操作(RDB、AOF)

笔记整理自【尚硅谷】Redis 6 入门到精通 超详细 教程 Redis——持久化操作&#xff08;RDB、AOF&#xff09; 1. RDB&#xff08;Redis DataBase&#xff09; 概述 RDB是什么 在指定的时间间隔内将内存中的数据集快照写入磁盘&#xff0c; 即 Snapshot 快照&#xff0c;恢…

水文遥测终端(水文遥测终端机)遥测终端机RTU 中小河流水文水雨情自动监测设备

平升电子遥测终端机RTU/水文遥测终端(水文遥测终端机&#xff09;能自动完成对流域或测区内降雨量、蒸发量、水位、流量流速、水质、闸门开度、风向风速、墒情、现场视频/图像等水文数据的采集、存储、控制和传输。设备广泛应用于中小河流、湖泊、水库、地下水的水文监测项目&a…

基于jsp+mysql+ssm学生网上请假系统-计算机毕业设计

项目介绍 随着高校招生规模的逐步扩大和教学方式的改革&#xff0c;在校学生人数将不断增加。另一方面&#xff0c;我国高等学校基层学生考核工作的内容杂&#xff0c;管理细&#xff0c;要求高&#xff0c;头绪多&#xff0c;传统的手工档案式管理办法已基本不适应新形势的要…

2022DAMA数据治理最佳培训机构奖

2022DAMA数据治理最佳培训机构奖

家庭生活开支如何记录,怎么记账一目了然

家庭日常开支明细怎么记账一目了然呢&#xff1f;很多上了年龄的人比较擅长使用传统的方法纸笔记录家庭账目&#xff0c;可是统计起来就比较麻烦&#xff1b;而年轻人则比较跟随时代潮流&#xff0c;喜欢使用一些电子记账工具&#xff0c;比如借助电脑手机上的记账类软件来记录…

python匿名函数和高阶函数总结

bilibili 千峰python 学习笔记 匿名函数 lambda函数的语法只包含一个语句&#xff0c;如下&#xff1a; lambda 参数列表: 运算表达式Lambda函数能接收任何数量的参数但只能返回一个表达式的值匿名函数可以执行任意表达式(甚至print函数)&#xff0c;但是一般认为表达式应该有…

原来Python自带了数据库,用起来真方便

Python作为数据科学主流语言&#xff0c;被广泛用于数据读存、处理、分析、建模&#xff0c;可以说是无所不能。 数据一般存放在本地文件或者数据库里&#xff0c;之前介绍过如何使用python读取本地文件&#xff0c;也对# PyMySQL、cx_Oracle等数据库连接库做过简单的使用分享…