Azure Machine Learning - 搜索中的语义排名

news2024/11/15 8:30:18

目录

    • 什么是语义排名?
    • 语义排名的工作原理
      • 如何收集和总结输入
      • 语义排名的输出
      • 如何对摘要进行评分
    • 语义功能和限制

在 Azure AI 搜索中,“语义排名”通过使用语言理解对搜索结果重新排名来显著提高搜索相关性, 本文概括性地介绍了语义排名工作原理。

关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。

什么是语义排名?

语义排名是一组与查询相关的功能,可提高基于文本的查询的初始 [BM25 排名]搜索结果的质量。 针对搜索服务启用它时,语义排名通过两种方式来扩展查询执行管道:

  • 首先,它在使用 BM25 或 RRF 评分的初始结果集的基础上添加了二次排名。 此二次排名使用改写自 Microsoft 必应的多语言深度学习模型来提升在语义上最相关的结果的排名。

  • 其次,它会提取并返回响应中的描述和答案,你可以在搜索页面上呈现它们以改进用户的搜索体验。

下面是语义排名的功能。

功能说明
语义排名使用查询的上下文或语义含义基于预排名的结果计算新的相关性分数。
[语义标题和重点]从文档中提取最能总结内容的逐字句子和短语,并突出显示关键段落,以便于扫描。 当单个内容字段对“搜索结果”页来说过于密集时,用于总结结果的标题就非常有用了。 突出显示的文本会提升最相关的术语和短语,这样用户就能够快速确定匹配被视为相关的原因。
[语义答案]从语义查询返回的可选附加子结构。 它直接回答了类似问题的查询。 它要求文档包含带有答案特征的文本。

语义排名的工作原理

“语义排名”查找词语之间的上下文和相关性,从而提升对查询更有意义的匹配项。

下图说明了这一概念。 请考虑“capital”一词。 它具有不同的含义,具体取决于上下文是财务、法律、地理还是语法。 通过语言理解,语义排名程序可以检测上下文并提升符合查询意向的结果。
file

语义排名既耗费资源又耗费时间。 为了在查询操作的预期延迟内完成处理,向语义排名程序提供的输入将被整合并减少,以便可以尽快完成重新排名步骤。

语义排名有两个步骤:总结和评分。 输出包括重新评分的结果、标题和答案。

如何收集和总结输入

在语义排名中,查询子系统将搜索结果作为摘要和排名模型的输入传递。 由于排名模型具有输入大小约束并且是处理密集型的,因此必须将搜索结果进行结构化(总结)并调整其大小以便高效处理。

  1. 语义排名从文本查询的 [BM25 排名结果]或混合查询的 [RRF 排名结果]开始。 重新排名练习中仅使用文本字段,并且只有前 50 个结果才会进入语义排名,即使结果包含 50 个以上的结果也是如此。 通常,语义排名中使用的字段是信息性和描述性的。

  2. 对于搜索结果中的每个文档,摘要模型最多接受 2000 个标记,其中一个标记大约为 10 个字符。 输入由[语义配置]中列出的“标题”、“关键字”和“内容”字段组合而成。

  3. 过长的字符串会被剪裁,以确保总长度满足摘要步骤的输入要求。 此剪裁练习演示了为什么必须按优先级顺序向语义配置添加字段。 如果你的文档非常大,其中的字段包含大量文本,则会忽略超过最大限制的任何内容。

    语义字段标记限制
    “title”128 个标记
    "关键字128 个标记
    “内容”剩余标记
  4. 摘要输出是每个文档的摘要字符串,由每个字段中最相关的信息组成。 摘要字符串将发送到排名程序进行评分,并发送到计算机阅读理解模型以获取标题和答案。

    传递给语义排名程序的每个生成的摘要字符串的最大长度为 256 个标记。

语义排名的输出

从每个摘要字符串中,计算机阅读理解模型查找最有代表性的段落。

输出为:

  • 文档的[语义标题]。 每个标题都有普通文本版本和突出显示版本,在每个文档中通常少于 200 字。

  • 一个可选的[语义答案],假设你指定了 answers 参数,查询以问题的形式提出,并且在长字符串中找到了一个段落,该段落提供了此问题的可能答案。

标题和答案始终是索引中的逐字文本。 此工作流中没有可创建或撰写新内容的生成式 AI 模型。

如何对摘要进行评分

评分是针对标题以及用于填充长度为 256 个标记的摘要字符串中的任何其他内容执行的。

  1. 根据所提供的查询,对标题的概念和语义相关性进行评估。

  2. @search.rerankerScore 根据给定查询的文档的语义相关性分配给每个文档。 分数范围从 4 到 0(从高到低),分数越高表示相关性越高。

  3. 匹配项按分数降序列出,并且包含在查询响应有效负载中。 有效负载包括答案、普通文本标题和突出显示的标题,以及标记为可检索的任何字段或在 select 子句中指定的任何字段。

语义功能和限制

语义排名是一项较新的技术,因此,对它能够做什么和不能做什么设定期望非常重要。 它能够做什么:

  • 提升在语义上更接近原始查询意向的匹配项。

  • 查找要用作标题和答案的字符串。 标题和答案在响应中返回,并且可以在搜索结果页上呈现。

语义排名不能做的是,在整个语料库上重新运行查询来查找语义上相关的结果。 语义排名会对现有结果集重新排名,该结果集由按默认排名算法评分的前 50 个结果组成。 另外,语义排名无法创建新的信息或字符串。 标题和答案是从内容逐字提取的,因此,如果结果不包含与答案类似的文本,则语言模型不会生成它。

虽然语义排名并非在每种情况下都有益处,但某些内容可以显著受益于其功能。 语义排名中的语言模型最适用于信息丰富并且为散文结构的可搜索内容。 知识库、联机文档或包含描述性内容的文档可从语义排名功能获得最大收益。

基础技术来自必应和 Microsoft Research,并已作为附加产品功能集成到 Azure AI 搜索基础结构中。 有关用于支持语义排名的研究和 AI 投入的详细信息,请参阅必应的 AI 功能如何为 Azure AI 搜索提供支持(Microsoft Research 博客)。

关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1237396.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

脱离form表单校验input(校验单个input输入框)提交时边框变红

把需要自定义校验的数据放在一个对象中&#xff0c;方便以后多个字段校验 customVerifyInps:{communityInp2:"",asPathInp:"",}, 在输入框中绑定id <el-inputid"communityInp2"placeholder""v-model"customVerifyInps.commu…

【数据结构-零基础学习】线索二叉树(代码+图示+解析)

【数据结构-零基础学习】线索二叉树(代码图示解析) 文章目录 【数据结构-零基础学习】线索二叉树(代码图示解析)[toc]定义产生背景种类示意图1)未加入线索的普通二叉树示意图1.12)线索添加的规则3)中序线索二叉树示意图1.24)中序线索二叉树分析示意图1.3 设计代码逻辑(重点)代码…

户外耳机推荐,这几款高性价比的户外耳机不容错过!

对于喜欢户外运动的人来说&#xff0c;在耳机的选择上至关重要&#xff0c;推荐使用骨传导运动耳机的&#xff0c;因为相较于普通的入耳式耳机&#xff0c;前者是通过振动来传输声音的&#xff0c;而后者则是通过空气传导到耳内的。如果是在户外跑步听不到周围环境声音和鸣笛声…

振南技术干货集:制冷设备大型IoT监测项目研发纪实(2)

注解目录 1.制冷设备的监测迫在眉睫 1.1 冷食的利润贡献 1.2 冷设监测系统的困难 &#xff08;制冷设备对于便利店为何如何重要&#xff1f;了解一下你所不知道的便利店和新零售行业。关于电力线载波通信的论战。&#xff09; 2、电路设计 2.1 防护电路 2.1.1 强电防护 …

vue超好用的自定义指令封装

一、指令封装 目录结构&#xff1a; index.ts 统一注册 import { App, Directive } from "vue"; import auth from "./modules/auth"; import copy from "./modules/copy"; import waterMarker from "./modules/waterMarker"; impor…

Python简直是万能的,这5大主要用途你一定要知道!

从2015开始国内就开始慢慢接触Python了&#xff0c;从16年开始Python就已经在国内的热度更高了&#xff0c;目前也可以算的上"全民Python"了。 众所周知小学生的教材里面已经有Python了&#xff0c;国家二级计算机证也需要学习Python了&#xff01; 因为Python简单…

基于springboot实现冬奥会科普平台系统【项目源码+论文说明】计算机毕业设计

基于SpringBoot实现冬奥会科普平台系统演示 摘要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理平台应运而生&…

CSS实现空心的“尖角”

大家好&#xff0c;我是南宫&#xff0c;来分享一个昨天解决的问题。 我记得之前刷面试题的时候&#xff0c;CSS面试题里面赫然有一题是“如何用CSS实现三角形”&#xff0c;我觉得这个问题确实很经典&#xff0c;我上的前端培训班当初就讲过。 大概思路如下&#xff1a; 先…

Redis -- 介绍

1、NoSQL: 指的是非关系型数据库&#xff0c;主要分成四大类&#xff1a;键值存储数据库、列存储数据库、文档型数据库、图形数据库。 2、什么是Redis&#xff1a; Redis是一种基于内存的数据库&#xff0c;一般用于做缓存的中间件。 3、Redis的主要的特点&#xff1a; 1、Rd…

埃尔米特插值(hermite 插值) C++

埃尔米特插值 原理 #pragma once #include <vector> #include <functional> /*埃尔米特插值*/ struct InterpolationPoint {double x; // 插值点的横坐标double y; // 插值点的纵坐标double derivative; // 插值点的导数值// 默认构造函数InterpolationPoint() : x…

一个测试驱动的Spring Boot应用程序开发

文章目录 系统任务用户故事搭建开发环境Web应用的框架Spring Boot 自动配置三层架构领域建模域定义与领域驱动设计领域类 业务逻辑功能随机的Challenge验证 表示层RESTSpring Boot和REST API设计API第一个控制器序列化的工作方式使用Spring Boot测试控制器 小结 这里采用面向需…

str转wstr的三种方法和从网站获取json数据到数据随机提取,返回拼接字符串和动态数组

库的设置 hv库 外部包含目录&#xff1a;…\include\libhv_new\hv; 库目录&#xff1a;…\include\libhv_new\lib\x86\Release; 附加依赖项&#xff1a;hv.lib; //Get请求 获取json数据&#xff0c;然后提取符合 条件的&#xff0c;time值大于自定义变量的值&#xff0c;然后取…

老知识复盘-SQL从提交到执行到底经历了什么 | 京东云技术团队

一、什么是SQL sql(Structured Query Language: 结构化查询语言)是高级的费过程化编程语言,允许用户在高层数据结构上工作, 是一种数据查询和程序设计语言, 也是(ANSI)的一项标准的计算机语言. but… 目前仍然存在着许多不同版本的sql语言,为了与ANSI标准相兼容, 它们必须以相…

webpack 创建typescript项目

【视频链接】尚硅谷TypeScript教程&#xff08;李立超老师TS新课&#xff09; 创建webpack 项目 IDE&#xff1a;webstorm 新建一个空的项目运行npm init初始化项目目录结构 1. 安装 webpack&#xff1a;构建工具webpack-cli&#xff1a; webpack的命令行工具typescript&am…

处理无线debug问题

无限debug的产生 条件说明 开发者工具是打开状态 js代码中有debugger js有定时处理 setInterval(() > {(function (a) {return (function (a) {return (Function(Function(arguments[0]" a ")()))})(a)})(bugger)(de, 0, 0, (0, 0)); }, 1000); ​ #这里就…

【论文阅读】An Experimental Survey of Missing Data Imputation Algorithms

论文地址&#xff1a;An Experimental Survey of Missing Data Imputation Algorithms | IEEE Journals & Magazine | IEEE Xplore 处理缺失数据最简单的方法就是是丢弃缺失值的样本&#xff0c;但这会使得数据更加不完整并且导致偏差或影响结果的代表性。因此&#xff0c;…

wpf使用CefSharp.OffScreen模拟网页登录,并获取身份cookie

目录 框架信息&#xff1a;MainWindow.xamlMainWindow.xaml.cs爬取逻辑模拟登录拦截请求Cookie获取 CookieVisitorHandle 框架信息&#xff1a; CefSharp.OffScreen.NETCore 119.1.20 MainWindow.xaml <Window x:Class"Wpf_CHZC_Img_Identy_ApiDataGet.MainWindow&qu…

虚函数可不可以重载为内联 —— 在开启最大优化时gcc、clang和msvc的表现

下面是对该问题的一种常见回答&#xff1a; 首先&#xff0c;内联是程序员对编译器的一种建议&#xff0c;因此可以在在重载虚函数时在声明处加上inline关键字来修饰&#xff0c; 但是因为虚函数在运行时通过虚函数表&#xff0c;而内联函数在编译时进行代码嵌入&#xff0c;因…

【Spring】之IoC与对象存取

未来的几周时间&#xff0c;大概率我会更新一下Spring家族的一些简单知识。而什么是Spring家族&#xff0c;好多同学还不是很清楚&#xff0c;我先来简单介绍一下吧&#xff1a; 所谓Spring家族&#xff0c;它其实就是一个框架&#xff0c;是基于Servlet再次进行封装的内容。为…

SpringBoot启动后自动打开浏览器访问项目

更简单的一个方法 Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " url); Springboot项目启动后自动打开浏览器访问(超实用)_浏览器访问springboot项目-CSDN博客 Springboot项目启动后自动打开浏览器访问 1、在Springboot项目中每次启动完项…