前言
前面我们分享了,RAG的两种实现方式:关键字检索 、向量检索。
我们也了解了关键字检索和向量检索在实际的应用中,有各自的特点和局限性。
2023年9月,Microsoft Azure AI 在官方博客上发布了一篇题为《Azure 认知搜索:通过混合检索和排序能力超越向量搜索》的文章。该文对在 RAG 架构的生成式 AI 应用中引入混合检索和重排序技术进行了全面的实验数据评估,量化了该技术组合对改善文档召回率和准确性方面的显著效果。
一张图表快速回顾关键字检索和向量检索的特点
检索方式 | 特点 | 局限性 |
---|---|---|
关键字检索 | 1.领域外搜索:无论单词的含义如何,单词只是单词。 2.边输入边搜索:检索速度快。 3.确切短语匹配:对产品名、人名、零件编号等特别有用。 | 关键字检索可能会受到一些问题的影响,例如同义词、拼写错误等,这可能会导致一些相关的文档被漏掉或者一些不相关的文档被检索到。 |
向量检索 | 除了能够实现复杂语义的文本查找,还有其他优势: 1.容错性:处理模糊描述、拼写错误; 2.多模态理解:支持文本、图像、音视频等相似匹配; 3.多语言理解:跨语言理解,如输入中文匹配英文;相似语义理解; | 在某些情况下,呈现的效果不佳,比如: 1.搜索一个人或物体的名字(例如,伊隆·马斯克,iPhone 15) 2.搜索缩写词或短语(例如,RAG,RLHF) 3.搜索 ID(例如, gpt-3.5-turbo , titan-xlarge-v1.01 ) |
从我们汇总的信息可以比较直观的看出,我们本文要专题分享混合检索的原因了。
什么是混合检索?
接下来我们就先来了解下到底什么是混合检索,可能从我们以上综合提到了两个检索方式,也已经能推断出来了。
没错,在RAG系统中,混合搜索最常见指向量检索和关键词检索的组合。在不同场景中,实际应用会有不同方式,从概念上讲:混合检索是结合了两种或者多种搜索算法提高搜索结果相关性的搜索技术。
混合检索的原理
关于关键字检索和向量检索,还有另外一种表述:
关键字检索(稀疏表示)、向量检索(稠密表示)。
基于关键字的搜索和向量搜索都返回一组单独的结果,通常是按计算的相关性排序的搜索结果列表。必须将这些单独的搜索结果集组合在一起。
有许多不同的策略可以将两个列表的排名结果合并为一个单一的排名,一般来说,搜索结果通常是首先评分的。这些分数可以根据指定的指标(例如余弦距离)计算,也可以仅根据搜索结果列表中的排名进行计算。
然后,计算出的分数用一个参数进行加权,该参数决定了每个算法的权重并影响结果的重新排名。
通常,alpha 取一个介于 0 和 1 之间的值,其中
alpha = 1:纯向量搜索
alpha = 0:纯关键字搜索
下面,您可以看到关键字和向量搜索之间融合的最小示例,其中包含基于排名和 .alpha = 0.5
