向量相似度、混合相似度、关键词相似度的理解

这三个概念是知识库检索和 RAG 系统里最核心的匹配策略。理解它们,关键要抓住一个核心问题:怎么判断两段文字"像不像"?

🎯 一句话理解三者

  • 关键词相似度 :看两段文字有没有相同的词。像查字典,按字面匹配。
  • 向量相似度 :看两段文字意思像不像。像理解语义,按含义匹配。
  • 混合相似度 :把上面两种结合起来,既看字面又看语义,取长补短。

📖 关键词相似度(Keyword Similarity)

是什么 :基于字面词汇的匹配。它把文本看成词的集合,通过统计共同出现的词来判断相似程度。最经典的是 BM25 算法,以及早期的 TF-IDF。

怎么理解 :就像你用 Ctrl+F 在文档里搜关键词。两段文字共有的词越多、这些词越重要(越罕见),相似度就越高。它不理解语义,只认字面。

示例

文本 A 文本 B 关键词相似度 原因
"苹果手机电池续航" "iPhone 电池能用多久" 只有"电池"一个词重合,"苹果"和"iPhone"字面不同
"苹果手机电池续航" "苹果手机电池容量" 共有"苹果""手机""电池"三个词
"如何退款" "怎么退货" 字面几乎没有重合词

优点 :精确、可解释、对罕见词和专有名词(如型号、代码、人名)非常敏感。

缺点:无法处理同义词、近义词、换一种说法的情况。

🧠 向量相似度(Vector Similarity)

是什么 :基于语义的匹配。它把文本通过 Embedding 模型转换成一串数字(向量),再计算两个向量在空间中的距离或夹角。常用算法是余弦相似度

怎么理解 :把每段文字想象成高维空间里的一个点,意思相近的文字,它们的点就靠得近。它理解语义,但可能忽略精确的字面细节。

示例

文本 A 文本 B 向量相似度 原因
"苹果手机电池续航" "iPhone 电池能用多久" 语义上都在问手机电池使用时长
"如何退款" "怎么退货" 语义上都是想退掉商品
"苹果手机电池续航" "苹果公司财报" 虽然都有"苹果",但语义主题完全不同

优点 :能处理同义词、换述、跨语言匹配,理解能力强。

缺点:对精确的专有名词、数字、代码不敏感;可能出现"语义相近但事实错误"的匹配;依赖 Embedding 模型的质量。

🔀 混合相似度(Hybrid Similarity)

是什么 :把关键词相似度和向量相似度结合起来,通常做法是分别计算两种分数,再通过加权或排序融合(如 RRF,Reciprocal Rank Fusion)得到最终结果。

怎么理解:相当于同时派两个检索员去找资料------一个按字面找,一个按语义找,最后把两人的结果合并排序。这样既能抓住精确匹配,又不漏掉语义相关的内容。

示例

假设知识库里有三段文档,用户问"iPhone 电池续航怎么样":

文档 关键词分数 向量分数 混合后
"iPhone 电池续航实测" 最高
"苹果手机电池能用多久" 低(字面不同) 高(语义相近) 较高
"苹果公司发布新财报" 最低

如果只用关键词,第二段会被漏掉;如果只用向量,可能把第三段误判。混合策略能同时避免这两个问题。

优点 :兼顾精确性和语义理解,是目前 RAG 系统的主流方案。

缺点:实现更复杂,需要调权重、做分数归一化,计算成本也更高。

📊 三者对比总结

维度 关键词相似度 向量相似度 混合相似度
匹配依据 字面词汇 语义含义 两者结合
典型算法 BM25、TF-IDF 余弦相似度、Embedding RRF、加权融合
同义词处理
专有名词/数字
可解释性
计算成本 中高
典型场景 精确搜索、代码检索 语义问答、跨语言 生产级 RAG

💡 实际应用中怎么选

  • 只用关键词:适合对精确性要求极高的场景,比如搜代码、搜法律条文、搜产品型号。
  • 只用向量:适合开放式的语义问答,比如客服机器人、知识库问答。
  • 用混合:生产环境的 RAG 系统通常默认选这个,因为真实用户的提问方式千变万化,单一策略很难覆盖全。

一个常见的落地做法是:先用混合相似度召回一批候选文档,再用 Rerank 模型做精排,这样既能保证召回率,又能提升最终排序的准确性。

相关推荐
thesky12345610 小时前
27届大模型面试准备(九十四):大模型弹性推理与GPU资源池化工程——GPU池化/虚拟化复用/弹性扩缩/显存碎片整理
大模型·mig·超分·mps·gpu池化·弹性扩缩容·弹性推理
蔡俊锋14 小时前
DeepSeek 语音对话灰度上线:四种音色背后的端侧 AI 交互架构与商业逻辑
架构·大模型·语音交互·deepseek·端侧ai
IT·陈寒17 小时前
Python的GIL问题又把我坑惨了
人工智能·大模型·api·创业·变现·简历优化
长谷深风11119 小时前
支付审批的智能风险控制设计
大数据·人工智能·ai·大模型·支付·aiagent·hitl
Java后端的Ai之路19 小时前
一文搞懂 GitHub Actions-CICD
开发语言·大模型·github·cicd·action
IT·陈寒20 小时前
React状态更新为啥有时吞了我的变更?
人工智能·大模型·api·创业·变现·简历优化
codigger21 小时前
从 LLM 到 Agent Skill:9 个底层概念,一次理清整个 AI 技术栈
ai·大模型·#人工智能·#agent
香吧香1 天前
语义理解和向量相似度
大模型
VIP_CQCRE1 天前
Visual Studio 接入 AI 编程助手:用 LMLocal 连接 Ace Data Cloud
ai·大模型·开发工具·visual studio·ace data cloud