当前位置:首页 > 技术分析 > 正文内容

RAG下向量检索与关键词检索差异与场景区别

ruisui883个月前 (03-29)技术分析26

在RAG(检索增强生成)中,向量检索和关键词检索是两种核心的检索算法,它们的底层逻辑、适用场景和优劣势截然不同。以下从技术原理、算法差异到应用场景的对比分析:

一、核心差异

二、算法原理对比

1. 关键词检索(Keyword Search)

o 核心算法:如BM25(改进的TF-IDF)

o 原理:

o 词频(TF):统计关键词在文档中出现的频率。

o 逆文档频率(IDF):降低常见词的权重(如“的”“是”)。

o 公式:BM25 Score = Σ (TF * IDF)

o 特点:

o 严格依赖关键词匹配:检索结果必须包含查询中的关键词。

o 忽略语义:无法处理同义词(如“番茄” vs “西红柿”)或抽象表述。

2. 向量检索(Vector Search)

o 核心算法:基于神经网络的文本嵌入(Embedding)

o 原理:

o 文本向量化:用预训练模型(如BERT)将文本映射为稠密向量。

o 相似度计算:通过余弦相似度比较向量距离。

o 特点:

o 语义理解:能捕捉上下文和隐含意图(如“苹果”在不同语境下的含义)。

o 无需关键词重叠:即使查询和文档无相同词汇,也能匹配相关结果。

三、典型应用场景

1. 关键词检索的适用场景

o 精确匹配需求:搜索法律条文、专利、产品型号等需严格匹配术语的场景。

o 例:查询“2023年《民法典》第107条”,必须精确命中法条原文。

o 高频词主导的短文本:短问答、商品标题搜索等。

o 例:电商搜索“红色连衣裙”,需快速匹配标题中的关键词。

o 低算力环境:需快速响应且资源有限的场景(如移动端搜索)。

2. 向量检索的适用场景

o 语义模糊或抽象查询:问答系统、客服对话等需理解意图的场景。

o 例:用户问“如何缓解失眠”,需匹配“睡眠质量提升方法”等语义相关但无关键词重叠的文档。

o 多语言/同义词匹配:跨语言检索或处理同义词表达。

o 例:搜索“AI技术”时,能匹配“人工智能”“机器学习”等文档。

o 长文本理解:论文、报告等需综合上下文语义的场景。

四、混合检索(Hybrid Search)

实际应用中,常结合两种方法提升效果:

1 粗筛 + 精排:先用关键词检索缩小范围,再用向量检索排序。

2 加权融合:对关键词检索和向量检索的得分加权(如总得分 = 0.3*BM25 + 0.7*向量相似度)。

五、总结

关键结论:

o 关键词检索是“快而准”,适合明确目标的搜索

o 向量检索是“智能但慢”,适合开放语义理解

o 混合检索是两者优势互补的终极方案

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3127.html

标签: bert词向量
分享给朋友:

“RAG下向量检索与关键词检索差异与场景区别” 的相关文章

亚马逊推出 Amazon Linux 2023 发行版,专为 AWS 云进行优化

稿源:IT之家3 月 19 日消息,本周早些时候,亚马逊宣布推出其第三代 Linux 发行版 Amazon Linux 2023(AL2023)。亚马逊表示,该版本将带来高安全性标准、可预测的生命周期和确定性更新。Amazon Linux 2023 针对 Amazon EC2 进行了优化,与最新的...

发行版Vanilla OS 2发布稳定版:彻底重写、改变使用Linux的方式

Vanilla OS 是去年崭露头角的 Linux 发行版,最初的 1.0 版本基于 Ubuntu 构建 —— 亮点之一是系统核心“不可变”。后来改用 Debian 测试分支 (Debian Sid),免费且开源,默认桌面环境是 GNOME。什么是不可变 Linux 发行版?不可变发行版确保操作系统...

「干货」FPGA设计中深度约束技巧及调试经验总结

今天跟大家分享的内容很重要,也是我们调试FPGA经验的总结。随着FPGA对时序和性能的要求越来越高,高频率、大位宽的设计越来越多。在调试这些FPGA样机时,需要从写代码时就要小心谨慎,否则写出来的代码可能无法满足时序要求。另外,最近跟网友聊天时,有谈到公众号寿命的问题,我觉得网络交换FPGA公众号应...

Excel中的FILTER函数详细介绍及使用示例

在Excel中处理大量数据时,经常需要根据特定条件筛选出符合条件的数据行或列。这正是Excel的FILTER函数发挥作用的地方。FILTER函数是Excel中一个非常强大的工具,它可以基于一个或多个条件动态地过滤数据,使数据分析和报告制作变得更加高效和准确。本文将详细介绍FILTER函数的用法,并提...

12种JavaScript中最常用的数组操作整理汇总

数组是最常见的数据结构之一,我们需要绝对自信地使用它。在这里,我将列出 JavaScript 中最重要的几个数组常用操作片段,包括数组长度、替换元素、去重以及许多其他内容。1、数组长度大多数人都知道可以像这样得到数组的长度:const arr = [1, 2, 3]; console.log(a...

关于Vue页面跳转传参,参数不同, 但页面只获取参数一次的问题

#头条创作挑战赛#1.问题描述问题描述: element 展示表格(页面A),点击表格的每一行的查看详情按钮,可以携带此行的信息参数跳转到另一个页面(页面B),但是从A页面到B页面,只有第一次跳转的时候B页面可以获取到A页面的参数,返回再次A->B ,B页面无法获取到参数。2.解决办法:方法一...