跳转到主要内容

热门内容

今日:

  • 【创新和组织】苹果如何组织创新
  • 【SAP S4HANA】SAP S4HANA完整入门指南
  • 【数据管道】在数据管道中使用dbt和Duckdb而不是Spark
  • 商业管理
  • 【DevOps效能】使用DORA指标成为精英团队
  • 【数据仓库架构】数据保管库建模的数据仓库方法
  • 【数据目录】DataHub:领英的数据发现、目录和元数据管理开源工具
  • 【数据谱系】开源数据谱系工具:2023年流行的5种工具
  • 【工业物联网】工控协议解析:OPC和Modbus之间的区别之一
  • 【非功能需求】定义RTO,MTBF和MTTR

总体:

  • 【数据集成】用于数据集成的10个最佳开源ETL工具
  • 【Java框架】2022 年 17 个流行的 Java 框架:优缺点等
  • 【管理】热尔韦原理综述
  • 【开源许可】从开源到免费和开源,MinIO现在在GNU AGPLv3许可
  • 【SAP】如何开始使用Sap AFS和Sap FMS。
  • 【数据目录】OpenMetadata与DataHub:比较架构、功能、集成等
  • 【数据治理】开源数据治理-2023年需要考虑的7个最佳工具
  • 【开源合规】使用MySQL许可:开源许可与商业许可
  • 【微服务架构】微服务已死——迷你服务万岁
  • 【SAP GUI】什么是SAP GUI(图形用户界面)以及如何使用它

最近浏览:

  • 【数据目录】DataHub:领英的数据发现、目录和元数据管理开源工具
  • 【SAP】使用LSMW的最佳方法分为14个步骤
  • 【非功能需求】定义RTO,MTBF和MTTR
  • 【SAP Marketplace】如何开始使用SAP Marketplace
  • 【工业物联网】工控协议解析:OPC和Modbus之间的区别之一
  • 【LLMOps】微调LLM:参数有效微调(PEFT)——LoRA和QLoRA——第2部分
  • 【大数据架构】Apache Hudi、Delta Lake 和 Apache Iceberg - Data Lakehouse 功能比较
  • 【数据管道】在数据管道中使用dbt和Duckdb而不是Spark
  • 【DevOps效能】使用DORA指标成为精英团队
  • 【创新和组织】苹果如何组织创新

热门内容

今日:

  • 【数据仓库架构】数据保管库建模的数据仓库方法
  • 【工业物联网】工控协议解析:OPC和Modbus之间的区别之一
  • [智能体架构]多agent协作
  • 【通讯协议】HTTP/2和GRPC:微服务通信的事实标准
  • 【Salesforce 】Salesforce架构师的网络最佳实践
  • [CUDA C++编程指南 ] 1.介绍
  • 【microsoft search 】Copilot的语义索引
  • 【工程能力】构建工程能力矩阵的7个步骤
  • 商业管理
  • 【存储架构】云上坚不可摧的存储Apache Bookkeeper

总体:

  • 语言和框架
  • 【容器架构】Minikube vs.kind vs.k3s-我应该用哪一个?
  • 【数据集成】用于数据集成的10个最佳开源ETL工具
  • 【Java框架】2022 年 17 个流行的 Java 框架:优缺点等
  • 【技术选型】Keras、TensorFlow和PyTorch的区别
  • 【深度学习】45测试深度学习基础知识的数据科学家的问题(以及解决方案)
  • 【数据架构】什么是实体关系图(ERD)?
  • 【Rust架构】Rust web框架比较
  • 【知识】DIKW(数据,信息,知识,智慧)金字塔
  • 【数据治理】开源数据治理-2023年需要考虑的7个最佳工具

最近浏览:

  • 【数据目录】DataHub:领英的数据发现、目录和元数据管理开源工具
  • 【SAP】使用LSMW的最佳方法分为14个步骤
  • 【非功能需求】定义RTO,MTBF和MTTR
  • 【数据管道编排】2023年流行的5种开源数据管道编排工具
  • 【通讯协议】HTTP/2和GRPC:微服务通信的事实标准
  • 将 AI 集成到数字转型型战略和路线图中的 25 个步骤
  • 【microsoft search 】Copilot的语义索引
  • 【容器云】Kubernetes架构和带图组件
  • [智能体架构]多agent协作
  • 【SAP Marketplace】如何开始使用SAP Marketplace

首页
x

Main navigation

  • 主页
  • 数字化 +
    • 数字业务自动化
    • 数字化方案
    • 数字化转型战略
    • 数字化转型治理
    • 数字化运营
    • 数字化客户
      • 客户
    • 数字化研发
      • 研发
    • 数字化制造
    • 数字化生产
    • 数字化供应链
    • 数字化销售
    • 数字化服务
    • 数字化营销
      • 营销
    • 数字化财务
    • 人力资源
    • 数字化法务
  • 企业架构 +
    • 企业安全架构
    • 企业架构框架
    • 方案架构
  • 企业业务架构
  • 企业技术架构
  • 企业应用架构
  • 企业数据架构
  • 数据应用架构 +
    • 主数据架构
    • 大数据架构
    • 数据仓库架构
    • 数据保护
    • 数据库架构
    • 数据建模
    • 数据枢纽架构
    • 数据湖架构
    • 数据编制架构
    • 数据网格架构
    • 数据虚拟化架构
  • 集成架构 +
  • 架构质量 +
  • 软件架构 +
  • 大数据架构 +
    • Hadoop 生态
    • Saprk生态
    • 大数据战略
  • 数据和分析 +
    • 机器学习
    • 数据分析
    • 数据可视化
    • 数据工程
    • 数据战略
    • 数据挖掘
    • 数据科学
    • 商务智能
  • 数据库架构 +
    • MySql架构
    • PostgreSql架构
    • 云数据库
    • 内存数据库
    • 列式数据库
    • 图形数据库
    • 搜索引擎
    • 文档数据库
  • 数据治理
  • 数据管理 +
    • 数据仓库
    • 数据湖
  • 企业合规管理
  • 企业治理 +
  • 企业风险管理
  • 隐私保护
  • 智能转型 +
  • 云计算 +
    • AWS 平台
    • SaaS云
    • Salesforce
    • 云原生
    • 云架构
    • 云治理
    • 云转型战略
    • 容器云
    • 微软云
    • 私有云
  • 人工智能 +
  • 生成式人工智能 +
    • 多模态模型
    • 大视觉模型
    • 大语言模型
    • 大音频模型
  • 万物互联 +
    • 工业控制系统
    • 工业物联网
    • 物联网(IoT)安全
    • 物联网(IoT)架构
    • 物联网战略
    • 边缘计算
  • 元宇宙
  • 区块链 +
  • 安全 +
    • 云安全
    • 安全工具
    • 安全战略
    • 安全运营
    • 应用安全
    • 数据安全
    • 终端安全
    • 网络安全
    • 隐私保护
  • 基础设施 +
  • 软件开发 +
    • 开发管理
    • 需求分析
    • 低代码开发
  • 软件测试 +
  • 软件设计
  • DevOps +
  • 敏捷
  • 项目 +
  • 平台和工具 +
    • DevOps工具
    • 云计算平台
    • 企业事件枢纽
    • 其他工具
    • 分布式平台
    • 大数据平台
    • 应用中间件
    • 开发工具
    • 数据工具
    • 集成平台
  • 语言和框架 +
    • Go语言
    • Javascript开发
    • Java开发
    • Python开发
    • Rust语言
    • TypeScript开发
    • 前端技术和框架
    • 算法和数据结构
  • 硬件和设备 +
  • 产品 +
    • 产品管理
    • 产品设计
  • 技术 +
    • 技术趋势
    • 技术选型
  • 用户体验 +
  • IT管理 +
  • 商业 +
    • 商业模型
    • 商业管理
    • 商业结构
    • 商业计划
    • 商务沟通
    • 创业
      • 创业管理
    • 国际商务
    • 经济
  • 战略 +
  • 管理 +
  • 解决方案
  • 关注
  • 社区
  • 职业
  • 职业和职位 +
  • 咨询服务
  • 微软专栏

【自然语言处理】基于互秩融合的混合搜索相关性评分

  1. 首页 ⟶
  2. 【自然语言处理】基于互秩融合的混合搜索相关性评分
Chinese, Simplified
SEO Title
Relevance scoring in hybrid search using Reciprocal Rank Fusion (RRF)

category

  • 人工智能

倒数排名融合(RRF)是一种从多个先前排名的结果中评估搜索分数以生成统一结果集的算法。在Azure AI搜索中,只要有两个或多个查询并行执行,就会使用RRF。每个查询都会产生一个排名结果集,RRF用于将排名合并并均匀化为单个结果集,并在查询响应中返回。总是使用RRF的场景的示例包括同时执行的混合搜索和多个矢量查询。

RRF基于倒数排名的概念,倒数排名是搜索结果列表中第一个相关文档的排名的倒数。该技术的目标是考虑项目在原始排名中的位置,并赋予多个列表中排名较高的项目更高的重要性。这有助于提高最终排名的整体质量和可靠性,使其更适用于融合多个有序搜索结果的任务。

RRF排名的工作原理


RRF的工作原理是从多种方法中获取搜索结果,为结果中的每个文档分配一个倒数排名分数,然后将分数组合起来创建一个新的排名。其概念是,在多种搜索方法中出现在顶部位置的文档可能更相关,并且在组合结果中排名更高。

以下是RRF过程的简单解释:

  1. 从并行执行的多个查询中获得排名搜索结果。
  2. 为每个排名列表中的结果分配倒数排名分数。RRF为每个结果集中的每个匹配生成一个新的@search.score。对于搜索结果中的每个文档,引擎会根据其在列表中的位置分配一个倒数排名分数。得分计算为1/(rank+k),其中rank是文档在列表中的位置,k是一个常数,实验观察到,如果将其设置为60这样的小值,则表现最佳。注意,该k值是RRF算法中的常数,并且与控制最近邻居数量的k完全分离。
  3. 合并分数。对于每个文档,引擎将从每个搜索系统获得的倒数分数相加,生成每个文档的组合分数。
  4. 引擎根据综合得分对文档进行排序。由此产生的列表是融合的排名。

只有在索引中标记为可搜索的字段或查询中的searchFields才会用于评分。只有标记为可检索的字段或在查询中的select中指定的字段才会在搜索结果中返回,以及它们的搜索得分。

并行查询执行


只要有多个查询执行,就会使用RRF。以下示例说明了发生并行查询执行的查询模式:

  • 一个全文查询加上一个矢量查询(简单的混合场景)等于两次查询执行。
  • 一个全文查询,加上一个针对两个矢量字段的矢量查询,等于三次查询执行。
  • 一个全文查询,加上针对五个矢量字段的两个矢量查询,等于11次查询执行


混合搜索结果中的分数


无论何时对结果进行排序,@search.score属性都包含用于对结果排序的值。分数是由每种方法不同的排名算法生成的。每种算法都有自己的范围和大小。

下表确定了每个匹配返回的评分属性、算法以及每个相关性排名算法的评分范围。

Search method Parameter Scoring algorithm Range
full-text search @search.score BM25 algorithm No upper limit.
vector search @search.score HNSW algorithm, using the similarity metric specified in the HNSW configuration. 0.333 - 1.00 (Cosine), 0 to 1 for Euclidean and DotProduct.
hybrid search @search.score RRF algorithm Upper limit is bounded by the number of queries being fused, with each query contributing a maximum of approximately 1 to the RRF score. For example, merging three queries would produce higher RRF scores than if only two search results are merged.
semantic ranking @search.rerankerScore Semantic ranking 0.00 - 4.00


语义排名不参与RRF。其得分(@search.rerankerScore)总是在查询响应中单独报告。语义排名可以重新排列全文和混合搜索结果,假设这些结果包括具有语义丰富内容的字段。

加权得分


从2024-05-01预览开始,您可以对矢量查询进行加权,以增加或降低它们在混合查询中的重要性。

回想一下,当为某个文档计算RRF时,搜索引擎会查看该文档显示的每个结果集的排名。假设一个文档显示在三个独立的搜索结果中,其中结果来自两个矢量查询和一个文本BM25排序查询。文档的位置因每个结果而异。

Match found Position in results @search.score weight multiplier @search.score (weighted)
vector results one position 1 0.8383955 0.5 0.41919775
vector results two position 5 0.81514114 2.0 1.63028228
BM25 results position 10 0.8577363 NA 0.8577363


文档在每个结果集中的位置对应于一个初始分数,将这些分数相加以创建该文档的最终RRF分数。

如果添加矢量权重,则初始分数将被细分为增加或减少分数的权重乘数。默认值为1.0,这意味着没有权重,初始分数在RRF评分中按原样使用。但是,如果添加0.5的权重,分数会降低,并且该结果在组合排名中变得不那么重要。相反,如果添加2.0的权重,则该分数将成为RRF总分数中的一个较大因素。

在本例中,@search.score(加权)值被传递给RRF排名模型。

混合查询响应中排名的结果数


默认情况下,如果不使用分页,搜索引擎会为全文搜索返回排名前50位的匹配项,为矢量搜索返回最相似的k个匹配项。在混合查询中,top决定响应中的结果数。根据默认值,将返回统一结果集中排名前50位的匹配。

通常,搜索引擎会发现比top和k更多的结果。要返回更多的结果,请使用分页参数top、skip和next。分页是确定每个逻辑页上的结果数并浏览整个负载的方式。您可以将maxTextRecallSize设置为更大的值(默认值为1000),以从混合查询的文本端返回更多结果。

默认情况下,全文搜索的最大匹配限制为1000(请参阅API响应限制)。一旦找到1000个匹配项,搜索引擎就不再寻找更多匹配项。

有关详细信息,请参阅如何使用搜索结果。

搜索评分工作流程图


下图展示了一个混合查询,该查询调用关键字和向量搜索,并通过评分配置文件和语义排名进行提升。

预过滤器示意图。

生成上一个工作流的查询可能如下所示:

HTTP

POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version=2023-11-01
Content-Type: application/json
api-key: {{admin-api-key}}
{
  "queryType":"semantic",
  "search":"hello world",
  "searchFields":"field_a, field_b",
  "vectorQueries": [
      {
          "kind":"vector",
          "vector": [1.0, 2.0, 3.0],
          "fields": "field_c, field_d"
      },
      {
          "kind":"vector",
          "vector": [4.0, 5.0, 6.0],
          "fields": "field_d, field_e"
      }
  ],
  "scoringProfile":"my_scoring_profile"
}


另请参阅


  • Learn more about hybrid search
  • Learn more about vector search
 
 

本文地址
https://architect.pub/relevance-scoring-hybrid-search-using-reciprocal-rank-fusion-rrf
  • 登录 发表评论
  • 95 次浏览
发布日期
星期六, June 29, 2024 - 17:51
最后修改
星期六, June 29, 2024 - 17:52

Tags

  • 倒数排名融合
  • RRF
  • 人工智能
  • 自然语言处理
Article
Read more

最新内容

  • 【DeepSeek】如何为自定义数据集微调DeepSeek-R1(一步一步)
    3 weeks 1 day ago
  • 【UI开发】为AI应用程序构建UI的3个最佳Python框架
    1 month ago
  • 【前端开发】🚀🔥 改变编码方式的10个前端开发AI助手
    1 month ago
  • 【前端开发】生成式AI革新前端开发:传统开发模式的颠覆
    1 month ago
  • 【CNN架构】解释不同类型的CNN架构:示例
    1 month ago
  • 【信息设计】设计模式指南:学习指南
    1 month ago
  • 【设计思维】什么是设计思维?
    1 month ago
  • 【Gen UI】生成式用户界面与结果导向设计的范式革命​
    1 month 3 weeks ago
  • 测试Bolt.new:开发者亲测AI应用构建工具​
    1 month 3 weeks ago
  • 生成式用户界面(Gen UI)是什么?它重要吗?
    1 month 3 weeks ago

网站备案号:京ICP备2022026098号-2

友情链接

  • CPO宝典
  • 全球IT瞭望
  • 开发者开聊
  • 智能化转型智库
  • 架构师研究会

知识星球

知识星球:首席架构师圈

 

抖音直播

抖音:cea_cio(超级架构师)
干货直播,干货分享

 

微信小号

超级架构师
超级架构师小号:加群,私聊

 

微信公众号

超级架构师公众号

 

QQ群:超级架构师

QQ Group

Tags

Tags

  • 倒数排名融合
  • RRF
  • 人工智能
  • 自然语言处理
© 2025 架构师研究会, All rights reserved.
↑