OpenSearch最新功能介绍
摘要:阿里云开放搜索(OpenSearch)是一款结构化数据搜索托管服务,其能够提供简单、高效、稳定、低成本和可扩展的搜索解决方案。OpenSearch以平台服务化的形式,将专业搜索技术简单化、低门槛化和低成本化,让搜索引擎技术不再成为客户的业务瓶颈,以低成本实现产品搜索功能并快速迭代。本文将为大家介绍OpenSearch的最新推出的电商查询语义理解和搜索算法平台两个新功能。
本文整理自直播分享以及PPT。
本次分享将主要围绕以下三个方面:
- OpenSearch产品简介
- 新功能介绍-电商查询语义理解
- 新功能介绍-搜索算法平台和人气模型
一、OpenSearch产品简介
OpenSearch产品上云之前在阿里巴巴集团内部一直都扮演着搜索中台的角色。除了淘宝、天猫之外,阿里巴巴集团的其他核心业务产品比如飞猪、菜鸟等也都是通过OpenSearch接入的。其实OpenSearch和淘宝、天猫所使用的搜索引擎原理基本相同,只不过OpenSearch在其基础之上实现了多租户逻辑。
OpenSearch上云之后的主打方向就是为外部的企业客户提供具有高搜索质量的一站式内容智能搜索服务。OpenSearch的主要优势可以大致总结为以下四个方面:
- 淘宝主要算法功能原生集成:OpenSearch不仅基于了阿里巴巴自主研发的大规模分布式搜索引擎,其在搜索引擎之上还集成了业界领先的淘系算法功能,包括了电商领域的语义查询与理解、排序等,借助这些算法能力就能够助力GMV转化率、CTR等业务指标的快速提升。
- 无需开发就能实现索引秒级更新:OpenSearch支持与云上的RDS和PolarDB两个数据库无缝对接。在OpenSearch的控制台只需要配置几个关键参数,比如数据库名、用户名以及密码就可以直接对接数据库和OpenSearch,实现数据实时更新,整个过程非常简单,无需任何开发。
- 0运维,免部署:OpenSearch是云端全托管服务,因此无需运维和部署,非常方便。
- 服务搭建更简单:开发者无需了解OpenSearch复杂的原理,就能够快速上手使用,并将关键路径流程化、可视化出来,仅需要几步就能够完成基础服务的搭建。如果业务经常会出现波峰波谷情况,比如618或者双11大促,都可以在OpenSearch上随时扩缩容,并且能够及时生效,无需提前申请配额,因此也非常方便。
二、新功能介绍-电商查询语义理解
首先为大家介绍OpenSearch的电商查询语义理解这个新功能。之所以要实现电商查询语义理解这个功能,是因为在电商场景里面,搜索引导的成交往往占比达到60%以上,因此电商对于搜索的精准度要求非常严格。但是在实际的搜索场景中,用户输入的关键词往往非常口语化,而站内商品的标题、详情描述、类目以及标签等都属于比较书面化和规范化的文本,因此就导致查询词和商品信息无法匹配。如果站点没有实现语义的Mapping,用户往往搜不到其想要的商品,对于平台而言,这就使得无结果率或者少结果率都会非常高。基于上述的背景,OpenSearch就把淘宝搜索内部的智能语义Mapping功能集成到了OpenSearch内部,称之为查询语义理解,该功能专门为电商领域提供服务,因此垂直性也非常强。
淘宝搜索和OpenSearch的解决方案
这里为大家介绍一个实际案例,来帮助大家理解电商场景的语义查询Mapping功能对于实际业务的具体作用。下图中,用户在搜索框输入了“NKIE新款运动鞋”,这里的“NKIE”其实是输入错误的“NIKE”,而搜索返回的结果其实都是符合用户实际需求的NIKE的新款运动鞋。那么,在这个过程中系统做了哪些工作呢?首先,系统会对于用户输入的关键词进行拼写纠错,将其修改为正确的关键词,并做一个大小写的归一化处理。之后使用分词器对其进行处理,对于分词的语义单元实现实体的标签识别,这里的作用就是抓住核心的东西来进行搜索,保证搜索结果既丰富又不会跑题。系统在最后还会进行同义词的拓展来扩大搜索结果的召回量。因此,系统在最后实际进行查询的词并不是用户所输入的“NKIE新款运动鞋”,而是如图中所示的实际执行的查询词。这就是电商查询语义理解在实际业务中的作用。
核心功能亮点
本次OpenSearch所集成的电商查询语义理解功能具有以下的三个核心亮点。这里之所以强调电商领域,是因为OpenSearch在原本通用的查询语义理解基础之上提供了针对于电商场景的纵深优化。
- 电商拼写纠错:OpenSearch系统会对于用户输入的查询串进行拼写错误检查,计算查询词是否需要进行纠错,并给出纠错建议。对于明确的拼写错误会直接改写原始查询串,然后进行检索;对于可能的拼写错误将仍然使用原始查询串进行检索。
- 电商命名实体识别(NER):OpenSearch系统将查询词分词后对每个语义单元进行需求识别,每个实体会被打上一个类型标签(共36种标签),比如品牌、品类、新品等。在系统中,标签重要性大致分为三档:高、中、低。标签重要性低的实体在查询中会被忽略,以扩大召回率;标签重要性高的实体会直接影响文本相关性的计算和类目预测训练。比如“耐克修身连衣裙”,实体识别的结果为“耐克/品牌/中”、“修身/款式元素/低”、“连衣裙/品类/高”。并且如果系统中默认的标签重要性不符合用户预期,用户也可以直接进行调配。
- 灵活干预:电商场景中查询语义理解功能是基于淘宝搜索多年沉淀的大数据训练,绝大多数情况下会为电商场景提供良好的查询分析效果,但是不同的业务场景都会有自身垂直的查询词可能未覆盖或者分析错误,所以开放搜索也支持可视化上传、管理干预词条,支持自定义词库的上传,支持灵活配置,即干预即生效,简单快捷,方便用户在业务中更加灵活地使用这一功能。
电商查询语义理解客户案例
这里为大家分享一个使用OpenSearch电商查询语义理解的实际客户案例,该客户的业务属于垂直领域的电商行业,搜索引导的成交占比全部成交的60%以上,因此搜索是站内最重要的功能。而用户在站内搜索的无结果率却接近60%,也就是说每天海量搜索PV都是0转化,这是非常巨大的浪费。基于上述背景,该客户内部明确立项对于在两个月的时间内对于搜索效果进行优化,而其面对的最大挑战就是业务非常垂直并且圈子内用户输入的查询词和商品的官方名称往往千差万别。此外,该客户所售卖的商品很多来自海外,最开始名字为英文,而当引入国内之后,客户的用户有时会直接音译成为中文来称呼商品名称,所以站内的热搜词往往会是商品的别名、缩写、音译词等。而且客户原本自建的开源服务没有对搜索关键词做智能的语义理解,甚至有些实体名词分词还是错误的,因此造成了搜索无结果率居高不下。
基于上述问题,客户方的技术人员开始调研解决方案。客户内部明确要求对于搜索效果的优化周期要在两个月之内完成,而技术人力却只有一个。解决搜索结果召回问题的主要路径就是建立起搜索关键词的智能语义理解服务,而从0到1的实现该能力不仅需要多个精通NLP的算法专家,还需要至少几十万量级有人工标注的数据物料做训练,而现阶段,客户方面既没人也没数据,市面上也没有现成的开源插件。基于这样的效率和投入成本的考虑,客户就选择使用OpenSearch对于之前的搜索功能进行改造和升级。该客户使用了OpenSearch的电商分词、电商查询语义理解之外,还将一些自定义的补丁词库放到了OpenSearch上,而词库可以由运营同学直接上传,而不需要为技术人员增加额外的开发工作量。经过不到2个月的时间,全流程实现完成之后,使用OpenSearch的部分服务的结果召回率基本达到了90%左右,而自建服务的结果召回率只有31%左右,两者进行对比就能够发现使用OpenSearch在结果召回率方面具有较大的优势。除此之外,使用OpenSearch使得搜索引导成交转化率相比于原本的开源自建服务提升了9%。
三、新功能介绍-搜索算法平台和人气模型
搜索算法平台
之所以要实现搜索算法平台功能,是因为当搜索业务发展到一定阶段,用户行为数据对于搜索排序效果的提升将会承担重要的角色。受限于行为日志数据的庞大和繁杂,这个时候往往需要机器通过统计学习算法,对大量的历史数据进行学习从而生成经验模型。利用经验模型将行为数据量化为合理的分数,最终在排序中使用。想要在业务中高效实现这一整套机器学习流程,往往会面临以下两个问题:
- 繁杂的数据采集和预处理工作:每天亿级的数据都需要通过自动化的方式进行采集、存储和处理,对于这些原始数据还需要进行统计、分析和处理来发现用户行为的基本规律,这就要求开发者具备长分析能力和长期经验积累,比如发现原始数据正负不均衡时,如何构建出正负样本数均衡的样本数据,这些还需要一定的算法工作经验。
- 大海捞针般的算法调参:面对错综复杂的算法参数,开发者们往往需要花费非常多的时间进行调试,而这就如同大海捞针一般。当找到一个看似靠谱的参数组合之后,这个参数组合是否最优还会存在一定不确定性。
基于以上两个令人极为头疼的问题,OpenSearch通过一个高可视化的方式来支持用户直接完成数据预处理、特征工程、算法调参、模型评估、模型管理模型上线等一系列繁杂的算法日常工作,并且还集成了阿里巴巴集团内部比较成熟的排序算法模型。用户可以通过整个算法平台自行训练高质量的算法排序模型并且应用到OpenSearch的算法排序中,之后将模型上线到实际业务并进行AB Test对比,得到整体实验效果并且回收,实现全链路OpenSearch的完全打通,并且以可视化、流程式地进行呈现。对于没有接触过这些算法的开发者而言,也可以直接上手这个OpenSearch平台。并且该平台专注于搜索算法模型训练,因此会内置一些阿里巴巴集团已经经过多年实战经验沉淀下来的模型,比如比较成熟的人气模型。并且在未来,类目预测等模型也会陆续上线到OpenSearch平台上。总之,用户可以在平台上完成整个算法模型训练以及上下游的流程。
此外,对于上线的模型是否优秀而言,平台还会产出一个较为专业的评估报告,通过这些评估报告和指标使得模型的效果可以一目了然。对于模型上线之后用户是否买单而言,OpenSearch还支持一键生成对比AB Test实验,能够支持用户快速迭代模型和改善效果。对于模型上线效果的回归而言,平台还能提供业务指标分析的报表。
人气模型
人气模型简单而言就是衡量用户对于站内每个商品或者每个文件的受欢迎程度,也就是静态质量分数。可以将其加入排序,使其成为排序的一个因子,通过这个因子来直接影响排序效果。OpenSearch会将四个维度的特征加入训练,包括了实体维度、时间维度、行为维度以及统计维度。
模型评估报告
OpenSearch会针在每个模型在训练完成后自动产出一个模型评估报告,通过这个质量来评估模型的效果,比如分类算法模型的评估报告中就会包括以下指标,比如整个模型是否适合在业务中使用,此外还有一些细化的指标如AUC值、ROC曲线、混淆矩阵、特征权重等。对于一些有算法经验的同学也可以直接通过这些指标值来发现问题,并进行模型的下一轮调优。
如何使用
如果想要使用搜索算法平台,首先需要通过OpenSearch的SDK上传行为数据,之后就可以直接在算法平台上创建和训练模型,模型训练完成之后就可以查看模型评估报告。如果模型评估报告建议使用该模型,就可以直接将模型部署到OpenSearch的应用中,进而将其应用到排序表达式中。
搜索业务效果评估
将模型应用到排序表达式中之后就需要对于搜索业务效果进行评估了,传统方式往往是结合线下人工评估和线上流量测试。线下人工评估往往会抽取一些具有代表性的查询关键词,组成一个规模适当的关键词集合。针对这个关键词集合,从排序模型的产出结果中查询对应的结果,进行人工标注相关性。对人工评测的结果数据,使用预定义好的评价计算公式比如DCG等,用数值化的方法来评价模型的结果和标注的理想结果的接近程度。如果人工评估认为搜索业务的效果是变好的,此时就可以进行线上流量测试。为了真实验证一个排序模型的好坏,就需要使用刚才提到的AB Test机制来检验和对比。在用户搜索时,由测试机制根据一定的策略来自动决定用户的分组号,保证自动抽取导入不同分组的流量具有可对比性,然后让不同分组的用户看到的不同排序模型所提供的结果,用户在不同模型下的行为将被记录下来,这些行为数据通过数据分析形成一系列指标,通过比较,最后就形成了不同模型之间孰优孰劣的结论。
对于OpenSearch而言,其无法支持第一种线下人工评估,因此用户只能自己抽取Query来进行人工评估。当人工评估完成之后,OpenSearch可以支持线上的AB Test端到端一键配置,可以支持多场景多分组下流量划分进行试验,充分满足了单一应用但覆盖多样业务场景的实验需求。并且使得实验配置和上下线状态可以灵活调整,即操作即生效。并且可以实现报表的天级产出,帮助客户进行决策。并且能够实现全流程可视化界面操作,能够使得用户实现快速接入,简单无门槛,并且产品和运营人员也可以直接使用。
当整个优化完成之后,OpenSearch还提供了一套专业搜索业务质量报表指标体系,该体系针对于电商场景划分了5个体系,即流量指标、点击指标、用户分析指标、Query分析指标以及成交指标。
借助于这些效果评估指标,客户可以非常专业并且直接地看到经过自己的一轮又一轮的优化,搜索效果的提升能够体现在哪里以及存在的问题在哪里。
阿里云双11亿元补贴提前领,进入抽取iPhone 11 Pro:https://www.aliyun.com/1111/2019/home?utm_content=g_1000083110
本文作者:opensearch
本文为云栖社区原创内容,未经允许不得转载。
OpenSearch最新功能介绍的更多相关文章
- Autodesk Maya 2019 for Mac(三维动画软件)最新功能介绍
Autodesk Maya是美国Autodesk公司出品的世界顶级的三维动画软件,应用对象是专业的影视广告,角色动画,电影特技等.Maya功能完善,工作灵活,易学易用,制作效率极高,渲染真实感极强,是 ...
- Joomla软件功能介绍与开源程序大比拼Joomla,wordpress,Drupal哪个好?
Joomla 软件功能介绍: Joomla!是一套在国外相当知名的内容管理系统 (Content Management System, CMS),它属于Portal(企业入口网站)类型,顾名思义 ...
- CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系
CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...
- fedora21发布与新功能介绍(附fedora21安装教程与fedora21下载地址)
fedora21发布与新功能介绍(附fedora21安装教程与fedora21下载地址) 最新的Fedora 21终于正式发布了,Fedora Server 是一款强大可定制化的操作系统,包括了最好最 ...
- 基于Metronic的Bootstrap开发框架--工作流模块功能介绍(2)
本篇继续<基于Metronic的Bootstrap开发框架--工作流模块功能介绍>,继续介绍基于Metronic的Bootstrap开发框架的工作模块功能,介绍工作流模块中相关业务表单的界 ...
- Liferay-Activiti 功能介绍 (新版Liferay7基本特性)
一句话简介 Liferay是世界领先的开源企业门户(也可作为综合门户),是最强大(没有之一)的JAVA开源门户,在Gartner和Forrester和评价非常高,近几年已经超越了微软门户Sharepo ...
- 【Linux】Ubuntu18.04镜像下载,新功能介绍
一.Ubuntu18.04镜像下载 官方下载地址:http://releases.ubuntu.com/18.04/ 官方64位iso下载地址:http://releases.ubuntu.com/1 ...
- C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法
C#构造方法(函数) 一.概括 1.通常创建一个对象的方法如图: 通过 Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...
- 短视频处理LanSoEditor-SDK之功能介绍
短视频处理LanSoEditor-SDK之功能介绍 (注释: 我们的SDK每3周更新一次, 一下功能是在2.8.2版本上列出的,可能不是最新的功能, 请知悉) 和别家最大的不同在于: 别人提供功能, ...
随机推荐
- CH340电路设计
版权声明:技术需要共享,但同时需要尊重原创者的辛劳,转载引用请注明出处. https://blog.csdn.net/JAZZSOLDIER/article/details/66967735 最近选用 ...
- shell中的空格【转载】
1.定义变量时, =号的两边不可以留空格. eg: gender=femal————right gender =femal———–wrong gender= femal———–wrong gender ...
- vue实现前后台交互
首先需要前台先安装一个包 cnpm install axios --save 第二还需要解决跨域问题 在settings中添加一条中间件 MIDDLEWARE = [“corsheders.middl ...
- 阿里HBase高可用8年“抗战”回忆录
2017年开始阿里HBase走向公有云,我们有计划的在逐步将阿里内部的高可用技术提供给外部客户,目前已经上线了同城主备,将作为我们后续高可用能力发展的一个基础平台.本文分四个部分回顾阿里HBase在高 ...
- Kattis - boxes (LCA)
Boxes There are NN boxes, indexed by a number from 11 to NN. Each box may (or not may not) be put in ...
- Service系统服务(四):搭建单区域DNS服务器、特殊DNS解析、配置DNS子域授权、搭建并测试缓存DNS
一.搭建单区域DNS服务器 目标: 本例要求要求为DNS区域tedu.cn搭建一台DNS服务器,以便用户能通过域名的方式访问网站.测试阶段主要提供以下正向记录: svr7.tedu.cn ---> ...
- 一次且仅一次(once and only once,简称OAOO)
一次且仅一次(once and only once,简称OAOO)又称为 Don't repeat yourself(不要重复你自己,简称DRY)或一个规则,实现一次(one rule, one pl ...
- Sublime 代码段设置
# Sublime 代码段 > 依次找到:Tools -> Developer -> New Snippet,默认代码段配置文件如下: <snippet><cont ...
- Win10 打开MSDTC
标签:log com http it sp src c bs io 1,Win+R 打开运行窗口,输入 dcomcnfg,打开组件服务窗口 2,在组件服务 catalo ...
- OO七大设计原则
一.单一职责原则(Single Responsibility Principle,SRP) 含义: 1.避免相同的职责分散到不同的类中 2.避免一个类承担太多职责 作用: 1.可以减少类之间的耦合 2 ...