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

2024-07-13 1065阅读

接前一篇: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分词器进行计算的,为了好截图,后文讲解则是使用默认分词器,
不影响过程分析。

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

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=1∑n​IDF(qi​)⋅f(qi​,D)⋅k1​⋅(1−b+b⋅avgdl∣D∣​)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​)

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]