传统检索:BM25 及其变体与 DocT5query 检索算法对比

算法分析

代码链接:
BM25检索
BM25-ADPT和BM25T
DocT5query

前导参数含义:

 - 𝑓(𝑡,𝐷):词 𝑡在文档 𝐷中的词频
 - ∣D∣: 文档长度
 - avgdl: 平均文档长度
 - k1∈[1.2,2.0]: 控制词频饱和程度
 - b∈[0,1]: 控制长度归一化程度

1. BM25

  • 提出年份: 1994
  • 特点: 经典的概率检索模型,基于词频(TF)、逆文档频率(IDF)和文档长度归一化,平衡查询词与文档的相关性,广泛用于信息检索。
  • 原理:
    • BM25 基于词袋模型,计算查询词在文档中的加权得分。
    • 得分公式结合 TF(词频)、IDF(衡量词的区分度)和文档长度归一化(避免偏向长文档)。通过调参(如 k1 控制 TF 饱和度,b 控制长度归一化),模型优化相关性排名。
  • 检索示例: 查询“深度学习简介”分解为词“深度”“学习”“简介”,文档包含这些词的频率和 IDF 计算得分,排名靠前文档为包含高频查询词的短文档。
  • 优化内容:
    • 参数调优: 调整 k1(TF 饱和度)和 b(长度归一化)以适配不同语料。
    • IDF 优化: 使用平滑 IDF(如加 1)避免零分问题。
    • 可能的优化方向: 引入语义信息(如词嵌入);优化大规模语料的计算效率。
  • 优点:
    • 计算简单,效率高。
    • 广泛适用于文本检索任务。
    • 对短查询鲁棒性强。
  • 缺点:
    • 忽略语义关系,仅基于词频。
    • 对长文档或复杂查询性能有限。
    • 需手动调参。
  • 应用场景: 搜索引擎、文档检索、开放域问答的初筛。

2. Okapi BM25(替代基础BM25)

  • 提出年份: 1998 (基于 BM25 的实现,Okapi 系统首次广泛应用)

  • 特点: BM25 的具体实现版本,优化了参数设置和 IDF 计算,强调实践中的高效性和鲁棒性,广泛用于早期信息检索系统。

  • 原理:

    • Okapi BM25 是 BM25 的一个变体,核心公式与 BM25 一致,但实现上优化了参数默认值(如 k1=1.2,b=0.75)和 IDF 平滑方式(+0.5 出现在分子和分母中,整体+1)。
    • 得分基于查询词的 TF、IDF 和文档长度归一化,强调实际系统中的可调性。
      -在这里插入图片描述 平滑方式的IDF :
      逆文档频率
  • 检索示例: 查询“神经网络原理”分解为词“神经”“网络”“原理”,文档得分基于优化后的 IDF 和默认参数,排名靠前文档为包含查询词的适中长度文档。

  • 优化内容:

    • 默认参数: 固定 k1=1.2,b=0.75,简化部署。
    • IDF 平滑: 使用更鲁棒的平滑方式(如加 0.5)处理稀有词。
    • 可能的优化方向: 适配特定领域语料(如医疗、法律);结合语义特征。
  • 优点:

    • 参数优化,易于部署。
    • 在中小规模语料上表现稳定。
    • 计算效率高。
  • 缺点:

    • 仍缺乏语义理解。
    • 参数固定可能不适配所有场景。
    • 对复杂查询表现一般。
  • 应用场景: 传统搜索引擎、学术文献检索、初筛任务。

3. BM25L

  • 提出年份: 2010

  • 特点: BM25 的变体,优化文档长度归一化,引入非线性长度惩罚,减少对短文档的偏见,适合长文档检索。

  • 原理:

    • BM25L 修改了 BM25 的长度归一化公式,引入非线性因子(基于文档长度与平均长度的对数差),降低对短文档的过度偏好。得分仍基于 TF、IDF 和优化后的长度归一化。
    • 在这里插入图片描述
  • 检索示例: 查询“深度学习应用”分解为词“深度”“学习”“应用”,长文档因非线性归一化获得更公平的得分,排名更均衡。

  • 优化内容:

    • 非线性长度归一化: 减少短文档偏见,适配长文档,因此特别适合处理极短或极长文档。
    • 参数调整: 优化 k1 和 b 以平衡 TF 和长度影响。
    • 可能的优化方向: 结合语义嵌入;优化大规模长文档的索引效率。
  • 优点:

    • 适于长文档检索。
    • 长度归一化更合理。
    • 保留 BM25 的高效性。
  • 缺点:

    • 仍无语义理解。
    • 参数调优复杂。
    • 对短查询敏感性稍弱。
  • 应用场景: 长文档检索(如学术论文、技术文档)、开放域问答。

4. BM25+

  • 提出年份: 2010 (推测,与 BM25L 同期提出)

  • 特点: BM25 的扩展,引入下限 TF 因子,避免零分问题,增强对稀有词的鲁棒性,适合稀疏语料。

  • 原理:

    • BM25+ 在 BM25 基础上为 TF 项添加下限因子(如 δ=1),确保稀有词在短文档中不会被过度惩罚。得分公式仍基于 TF、IDF 和文档长度归一化,但对低频词更友好。
    • 𝛿: 常数偏移项:在这里插入图片描述
  • 检索示例: 查询“深度学习框架”包含稀有词“框架”,短文档因下限因子获得非零得分,排名更合理。

  • 优化内容:

    • 下限 TF 因子: 避免稀有词零分,提升鲁棒性。
    • 参数优化: 调整 δ 和 k1 以平衡稀有词和常见词。
    • 可能的优化方向: 结合语义模型;优化大规模稀疏语料的计算。
  • 优点:

    • 对稀有词和短文档更鲁棒。
    • 简单易实现。
    • 适于稀疏语料。
  • 缺点:

    • 语义理解不足。
    • 下限因子可能引入噪声。
    • 需调参优化。
  • 应用场景: 稀疏语料检索(如专利、法律文档)、开放域问答。

5. BM25-ADPT

  • 提出年份: 2016 (推测,基于自适应调参研究)
  • 特点: BM25 的自适应变体,通过语料特性动态调整参数(如 k1、b),减少手动调参,适合异构语料。
  • 原理:
    • BM25-ADPT 基于 BM25,动态估计参数 k1 和 b(如基于语料的文档长度分布或词频统计)。得分公式与 BM25 一致,但参数自适应提升了跨语料的通用性。

    • k1(t),b(t) 对每个词动态学习得到:在这里插入图片描述

  • 检索示例: 查询“机器学习算法”在新闻语料中,模型根据短文档特性调整 b 值,排名更贴合语料特性。
  • 优化内容:
    • 自适应参数: 根据语料特性动态调整 k1 和 b。
    • 语料分析: 使用统计方法(如文档长度分布)优化参数。
    • 可能的优化方向: 引入机器学习预测参数;结合语义特征。
  • 优点:
    • 减少手动调参,提升通用性。
    • 适于异构语料。
    • 保留 BM25 高效性。
  • 缺点:
    • 自适应算法增加复杂性。
    • 仍缺乏语义理解。
    • 对极小语料效果有限。
  • 应用场景: 异构语料检索(如新闻、社交媒体)、搜索引擎。

6. BM25T

  • 提出年份: 2018

  • 特点: BM25 的变体,结合词翻译模型为查询词分配权重,增强跨语言和同义词检索能力,适合多语言场景。

  • 原理:

    • BM25T 在 BM25 基础上引入词翻译模型(如基于统计或神经网络的翻译概率),为查询词分配不同权重,扩展查询的语义范围。得分公式基于加权 TF、IDF 和文档长度归一化。
    • 在这里插入图片描述
      门控函数:调整频率对匹配得分的影响,使其在频率过高时不失控。
      在这里插入图片描述
  • 检索示例: 查询“深度学习”通过翻译模型扩展为“deep learning”“神经网络”,文档包含扩展词的得分更高,排名更准确。

  • 优化内容:

    • 词翻译模型: 为查询词分配语义权重,增强同义词匹配。
    • 权重调优: 优化翻译概率和 BM25 参数的结合。
    • 可能的优化方向: 引入神经翻译模型;优化跨语言语料的计算效率。
  • 优点:

    • 增强跨语言和同义词检索。
    • 适于多语言场景。
    • 保留 BM25 的高效性。
  • 缺点:

    • 依赖翻译模型质量。
    • 计算复杂度略增。
    • 语义理解仍有限。
  • 应用场景: 跨语言检索、多语言问答、搜索引擎。

7. DocT5query

  • 提出年份: 2020
  • 特点: 基于深度学习的查询生成模型,使用 T5 生成文档的伪查询,增强传统检索(如 BM25)的训练数据,特别适于数据稀缺场景。
  • 原理:
    • DocT5query 使用 T5(基于 Transformer 的 seq2seq 模型)为每个文档生成多个伪查询,这些伪查询与文档配对,增强训练数据。
    • 伪查询可用于传统检索(如 BM25)或密集检索的预处理。
    • 训练时,(可选择)微调模型优化生成损失。
    • 检索时,伪查询提升文档相关性。
    • New Document=Original Text+Generated Queries
  • 深度学习检索示例: 以 T5 为例,输入文档“深度学习基础”,编码器生成语义表示,解码器通过多头注意力生成伪查询“深度学习是什么”,伪查询结合 BM25 检索相关文档。
  • 优化内容:
    • 伪查询生成: 生成高质量伪查询,缓解数据稀缺。
    • 结合传统检索: 伪查询增强 BM25 等模型的召回率。
    • 可能的优化方向: 提高伪查询多样性;减少生成模型的计算成本。
  • 优点:
    • 伪查询显著提升召回率。
    • 适于数据稀缺和多语言场景。
    • 与 BM25 等传统模型无缝结合。
  • 缺点:
    • 依赖 T5 模型,计算成本高。
    • 伪查询质量影响性能。
    • 需额外生成步骤。
  • 应用场景: 数据增强、开放域问答、多语言检索。

对比表

维度BM25Okapi BM25BM25LBM25+BM25-ADPTBM25TDocT5query
提出年份1994199820102010201620182020
特点经典概率检索模型,基于 TF、IDF 和文档长度归一化。BM25 的实现版本,优化参数和 IDF 计算,强调实践鲁棒性。优化长度归一化,引入非线性惩罚,适于长文档。引入下限 TF 因子,增强稀有词鲁棒性,适于稀疏语料。自适应参数调整,减少手动调参,适于异构语料。结合词翻译模型,增强跨语言和同义词检索。使用 T5 生成伪查询,增强传统检索的训练数据。
原理基于词袋模型,计算查询词的 TF、IDF 和长度归一化得分。优化 BM25 的参数和 IDF 平滑,计算得分。修改长度归一化,引入非线性因子。为 TF 项添加下限因子,避免零分。动态估计 k1 和 b,计算得分。引入词翻译模型加权查询词。T5 生成伪查询,增强训练数据。
优化内容- 参数调优 (k1, b)。
- IDF 优化。
- 可能的优化: 引入语义信息。
- 默认参数。
- IDF 平滑。
- 可能的优化: 适配领域语料。
- 非线性长度归一化。
- 参数调整。
- 可能的优化: 结合语义嵌入。
- 下限 TF 因子。
- 参数优化。
- 可能的优化: 结合语义模型。
- 自适应参数。
- 语料分析。
- 可能的优化: 机器学习预测参数。
- 词翻译模型。
- 权重调优。
- 可能的优化: 神经翻译模型。
- 伪查询生成。
- 结合传统检索。
- 可能的优化: 提高伪查询多样性。
优点- 计算简单,效率高。
- 短查询鲁棒性强。
- 广泛适用。
- 参数优化,易部署。
- 中小规模语料稳定。
- 效率高。
- 适于长文档。
- 长度归一化合理。
- 高效性强。
- 稀有词鲁棒。
- 简单易实现。
- 适于稀疏语料。
- 减少调参,通用性强。
- 适于异构语料。
- 高效性强。
- 增强跨语言检索。
- 适于多语言场景。
- 高效性强。
- 提升召回率。
- 适于数据稀缺和多语言。
- 结合传统模型。
缺点- 忽略语义。
- 长文档性能有限。
- 需手动调参。
- 缺乏语义理解。
- 参数固定不适配所有场景。
- 复杂查询表现一般。
- 无语义理解。
- 参数调优复杂。
- 短查询敏感性稍弱。
- 语义理解不足。
- 下限因子可能引入噪声。
- 需调参。
- 自适应算法复杂。
- 缺乏语义理解。
- 极小语料效果有限。
- 依赖翻译模型。
- 复杂度略增。
- 语义理解有限。
- 计算成本高。
- 伪查询质量影响性能。
- 需额外生成步骤。
应用场景搜索引擎、文档检索、开放域问答初筛。传统搜索引擎、学术文献检索、初筛任务。长文档检索(学术论文、技术文档)、开放域问答。稀疏语料检索(专利、法律文档)、开放域问答。异构语料检索(新闻、社交媒体)、搜索引擎。跨语言检索、多语言问答、搜索引擎。数据增强、开放域问答、多语言检索。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路过的单车

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值