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

这三个概念是知识库检索和 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 模型做精排,这样既能保证召回率,又能提升最终排序的准确性。

posted @ 2026-09-15 07:25  未来AI笔记  阅读(100)  评论(1)    收藏  举报