【信息检索与数据挖掘期末笔记】(四)概率检索模型

news2024/11/23 13:10:27

为什么需要概率检索

给一个用户需求和一个文档集,一个检索系统需要决定文档有多满足查询

  • IR 系统难以理解一个查询背后的信息需求,并且对文档满足查询的程度做了非确定性推测

  • 概率论可以为这种非确定性推理提供一个基本的理论

    • 概率模型利用这个基础来估计文档与查询相关的可能性有多大

概率模型与其他模型比较

布尔模型

概率模型提供了排序,因此要优于布尔模型

向量空间模型

向量空间模型:根据相似度对文档进行排序。相似的概念并不能直接转化为“该文档是否适合提供给用户?”的评估。最相似的文件可以是高度相关的,也可以是完全不相关的。

概率论可以说是我们真正希望IR系统做的事情:给用户提供相关的文档。

概率论

  • 联合概率

在这里插入图片描述

  • 条件概率

    在这里插入图片描述

  • 链式法则:

    在这里插入图片描述

  • 全概率定理:

    在这里插入图片描述

  • 贝叶斯定理:(计算后验概率)

    在这里插入图片描述

  • 优势率:反映概率如何变化的“放大器”:

    在这里插入图片描述

概率排序原理(PRP)

假设相关性是二值的:要么相关,要么不相关 R d , q = 1 / 0 R_{d,q} = 1 / 0 Rd,q=1/0 。概率模型检索回来的文档按 P ( R = 1 ∣ d , q ) P(R=1|d,q) P(R=1d,q) 降序排列

  • 如果检索到的文档按相关性概率递减排序,那么系统的效果达到最好

  • 当返回一个无序文档集而不是排序的结果时,可以使用贝叶斯最优决策原理:返回相关的可能性大于不相关的可能性的文档

二值独立模型(BIM)

文档和查询都表示为词项出现与否的布尔向量

在这里插入图片描述

独立性:指的是词项之间在文档中的出现是相互独立的

针对查询向量来说,返回的文档可以表示成 x ⃗ \vec x x 且是相关文档的概率,也就是向量 x ⃗ \vec x x 对应的文档与查询相关的概率,也就是具体的一篇文档与查询相关的概率

因此,我们按照 P ( R = 1 ∣ d , q ) P(R=1|d,q) P(R=1d,q) 进行排序,在BIM中就对应按照 P ( R = 1 ∣ x ⃗ , q ⃗ ) P(R=1|\vec x,\vec q) P(R=1x ,q ) 进行排序

在这里插入图片描述

针对一个查询,当返回一篇相关文档或不相关文档时,文档表示为 x ⃗ \vec x x 的概率,也就是与查询相关的文档中,文档可以表示成向量 x ⃗ \vec x x 的概率

在这里插入图片描述

先验概率,针对查询,返回一篇相关文档是相关文档 / 不相关文档的概率,也就是文档集中,与查询相关 / 不相关的文档的概率

在这里插入图片描述

我们可以根据文档相关性的优势率对文档进行排序,这样的话可以忽略上面的分母

在这里插入图片描述

同时可以看出,优势率中第一项对一个给定的查询来说,是一个常数,不会影响文档的排序,因此可以忽略

朴素贝叶斯条件独立性假设:在给定查询的情况下,认为一个词的出现与否与其他词是相互独立的

在这里插入图片描述

因此,优势率可以表示成如下形式(将向量的出现,拆分成向量中词的出现, x t x_t xt 代表一个词)

在这里插入图片描述

一个词,在一篇文档中要么出现,要么不出现,因此我们可以写成如下形式

在这里插入图片描述

下面式子的含义是:返回的文档是相关文档,且其中出现了词 x t x_t xt ,因此就是 x t x_t xt 出现在相关文档中的概率

在这里插入图片描述

简化表示,我们定义

在这里插入图片描述

可以得到这样一个表

在这里插入图片描述

同时,假设:查询语句中未出现的词,出现在相关文档和不相关文档中的概率一样。 q t q_t qt 代表查询语句中的一个词

在这里插入图片描述

现在,我们可以只考虑出现在查询中的词,因为未出现的词后面两项都是 1

在这里插入图片描述

第二项因子,考虑的是查询中的词项出现在文档中(分子是出现在相关文档中,分母是出现在不相关文档中)的情况,第三项考虑的是查询中的词项未出现在文档中的情况

在这里插入图片描述

我们将式子转化成如下形式

  • 后面一项,多乘了 t : x t = 1 t:x_t=1 t:xt=1 的情况,因此在前面一项中添加 $\frac{1-u_t}{1-p_t} \$ 以将影响抵消

在这里插入图片描述

这里,式子的第三个因子考虑的是查询中出现的所有词,因此对于一个给定的查询来说,这个因子是个常数。因此,我们可以将其忽略。所以,文档排序中唯一需要估计的量只有第二个乘子

注意:第二个乘子中所有需要考虑的词,仅仅是在查询语句中出现的词

最后用于排序的量称为== R S V ( r e t r i e v a l   s t a t u s   v a l u e ) RSV(retrieval\, status\, value) RSV(retrievalstatusvalue) 检索信息状态==

RSV

在这里插入图片描述

我们定义== c t c_t ct 为优势率比率的对数值==

优势率比率的对数值 c t c_t ct

可以看到, c t c_t ct R S V d RSV_d RSVd 求和中的一项

  • 当查询词项出现在相关文档中时,优势率为 $\frac{p_t}{1-p_t} \$
  • 当查询词项出现在不相关文档中时,优势率为 $\frac{u_t}{1-u_t} \$

在这里插入图片描述

在这里插入图片描述

  • c t = 0 c_t = 0 ct=0 代表词项在相关和不相关文档中优势率相等
  • 若词项更可能出现在相关文档中,那么 c t c_t ct 为正,反之为负

c t c_t ct 实际上给出的是模型中词项的权重,而查询文档的得分是,可以看到这与向量空间模型的操作是相同的,只是词项的权重不一样

在这里插入图片描述

但是 q t q_t qt u t u_t ut 是不知道的,且两个加起来不等于 1。因为一个是在相关文档的集合中考虑的,一个是在不相关文档中考虑的

如何估计一个词项的 c t c_t ct 呢?

通过统计得出

相关文档数目为 S S S , 文档总数为 N N N , d f t df_t dft 为包含 t t t 的文档数

在这里插入图片描述

为了避免出现 0 的概率(比如 s = 0) , 我们通常在每一项上都加上 $\frac{1}{2} \$

u t u_t ut 部分的简化

假设相关文档只占文档集很小的一部分,我们可以简化不相关文档那部分的数据。这是 i d f idf idf 的表达式。这种优化很难扩展到 p t p_t pt

在这里插入图片描述

在这里插入图片描述

p t p_t pt 部分的假设

  • 假设对于查询中的所有词项 x t x_t xt , p t = 0.5 p_t = 0.5 pt=0.5

    • 我们期望的是:查询词项出现在很多但不是所有的相关文档中
    • 我们的假设并不严重反对这一期望
  • 因此 c t c_t ct 的第一项为 0

  • 因此决定 c t c_t ct 的就是 i d f idf idf

对于短文档的一遍查询,该方法能取得不错的结果

前面曾经说过, t f tf tf 很重要,那我们如何在模型中加入 t f tf tf 项,并且考虑归一化呢?

二值独立模型与向量空间模型的区别

  • 其实并不是特别不同
  • 在两种方式下,可以构建相同的信息检索方案
  • 对于概率检索模型,我们不是通过余弦相似度和 tf-idf 来打分,而是通过一个概率论驱动的不同的方式

Okapi BM25:一个非二值的模型

是一个概率模型,加上了词项频率和长度归一化

BIM模型最初主要为较短的编目记录和长度大致相当的摘要所设计,因此没考虑这两个方面

  • 对于文档 d d d ,最简单的文档评分方法是给文档中的每次查询词项赋予一个 i d f idf idf 权重

    在这里插入图片描述

  • 引入词项频率和文档长度

    在这里插入图片描述

    • t f t d tf_{td} tftd :文档 d 中词项 t 出现的次数

    • L d L_d Ld:文档 d 的长度

    • L a v e L_{ave} Lave:所有文档的平均长度

    • k 1 k_1 k1:一个取正值的调优参数

      • 取0,则对应 B I M BIM BIM 模型

      • 取较大的值,对应于使用原始词项频率,后面的式子相当于

        在这里插入图片描述

    • b b b (0<=b<=1):调优参数,决定文档长度的缩放程度

      • 取 1 ,表示基于文档长度对词项权重进行完全的缩放
      • 取 0,表示归一化时不考虑文档长度的影响
  • 对于长查询,对查询词项也可以使用类似的权重计算方法

    在这里插入图片描述

    • t f t q tf_{tq} tftq:词项 t t t 在查询 q q q 中的权重
    • k 3 k_3 k3:取正值的调优参数,用于对查询中的词项频率进行缩放控制
    • 对于查询的长度没有进行归一化,因为查询是固定的
    • 实验结果表明,合理的取值范围: k 1 , k 3 k_1,k_3 k1,k3 1.2~2,b = 0.75

那我们应该用哪种模型呢?

  • 基础的,简单的:向量空间模型,权重的 tf-idf
  • 牛逼的:调好参的 BM25或语言模型
  • 一般的:没调参或者只调了一个参的 BM25或语言模型

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

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

相关文章

关于PCB布局布线,这篇文章说透了

关于PCB布局布线的问题&#xff0c;今天我们不讲信号完整性分析&#xff08;SI&#xff09;、电磁兼容性分析&#xff08;EMC&#xff09;、电源完整性分析&#xff08;PI&#xff09;。 只讲可制造性分析&#xff08;DFM) &#xff0c;可制造性设计不合理同样会导致产品设计失…

2022年12月 Faster RCNN训练自己的数据集 配置环境相对简洁

以往的大多数教程都是数年前的Faster RCNN源码&#xff0c;因为旧环境和现有环境的不同&#xff0c;导致环境配置方面出现一系列问题。特别是利用setup.py或者make.sh配置所需的环境时&#xff0c;遇到并解决一个又一个的问题&#xff0c;遗憾的是&#xff0c;失败总是贯彻全局…

嗦嗦postMessage和webSocket

前端监控 本文将从前端监控要做的3件事讲起&#xff0c;以及看看github上的web-tracing插件是怎么做的&#xff0c;尽可能展开里面关于用户体验的知识点。主要有以下几点&#xff1a; 行为监控错误收集性能监控### 行为监控 行为监控就是页面上加装摄像头&#xff0c;把我们…

基于PHP+MySQL大学宿舍管理系统的设计与实现

高等学校的住宿宿舍是住宿的第二个家,是住宿进行学习与工作的重要场地。其管理水平的高低将直接影响着住宿人才培养的质量和住宿素质教育的成效。为住宿提供一个良好的管理体系,对学校和住宿而言至关重要,因此高校公寓的建设与发展,直接影响着学校后勤社会化改革的发展进程,也直…

有趣且重要的JS知识合集(17)矩形框交互算法

之前我讲过如何用js绘制矩形框&#xff0c;下面链接快速通道~ 【JS】原生js实现矩形框的绘制/拖动/缩放 那么如何判断多个矩形框是否相交&#xff1f;嵌套还是其他的呢&#xff1f; 那下面我来分别写写关于矩形框常用的几个算法吧 1、数据格式知悉 const { startX, startY…

网页整体如何实现网页变灰效果

网页整体如何变灰?为了纪念一些影响力很大的伟人逝世或者重要的纪念日的时候需要让网页全部变灰来表示我们对逝者的悼念。 其实这个功能很简单&#xff0c;方法也有很多&#xff0c;只需要在HTML 的head标签里加入如下代码即可! <style type"text/css">html …

Vulnhub_CTF-4

目录 一 渗透测试 &#xff08;一&#xff09;信息收集 1 端口扫描 2 目录枚举 &#xff08;二&#xff09;漏洞测试 1 SQL注入 2 ssh爆破 &#xff08;三&#xff09;提权 1 sudo 提权 二 知识点 &#xff08;一&#xff09;SQL延时注入 &#xff08;二…

Vue3聊天气泡简单实现思路

Vue3聊天气泡简单实现 实现聊天气泡主要有两个注意点&#xff1a; ①是根据字体数量自适应框的长度 ②字体到框有边距&#xff0c;也就是为了美观 这篇博客主要讲实现的思路&#xff0c;不讲聊天气泡的三角突出点&#xff0c;如下所示&#xff1a; 三角突出点通过简单的bord…

微服务框架 SpringCloud微服务架构 9 初识 Docker 9.1 什么是Docker

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构9 初识 Docker9.1 什么是Docker9.1.1 项目部署的问题9.1.2 Docker9.1.3 总…

StarkNet新手指南

Rollup代表了以太坊未来扩展计划的基础。 StarkNet是一个无需许可的第2层&#xff08;L2&#xff09;扩展网络&#xff0c;是“四大”早期主流rollup之一。本篇Bankless文章将向你展示&#xff0c;对于一个新手来说&#xff0c;如何畅游StarkNet生态系统&#xff01; StarkNe…

【JUC】循环屏障CyclicBarrier详解

前言 jdk中提供了许多的并发工具类&#xff0c;大家可能比较熟悉的有CountDownLatch&#xff0c;主要用来阻塞一个线程运行&#xff0c;直到其他线程运行完毕。而jdk还有一个功能类似并发工具类CyclicBarrier&#xff0c;你知道它的作用吗&#xff1f;和CountDownLatch有什么区…

QA特辑|重点重点!模型开发与部署的标准答案!

11月24日&#xff0c;顶象业务安全大讲堂系列课程之《智能模型平台》正式开讲&#xff0c;顶象人工智能总监无常从从模型平台的现状与需求出发&#xff0c;带大家了解了模型平台的开发环境与部署环境&#xff0c;并且就顶象的Xintell 模型平台 为大家做了演示。 直播也吸引了不…

【LeetCode每日一题】——38.外观数列

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 字符串 二【题目难度】 中等 三【题目编号】 38.外观数列 四【题目描述】 给定一个正整数 n …

mybatispuls 批处理 rewriteBatchedStatements=true

mybatis-plus原生的批处理 this.saveBatch(list); 实际是一条条处理&#xff0c;特慢&#xff0c;造几万行数据得几分钟以上。 如果加上配置&#xff0c;就十几秒搞定五万行数据入库 &rewriteBatchedStatementstrue

建议收藏——等级保护备案整体流程

等级保护的流程大致为定级—备案—初测—整改—复测—监督检查&#xff0c;备案需先定级。整体备案流程是向属地公安机关提交备案资料&#xff0c;需要先线上提交备案材料。线上审核通过后&#xff0c;再线下提交备案材料。具体如下&#xff1a; 1&#xff0c;先线上提交资料审…

WPF 3D MeshGeometry3D类的Positions和TriangleIndices属性研究

MeshGeometry3D 类&#xff0c;用于生成三维形状的三角形基元&#xff1b; 类的参考在此&#xff1b; https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.media.media3d.meshgeometry3d?viewwindowsdesktop-7.0 写在xaml语法里面是<MeshGeometry3D Positions.…

【Android App】低功耗蓝牙中扫描BLE设备的讲解及实战(附源码和演示 超详细)

需要源码请点赞关注收藏后评论区留言私信~~~ 一、扫描BLE设备 传统蓝牙虽然历史悠久&#xff0c;但它的缺陷也很明显&#xff0c;包括但不限于下列几点&#xff1a; &#xff08;1&#xff09;需要两部设备配对之后才能继续连接&#xff0c;而且连接速度也慢&#xff1b; &a…

数组与字符串总结

一、数组 基本概念 特点&#xff1a;顺序存储&#xff0c;每个元素大小&#xff0c;类型相同&#xff0c;元素有限 高维数组可以转化为一维数组 高维数组存放次序&#xff1a;按行优先或者按列优先 按行优先的寻址公式&#xff1a; 二维数组a[m] [n]: Loc(a[i] [j]) Loc…

Ajax axios JSON Fastjson

1、概述 AJAX (Asynchronous JavaScript And XML) &#xff1a;异步的JavaScript和XML AJAX工作流程如下: 1.1、作用 AJAX作用有以下两方面&#xff1a; 1&#xff09;与服务器进行数据交换&#xff1a;通过AJAX可以给服务器发送请求&#xff0c;服务器将数据直接响应回浏览…

算法训练Day36 贪心算法系列 - 重叠区间问题 | LeetCode435. 无重叠区间;763. 划字母区间;56.合并区间

前言&#xff1a; 算法训练系列是做《代码随想录》一刷&#xff0c;个人的学习笔记和详细的解题思路&#xff0c;总共会有60篇博客来记录&#xff0c;计划用60天的时间刷完。 内容包括了面试常见的10类题目&#xff0c;分别是&#xff1a;数组&#xff0c;链表&#xff0c;哈…