**摘要:**阿里云开放搜索(OpenSearch)是一款结构化数据搜索托管服务,其能够提供简单、高效、稳定、低成本和可扩展的搜索解决方案。OpenSearch以平台服务化的形式,将专业搜索技术简单化、低门槛化和低成本化,让搜索引擎技术不再成为客户的业务瓶颈,以低成本实现产品搜索功能并快速迭代。本文将为大家介绍OpenSearch的最新推出的电商查询语义理解和搜索算法平台两个新功能。
**本文整理自直播分享以及PPT。**
本次分享将主要围绕以下三个方面:
1. OpenSearch产品简介
2. 新功能介绍-电商查询语义理解
3. 新功能介绍-搜索算法平台和人气模型
**一、OpenSearch产品简介**
OpenSearch产品上云之前在阿里巴巴集团内部一直都扮演着搜索中台的角色。除了淘宝、天猫之外,阿里巴巴集团的其他核心业务产品比如飞猪、菜鸟等也都是通过OpenSearch接入的。其实OpenSearch和淘宝、天猫所使用的搜索引擎原理基本相同,只不过OpenSearch在其基础之上实现了多租户逻辑。
![1](https://yqfile.alicdn.com/d08bc1e5c6cb62fd2e62a0d590d77b4fe49d0f77.jpeg)
OpenSearch上云之后的主打方向就是为外部的企业客户提供具有高搜索质量的一站式内容智能搜索服务。OpenSearch的主要优势可以大致总结为以下四个方面:
1. 淘宝主要算法功能原生集成:OpenSearch不仅基于了阿里巴巴自主研发的大规模分布式搜索引擎,其在搜索引擎之上还集成了业界领先的淘系算法功能,包括了电商领域的语义查询与理解、排序等,借助这些算法能力就能够助力GMV转化率、CTR等业务指标的快速提升。
2. 无需开发就能实现索引秒级更新:OpenSearch支持与云上的RDS和PolarDB两个数据库无缝对接。在OpenSearch的控制台只需要配置几个关键参数,比如数据库名、用户名以及密码就可以直接对接数据库和OpenSearch,实现数据实时更新,整个过程非常简单,无需任何开发。
3. 0运维,免部署:OpenSearch是云端全托管服务,因此无需运维和部署,非常方便。
4. 服务搭建更简单:开发者无需了解OpenSearch复杂的原理,就能够快速上手使用,并将关键路径流程化、可视化出来,仅需要几步就能够完成基础服务的搭建。如果业务经常会出现波峰波谷情况,比如618或者双11大促,都可以在OpenSearch上随时扩缩容,并且能够及时生效,无需提前申请配额,因此也非常方便。
**二、新功能介绍-电商查询语义理解**
首先为大家介绍OpenSearch的电商查询语义理解这个新功能。之所以要实现电商查询语义理解这个功能,是因为在电商场景里面,搜索引导的成交往往占比达到60%以上,因此电商对于搜索的精准度要求非常严格。但是在实际的搜索场景中,用户输入的关键词往往非常口语化,而站内商品的标题、详情描述、类目以及标签等都属于比较书面化和规范化的文本,因此就导致查询词和商品信息无法匹配。如果站点没有实现语义的Mapping,用户往往搜不到其想要的商品,对于平台而言,这就使得无结果率或者少结果率都会非常高。基于上述的背景,OpenSearch就把淘宝搜索内部的智能语义Mapping功能集成到了OpenSearch内部,称之为查询语义理解,该功能专门为电商领域提供服务,因此垂直性也非常强。
![2](https://yqfile.alicdn.com/a55e6bd08de87d922f32698a93ef43bcd9d973ad.jpeg)
**淘宝搜索和OpenSearch的解决方案**
这里为大家介绍一个实际案例,来帮助大家理解电商场景的语义查询Mapping功能对于实际业务的具体作用。下图中,用户在搜索框输入了“NKIE新款运动鞋”,这里的“NKIE”其实是输入错误的“NIKE”,而搜索返回的结果其实都是符合用户实际需求的NIKE的新款运动鞋。那么,在这个过程中系统做了哪些工作呢?首先,系统会对于用户输入的关键词进行拼写纠错,将其修改为正确的关键词,并做一个大小写的归一化处理。之后使用分词器对其进行处理,对于分词的语义单元实现实体的标签识别,这里的作用就是抓住核心的东西来进行搜索,保证搜索结果既丰富又不会跑题。系统在最后还会进行同义词的拓展来扩大搜索结果的召回量。因此,系统在最后实际进行查询的词并不是用户所输入的“NKIE新款运动鞋”,而是如图中所示的实际执行的查询词。这就是电商查询语义理解在实际业务中的作用。
![3](https://yqfile.alicdn.com/582568087b656acb8fe2316d7c6eee4166a343b2.jpeg)
**核心功能亮点**
本次OpenSearch所集成的电商查询语义理解功能具有以下的三个核心亮点。这里之所以强调电商领域,是因为OpenSearch在原本通用的查询语义理解基础之上提供了针对于电商场景的纵深优化。
* 电商拼写纠错:OpenSearch系统会对于用户输入的查询串进行拼写错误检查,计算查询词是否需要进行纠错,并给出纠错建议。对于明确的拼写错误会直接改写原始查询串,然后进行检索;对于可能的拼写错误将仍然使用原始查询串进行检索。
* 电商命名实体识别(NER):OpenSearch系统将查询词分词后对每个语义单元进行需求识别,每个实体会被打上一个类型标签(共36种标签),比如品牌、品类、新品等。在系统中,标签重要性大致分为三档:高、中、低。标签重要性低的实体在查询中会被忽略,以扩大召回率;标签重要性高的实体会直接影响文本相关性的计算和类目预测训练。比如“耐克修身连衣裙”,实体识别的结果为“耐克/品牌/中”、“修身/款式元素/低”、“连衣裙/品类/高”。并且如果系统中默认的标签重要性不符合用户预期,用户也可以直接进行调配。
* 灵活干预:电商场景中查询语义理解功能是基于淘宝搜索多年沉淀的大数据训练,绝大多数情况下会为电商场景提供良好的查询分析效果,但是不同的业务场景都会有自身垂直的查询词可能未覆盖或者分析错误,所以开放搜索也支持可视化上传、管理干预词条,支持自定义词库的上传,支持灵活配置,即干预即生效,简单快捷,方便用户在业务中更加灵活地使用这一功能。
![3](https://yqfile.alicdn.com/5ec60ae76da5352b28479275de6e184408cf6eea.jpeg)
**电商查询语义理解客户案例**
这里为大家分享一个使用OpenSearch电商查询语义理解的实际客户案例,该客户的业务属于垂直领域的电商行业,搜索引导的成交占比全部成交的60%以上,因此搜索是站内最重要的功能。而用户在站内搜索的无结果率却接近60%,也就是说每天海量搜索PV都是0转化,这是非常巨大的浪费。基于上述背景,该客户内部明确立项对于在两个月的时间内对于搜索效果进行优化,而其面对的最大挑战就是业务非常垂直并且圈子内用户输入的查询词和商品的官方名称往往千差万别。此外,该客户所售卖的商品很多来自海外,最开始名字为英文,而当引入国内之后,客户的用户有时会直接音译成为中文来称呼商品名称,所以站内的热搜词往往会是商品的别名、缩写、音译词等。而且客户原本自建的开源服务没有对搜索关键词做智能的语义理解,甚至有些实体名词分词还是错误的,因此造成了搜索无结果率居高不下。
![4](https://yqfile.alicdn.com/c3d4aa75fbafb97a7dacaa809c35fea3b87a88bd.jpeg)
基于上述问题,客户方的技术人员开始调研解决方案。客户内部明确要求对于搜索效果的优化周期要在两个月之内完成,而技术人力却只有一个。解决搜索结果召回问题的主要路径就是建立起搜索关键词的智能语义理解服务,而从0到1的实现该能力不仅需要多个精通NLP的算法专家,还需要至少几十万量级有人工标注的数据物料做训练,而现阶段,客户方面既没人也没数据,市面上也没有现成的开源插件。基于这样的效率和投入成本的考虑,客户就选择使用OpenSearch对于之前的搜索功能进行改造和升级。该客户使用了OpenSearch的电商分词、电商查询语义理解之外,还将一些自定义的补丁词库放到了OpenSearch上,而词库可以由运营同学直接上传,而不需要为技术人员增加额外的开发工作量。经过不到2个月的时间,全流程实现完成之后,使用OpenSearch的部分服务的结果召回率基本达到了90%左右,而自建服务的结果召回率只有31%左右,两者进行对比就能够发现使用OpenSearch在结果召回率方面具有较大的优势。除此之外,使用OpenSearch使得搜索引导成交转化率相比于原本的开源自建服务提升了9%。
**三、新功能介绍-搜索算法平台和人气模型**
**搜索算法平台**
之所以要实现搜索算法平台功能,是因为当搜索业务发展到一定阶段,用户行为数据对于搜索排序效果的提升将会承担重要的角色。受限于行为日志数据的庞大和繁杂,这个时候往往需要机器通过统计学习算法,对大量的历史数据进行学习从而生成经验模型。利用经验模型将行为数据量化为合理的分数,最终在排序中使用。想要在业务中高效实现这一整套机器学习流程,往往会面临以下两个问题:
* 繁杂的数据采集和预处理工作:每天亿级的数据都需要通过自动化的方式进行采集、存储和处理,对于这些原始数据还需要进行统计、分析和处理来发现用户行为的基本规律,这就要求开发者具备长分析能力和长期经验积累,比如发现原始数据正负不均衡时,如何构建出正负样本数均衡的样本数据,这些还需要一定的算法工作经验。
* 大海捞针般的算法调参:面对错综复杂的算法参数,开发者们往往需要花费非常多的时间进行调试,而这就如同大海捞针一般。当找到一个看似靠谱的参数组合之后,这个参数组合是否最优还会存在一定不确定性。
![5](https://yqfile.alicdn.com/f07a8fc8dfbd641111c6c147a14da2238deb1f37.jpeg)
基于以上两个令人极为头疼的问题,OpenSearch通过一个高可视化的方式来支持用户直接完成数据预处理、特征工程、算法调参、模型评估、模型管理模型上线等一系列繁杂的算法日常工作,并且还集成了阿里巴巴集团内部比较成熟的排序算法模型。用户可以通过整个算法平台自行训练高质量的算法排序模型并且应用到OpenSearch的算法排序中,之后将模型上线到实际业务并进行AB Test对比,得到整体实验效果并且回收,实现全链路OpenSearch的完全打通,并且以可视化、流程式地进行呈现。对于没有接触过这些算法的开发者而言,也可以直接上手这个OpenSearch平台。并且该平台专注于搜索算法模型训练,因此会内置一些阿里巴巴集团已经经过多年实战经验沉淀下来的模型,比如比较成熟的人气模型。并且在未来,类目预测等模型也会陆续上线到OpenSearch平台上。总之,用户可以在平台上完成整个算法模型训练以及上下游的流程。
![6](https://yqfile.alicdn.com/d8c4c55591e5c433f174dbd4491795c2f7634c90.jpeg)
此外,对于上线的模型是否优秀而言,平台还会产出一个较为专业的评估报告,通过这些评估报告和指标使得模型的效果可以一目了然。对于模型上线之后用户是否买单而言,OpenSearch还支持一键生成对比AB Test实验,能够支持用户快速迭代模型和改善效果。对于模型上线效果的回归而言,平台还能提供业务指标分析的报表。
**人气模型**
人气模型简单而言就是衡量用户对于站内每个商品或者每个文件的受欢迎程度,也就是静态质量分数。可以将其加入排序,使其成为排序的一个因子,通过这个因子来直接影响排序效果。OpenSearch会将四个维度的特征加入训练,包括了实体维度、时间维度、行为维度以及统计维度。
![7](https://yqfile.alicdn.com/4f2d5e133a2b7bec14a8047e304a47502dbd1093.jpeg)
**模型评估报告**
OpenSearch会针在每个模型在训练完成后自动产出一个模型评估报告,通过这个质量来评估模型的效果,比如分类算法模型的评估报告中就会包括以下指标,比如整个模型是否适合在业务中使用,此外还有一些细化的指标如AUC值、ROC曲线、混淆矩阵、特征权重等。对于一些有算法经验的同学也可以直接通过这些指标值来发现问题,并进行模型的下一轮调优。
![8](https://yqfile.alicdn.com/f45efe279d4f610b1518e12f5f2532bd934f5568.jpeg)
**如何使用**
如果想要使用搜索算法平台,首先需要通过OpenSearch的SDK上传行为数据,之后就可以直接在算法平台上创建和训练模型,模型训练完成之后就可以查看模型评估报告。如果模型评估报告建议使用该模型,就可以直接将模型部署到OpenSearch的应用中,进而将其应用到排序表达式中。
![9](https://yqfile.alicdn.com/e051248a5ed65c238aeaed8e13444eb8a855ee9d.jpeg)
**搜索业务效果评估**
将模型应用到排序表达式中之后就需要对于搜索业务效果进行评估了,传统方式往往是结合线下人工评估和线上流量测试。线下人工评估往往会抽取一些具有代表性的查询关键词,组成一个规模适当的关键词集合。针对这个关键词集合,从排序模型的产出结果中查询对应的结果,进行人工标注相关性。对人工评测的结果数据,使用预定义好的评价计算公式比如DCG等,用数值化的方法来评价模型的结果和标注的理想结果的接近程度。如果人工评估认为搜索业务的效果是变好的,此时就可以进行线上流量测试。为了真实验证一个排序模型的好坏,就需要使用刚才提到的AB Test机制来检验和对比。在用户搜索时,由测试机制根据一定的策略来自动决定用户的分组号,保证自动抽取导入不同分组的流量具有可对比性,然后让不同分组的用户看到的不同排序模型所提供的结果,用户在不同模型下的行为将被记录下来,这些行为数据通过数据分析形成一系列指标,通过比较,最后就形成了不同模型之间孰优孰劣的结论。
![10](https://yqfile.alicdn.com/e6c9b1519752f417b78490c02f5e7fa153fd60a2.jpeg)
对于OpenSearch而言,其无法支持第一种线下人工评估,因此用户只能自己抽取Query来进行人工评估。当人工评估完成之后,OpenSearch可以支持线上的AB Test端到端一键配置,可以支持多场景多分组下流量划分进行试验,充分满足了单一应用但覆盖多样业务场景的实验需求。并且使得实验配置和上下线状态可以灵活调整,即操作即生效。并且可以实现报表的天级产出,帮助客户进行决策。并且能够实现全流程可视化界面操作,能够使得用户实现快速接入,简单无门槛,并且产品和运营人员也可以直接使用。
![11](https://yqfile.alicdn.com/292e866b6cd1459c750240666a1b1d96c6839d73.jpeg)
当整个优化完成之后,OpenSearch还提供了一套专业搜索业务质量报表指标体系,该体系针对于电商场景划分了5个体系,即流量指标、点击指标、用户分析指标、Query分析指标以及成交指标。
![12](https://yqfile.alicdn.com/c9f3c2207768ae0ad6ce473452836ea28b86ef22.jpeg)
借助于这些效果评估指标,客户可以非常专业并且直接地看到经过自己的一轮又一轮的优化,搜索效果的提升能够体现在哪里以及存在的问题在哪里。
阿里云双11亿元补贴提前领,进入抽取iPhone 11 Pro:[https://www.aliyun.com/1111/2019/home?utm\_content=g\_1000083110](https://www.aliyun.com/1111/2019/home?utm_content=g_1000083110)
[原文链接](https://yq.aliyun.com/articles/720873?utm_content=g_1000083836)
本文为云栖社区原创内容,未经允许不得转载。
分享到:
相关推荐
通过整合HanLP到OpenSearch,用户可以在索引和搜索过程中享受到更准确的分词、词性标注、命名实体识别等NLP功能。 **依赖库解析** 1. **hanlp-portable-1.7.8.jar**:这是HanLP的核心库,包含了丰富的中文分词算法...
### OpenSearch API参考...综上所述,OpenSearch API参考手册为开发者提供了详尽的指南,不仅涵盖了如何使用API进行搜索服务的开发,还提供了详细的参数设定和授权机制介绍,帮助开发者快速上手并高效地完成开发任务。
GSD-open 项目是一个开源的数据检索系统,它专注于提供高效且灵活的数据搜索功能。该项目采用前后端分离的设计模式,确保了前端与后端的独立性和可扩展性。后端是整个系统的核心,由两个主要部分构成。 首先,GSD-...
Elasticsearch AI 大模型搜索引擎介绍与演示 Elasticsearch AI 大模型搜索引擎是基于人工智能技术的搜索引擎,旨在提供高效、准确的搜索结果。该引擎结合了自然语言处理(NLP)和机器学习(ML)技术,能够处理大量...
功能介绍 #### 2.1 集群概览 在 Head 插件的主界面,你可以看到集群的基本信息,包括节点数量、健康状态(绿、黄、红)、索引数量等。这些信息有助于快速评估集群的整体健康状况。 #### 2.2 节点管理 Head 插件...
本文将对 JMeter 的菜单功能进行详细介绍,包括 File 菜单、Edit 菜单、Search 菜单、Run 菜单、Options 菜单和 Help 菜单等。 File 菜单 File 菜单是 JMeter 的主要菜单之一,它提供了多种文件操作功能。该菜单下...
本文将详细介绍OrChem项目的背景、工作原理和功能,以及它在化学信息学领域中的应用和重要性。 首先,化学信息学是研究如何将化学结构和相关数据在关系数据库中进行注册、索引和搜索的核心领域之一。自20世纪60年代...
**一、Open3D 安装与介绍** 安装 Open3D 非常简单,通过 Python 的包管理器 pip 即可完成: ``` pip install open3d ``` 或者 ``` pip3 install open3D ``` 在安装完成后,可以使用 `pip list` 命令检查是否成功安装...
书中会介绍Elasticsearch的安全组件,如X-Pack(现已被Open Distro for Elasticsearch取代),讲解如何设置用户权限、实现SSL加密以及保护敏感数据。 最后,书中可能还会涉及Elasticsearch与其他系统的集成,如...
使用Vespa和Elasticsearch进行最近邻搜索的性能评估在此存储库中,我们对Elastic中密集矢量类型的性能进行基准测试,并将其与的。 Elastic最近发布了对高达1024维的密集和稀疏向量的支持,请参阅。 稀疏张量类型后来...
5. **安全设置**:Elasticsearch 6.4.3版本虽然没有内置的安全功能,但强烈建议使用插件如X-Pack或Open Distro for Elasticsearch增强安全性,包括认证、授权和加密通信。 6. **插件安装**:Elasticsearch可以通过`...
Elasticsearch是一种基于Lucene的分布式、开源的全文搜索引擎,以其强大的搜索功能、实时分析性能以及高度可扩展性而广受赞誉。 在本书中,读者将学习到以下关键知识点: 1. **Elasticsearch基础知识**:首先会...
GSD-open是一个基于Java开发的系统,它集成了MySQL数据库和Elasticsearch搜索引擎,提供了数据管理和检索的功能。本文将详细介绍如何进行GSD-open的安装部署以及如何有效使用。 一、安装部署 1. **Java环境**:...
- **OpenSearch**是一款开放源代码的搜索引擎,提供了高性能的全文检索能力。最新特性包括但不限于增强的查询性能、改进的安全性和隐私保护功能、以及更灵活的数据索引选项。 ##### 2. 飞天大数据平台Elasticsearch...
2. **电商客户**:结合AIRec和OpenSearch(搜索产品),在微信小程序的电商场景中,提高了猜你喜欢和相关推荐的点击率,实现了点击率翻倍。 总结来说,阿里云智能推荐(AIRec)是企业提升用户体验、优化业务指标的...
它不仅继承了Lucene的强大功能,还在此基础上进行了扩展,提供了更为丰富的特性集,使得其能够更好地应对大规模、高性能的Web应用程序中的搜索需求。 #### Solr的核心特点: - **XML/HTTP 和 JSON API**:Solr支持...
这篇简短的介绍将带你了解如何使用 Google (Local) Search API 进行基本操作。 首先,你需要创建一个 `LocalSearch` 对象,这是通过调用 `google.search.LocalSearch()` 构造函数实现的。这个对象是一个服务,与 ...