Skip to content

混合检索

混合检索是指在RAG中,把向量检索和关键词检索结合起来,取长补短,提升检索结果的全面性和准确性,为什么要混合,因为两种检索方式各有软肋

  • 向量检索擅长语义理解
  • 关键词检索正好反过来,精确匹配没问题,但是理解不了语义

混合检索就是两条路并行走,向量检索走一遍,关键词检索搜一遍,最后两边的结果融合起来,用权重加权或者RRF算法重排序,把最优结果喂给大模型

工程上ES就支持关键词检索和向量检索,可以用LlamaIndex+ES快速搭建混合检索系统

image.png

结果融合策略

两路检索的结果合并常见做法有两个

  • 加权求和
    • 给向量检索和关键词检索的分数分别乘以权重,加起来算总分,比如向量检索权重0.7,关键词检索权重0.3,最后用总分排序,至于权重怎么定,需要业务经验和反复测试
  • RRF算法,不看分数只看排名,对每个文档算1/(K+RANK) ,k一般取60,然后把两路的分数加起来,好处是不用关心两路检索分数的量纲差异,直接用排名算

image.png

最后更新于: