信息检索与数据挖掘 | (八)语言建模的IR

文章目录

  • 📚语言生成模型
  • 📚平滑
    • 🐇线性插值平滑方法(Lelinek-Mercer)
    • 🐇dirichlet 平滑
    • 🐇Vector space(向量空间) vs BM25 vs LM

📚语言生成模型

  • 传统的语言生成模型可以用于识别或生成字符串。如果每个自动机的节点都有一个生成不同此项概率分布,便可以得到一个语言模型。

  • 一个最简单的语言模型等价于一个概率有穷自动机,仅有一个节点组成,只有一个生成不同词项的概率分布,以及停止的概率。从而我们就可以计算一个词序列出现的概率。
    在这里插入图片描述

  • 在ir中,对文档集中的每篇文档d构建其对应的语言模型Md,检索的目标是将文档按照其与查询相关的概率P(d|p)排序
    在这里插入图片描述

    • P(q)是证据,对所有文档都一样,可以忽略,P(d)是先验,往往视为均匀分布,也可以忽略。所以仅需考虑似然P(q|d)是在文档d对应的语言模型下生成q的概率,因此ir中的语言建模方法实际是在对查询的生成过程进行建模
      在这里插入图片描述
    • 等价于:
      在这里插入图片描述

  • 考虑MLE:

在这里插入图片描述

  • MLE(Maximum Likelihood Estimation,最大似然估计)是一种常用的参数估计方法,用于从观测数据中推断出最有可能产生这些观测数据的模型参数。

    • 在MLE中,我们假设观测数据是从一个已知参数化模型生成的,但是我们并不知道真实的参数取值。我们的目标是找到使得观测数据出现的概率最大化的参数取值
    • 步骤

      1. 定义参数化模型:首先,我们需要定义一个参数化模型,该模型描述了观测数据的生成过程。模型可以是概率分布,回归模型或其他类型的模型,具体取决于问题的性质。
      2. 构建似然函数:根据模型的参数化形式,我们可以计算观测数据出现的概率或密度函数,称为似然函数。似然函数是参数的函数,表示给定参数下观测数据出现的可能性。
      3. 最大化似然函数:我们通过最大化似然函数来求解参数的最优值。最大化似然函数等价于寻找使得观测数据出现概率最大的参数取值。通常使用优化算法(如梯度下降、牛顿法或拟牛顿法)来求解最大似然估计。
      4. 参数估计:最大化似然函数后,得到的参数值即为最大似然估计值。这些估计值通常用来描述模型的参数,以便进行预测、推断或其他进一步的分析。
    • 优点:

      • 易于理解和实现
      • 在大样本情况下具有良好的统计性质,例如一致性和渐近正态性
  • 但是当一个query词项未出现时,整体结果均为0,所以要进行平衡smoothing以避免0值的出现,同时平滑也实现了词项权重计算的主要部分。

📚平滑

(平滑一般用加上某个项然后重新归一化)

🐇线性插值平滑方法(Lelinek-Mercer)

  • 方法分析:在一般的参照概率分布中,文档中未出现的查询项的概率在某种程度上接近但是不可能超过在整个文档集中偶然出现的概率,即如果tf=0,那么P(t|M)<=cft/T=P(T|Mc),其中cft是t在整个文档集的出现次数,T是所有文档集中词条的个数。用上界来近似

  • 函数公式
    在这里插入图片描述

  • 将二者进行线性插值,将基于文档的多项式分布和基于全部文档集估计出的多项式分布结合⭐️。

    在这里插入图片描述

  • 参数分析

    • λ \lambda λ较高时适用于类连词搜索,倾向于检索出的文档包含所有query词;
    • λ \lambda λ较低时,更适合长检索
    • 正确的选择超参的取值很关键, λ \lambda λ越小越平滑

🐇dirichlet 平滑

  • 函数公式
    在这里插入图片描述

  • 将从全部文档集中获得的语言模型看成贝叶斯更新过程的一个先验分布

  • 参数分析

    • α \alpha α决定了先验的影响有多强, α \alpha α越大越平滑
    • dirichlet分布更适合关键词查询,而Lelinek-Mercer更适合长查询
    • 两个模型都对平滑参数非常敏感

🐇Vector space(向量空间) vs BM25 vs LM

  • 数学模型:BM25和LM都基于概率模型,而向量空间是基于相似度,是几何代数
  • 长度归一化:向量空间是余弦归一;LM:概率本质上就是归一的;BM25:通过调节参数可以优化长度归一化
  • tf:都在三个模型中直接使用
  • idf:BM25和向量空间都直接使用;LM是将tf和cf融合,有效的近似idf
  • cf、df:LM用到了cf,而BM25和向量空间都只使用了df

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/641539.shtml

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

相关文章

【Pytorch】搭建一个简单的泰坦尼克号预测模型

介绍 本文使用PyTorch构建一个简单而有效的泰坦尼克号生存预测模型。通过这个项目&#xff0c;你会学到如何使用PyTorch框架创建神经网络、进行数据预处理和训练模型。我们将探讨如何处理泰坦尼克号数据集&#xff0c;设计并训练一个神经网络&#xff0c;以预测乘客是否在灾难…

MySQL数据库查询语句之组函数,子查询语句

组函数 以组为操作单位&#xff0c;一组数据得到一个结果。 在没有手动分组的前提下&#xff0c;整张表默认为一组数据 max(列名)&#xff1a;获取最大值 min(列名)&#xff1a;获取最小值 sum(列名)&#xff1a;获取总和 avg(列名)&#xff1a;获取平均值 count(列名)&a…

20.云原生之GitLab CICD实战

云原生专栏大纲 文章目录 GitLab RunnerGitLab Runner 介绍Gitlab Runner工作流程 Gitlab集成Gitlab RunnerGitLab Runner 版本选择Gitlab Runner部署docker-compose方式安装kubesphere中可视化方式安装helm方式安装 配置gitlab-runner配置gitlab-ci.ymlgitlab-ci.yml 介绍编写…

基于FPGA的高效乘法器

1、设计思路 二进制的乘法运算与十进制的乘法运算相似&#xff0c;如下图所示&#xff0c;二进制数据6’b110010乘以二进制数据4’b1011&#xff0c;得到乘积结果10’b1000100110。 图1 二进制乘法运算 仔细观察上图发现&#xff0c;乘数最低位为1&#xff08;上图紫色数据位&a…

机器学习:什么是监督学习和无监督学习

目录 一、监督学习 &#xff08;一&#xff09;回归 &#xff08;二&#xff09;分类 二、无监督学习 聚类 一、监督学习 介绍&#xff1a;监督学习是指学习输入到输出&#xff08;x->y&#xff09;映射的机器学习算法&#xff0c;监督即理解为&#xff1a;已知正确答案…

Eureka基础知识总结(微服务)

Eureka Eureka是Netflix开发的一个服务发现框架&#xff0c;它提供了一种在微服务架构中注册和发现服务的方法。通过使用Eureka&#xff0c;我们可以实现负载均衡、故障转移和服务的自动注册等功能。本文将对Eureka的相关知识进行总结。 一、Eureka的基本概念 Eureka Server…

Arduino开发实例-LoRa通信(基于SX1278 LoRa)

LoRa通信(基于SX1278 LoRa) 文章目录 LoRa通信(基于SX1278 LoRa)1、硬件准备1.1 Semtech LoRa SX1278 收发器2、LoRa介绍2.1 什么是LoRa2.2 SX1278 LoRa 模块2.1 LoRa 频段(按国家/地区划分)3、硬件接线原理图4、代码实现4.1 数据发送与接收4.2 远距离控制LED实现4.2.1 硬…

leetcode-二叉树的前序遍历

144. 二叉树的前序遍历 递归方法 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def preorderTraversal(…

期末考试发等级发成绩,就用易查分!

期末考试后&#xff0c;学校老师如何发布私密成绩&#xff1f;易查分可以轻松创建等级、成绩查询系统&#xff0c;让家长仅看到自己孩子成绩。 支持查询后留言反馈&#xff0c;电子签名确认签收等高级功能&#xff0c;节省老师沟通时间&#xff0c;大大提升工作效率。 &#x1…

linux安装docker(入门一)

环境&#xff1a;centos 7(linux) 网站 官网: https://docs.docker.com/ Docker Hub 网站: https://hub.docker.com/ 容器官方概述 一句话概括容器&#xff1a;容器就是将软件打包成标准化单元&#xff0c;以用于开发、交付和部署。 容器镜像是轻量的、可执行的独立软件包 &…

蓝桥杯分糖果、最小化战斗力差距、小蓝零花钱

分糖果 问题描述 最近暑期特训算法班的同学们表现出色&#xff0c;他们的老师肖恩决定给他们分发糖果。肖恩购买了 个不同种类的糖果&#xff0c;用小写的阿拉伯字母表示。每个糖果必须分发给一个同学&#xff0c;并且每个同学至少要分到一个糖果。同学们的开心程度定义为他们所…

【百面机器学习】读书笔记(一)

本文系列主要作用就是读书笔记&#xff0c;自己看的话比较杂&#xff0c;没怎么归类过&#xff0c;所以现在跟着这个分类走一遍。本文主要内容为前两章&#xff0c;特征工程和模型评估。 如果我想起一些相关的内容也会做适当的补充&#xff0c;主打就是一个intuition&#xff…

OpenCV书签 #直方图算法的原理与相似图片搜索实验

1. 介绍 直方图算法&#xff08;Image Histogram Algorithm&#xff09; 通过统计图像中各个颜色值的分布情况来提供关于图像颜色特征的信息&#xff0c;它可以用来衡量两张图片在颜色分布上的相似度&#xff0c;进而可以用来进行图像相似度的比较&#xff0c;因此&#xff0c…

电脑录屏软件大比拼,哪个最适合你?

现如今&#xff0c;电脑录屏软件成为了许多用户记录、分享和教学的重要工具。从游戏玩家到专业制作人员&#xff0c;都需要高效的录屏软件。本文将介绍三款优秀的电脑录屏软件&#xff0c;通过详细的步骤和简洁的介绍&#xff0c;帮助用户轻松掌握这些工具的使用方法。 电脑录屏…

附1:k8s服务器初始化

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 关联文章&#xff1a; 《RKE快速搭建离线k8s集群并用rancher管理界面》 1.创建普通用户sre并赋予sudo权限 # adduser sre # ec…

【动态规划】879. 盈利计划

作者推荐 【动态规划】【广度优先搜索】【状态压缩】847 访问所有节点的最短路径 本文涉及知识点 动态规划汇总 LeetCode879. 盈利计划 集团里有 n 名员工&#xff0c;他们可以完成各种各样的工作创造利润。 第 i 种工作会产生 profit[i] 的利润&#xff0c;它要求 group[…

大模型独立解答30道国际奥数难题,能力接近金牌选手!

谷歌旗下的AI研究机构DeepMind和纽约大学的研究人员联合开发了一个AI模型——AlphaGeometry。 AlphaGeometr是一种神经符号模型,内置了大语言模型和符号推理引擎等功能,主要用于解决各种超难几何数学题&#xff0c;同时可以自动生成易于查看的解题原理。 为了验证AlphaGeomet…

React Router v6 改变页面Title

先说正事再闲聊 1、在路由表加个title字段 2、在index包裹路由 3、在App设置title 闲聊&#xff1a; 看到小黄波浪线了没 就是说默认不支持title字段了 出来的提示&#xff0c; 所以我本来是像下面这样搞的&#xff0c;就是感觉有点难维护&#xff0c;就还是用上面的方法了 …

Linux配置yum源以及基本yum指令

文章目录 一、yum介绍二、什么是软件包三、配置yum源四、一键配置yum源【三步走】五、yum指令搜索软件安装软件卸载软件 六、其他yum指令更新内核更新软件更新指定软件显示所有可更新的软件清单卸载指定包并自动移除依赖包删除软件包&#xff0c;以及软件包数据和配置文件 一、…

c中realloc重新分配大小时,空间增长方式的问题

今天在写leetcodeT15.三数之和的时候遇到了一个比较奇怪的问题&#xff1a; 部分代码&#xff1a; int size 5;//设置初始解的空间为5个 int ** res (int **)malloc(sizeof(int*)*size);//分配size大小的二维数组存结果 ....//检查空间够不够&#xff0c;不够重新分配空间 …