RAG理论:ES混合搜索BM25+kNN(cosine)以及归一化

接前一篇:RAG实践:ES混合搜索BM25+kNN(cosine)

https://blog.csdn.net/Xin_101/article/details/140230948

本文主要讲解混合搜索相关理论以及计算推导过程,
包括BM25、kNN以及ES中使用混合搜索分数计算过程。
详细讲解:
(1)ES中如何通过BM25计算关键词搜索分数;
(2)kNN如何通过consine计算语义/向量搜索最终分数,不是直接使用consine距离;
(3)混合搜索最终得分是如何计算的,如何进行归一化优化。

Note:提前声明
下面这张是使用ik分词器进行计算的,为了好截图,后文讲解则是使用默认分词器,
不影响过程分析。

在这里插入图片描述

4 理论

4.1 BM25

BM25(Best Matching 25)匹配算法用于文本检索,其中,25,查阅相关网络资源说是第25次迭代的算法,BM25基于TF-IDF,并进行了改进,引入了可调整参数k1和b。
k1:为饱和函数,防止某额词在文档中出现次数过多导致权重过大;
b:为文档长度因子,使文档长度堆权重的影响不是线性的,更好地适应不同长度的文档。
这也是BM25优点以及缺点的来源:

  • 优点
    (1)k1和b,考虑文档长度,可以有效避免文档长度带来的影响;
    (2)根据不同领域的数据,可以调整k1和b,获取更好的搜索效果,适应不同领域的数据。
  • 缺点
    (1)需要高质量的数据;
    (2)参数k1和b直接影响检索效果,需要不断优化调整,以适应具体的场景。

B M 25 ( Q , D ) = ∑ i = 1 n I D F ( q i ) ⋅ f ( q i , D ) ⋅ ( k 1 + 1 ) f ( q i , D ) ⋅ k 1 ⋅ ( 1 − b + b ⋅ ∣ D ∣ a v g d l ) BM25(Q, D)=\sum_{i=1}^{n}IDF(q_{i})·\frac{f(q_{i}, D)·(k_{1}+1)}{f(q_{i}, D)·k_{1}·(1-b+b·\frac{|D|}{avgdl})} BM25(Q,D)=i=1nIDF(qi)f(qi,D)k1(1b+bavgdlD)f(qi,D)(k1+1)
其中:
T F ( q i ) = f ( q i , D ) ⋅ ( k 1 + 1 ) f ( q i , D ) ⋅ k 1 ⋅ ( 1 − b + b ⋅ ∣ D ∣ a v g d l ) TF(q_{i})=\frac{f(q_{i}, D)·(k_{1}+1)}{f(q_{i}, D)·k_{1}·(1-b+b·\frac{|D|}{avgdl})} TF(qi)

相关推荐

  1. 数据标准化与:深入理解及应用

    2024-07-11 11:04:03       21 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 11:04:03       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 11:04:03       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 11:04:03       62 阅读
  4. Python语言-面向对象

    2024-07-11 11:04:03       72 阅读

热门阅读

  1. 编程语言ju:探索、挑战与未来趋势

    2024-07-11 11:04:03       26 阅读
  2. 相机光学(三十一)——暗房设置的要求

    2024-07-11 11:04:03       29 阅读
  3. 前端开发工具

    2024-07-11 11:04:03       22 阅读
  4. 手机下载APP (uniapp/vue)

    2024-07-11 11:04:03       26 阅读
  5. 腾讯地图简单功能的封装

    2024-07-11 11:04:03       23 阅读
  6. 第四章 Redis(2023版本IDEA)

    2024-07-11 11:04:03       24 阅读
  7. Spring MVC -01

    2024-07-11 11:04:03       28 阅读
  8. 设计模式03-组合模式

    2024-07-11 11:04:03       25 阅读
  9. .net开发:NPOI生成excel文件到磁盘

    2024-07-11 11:04:03       28 阅读
  10. 应用TensorFlow简单工作流程

    2024-07-11 11:04:03       24 阅读