基于MaxCompute+开放搜索的电商、零售行业搜索开发实践-阿里云开发者社区

开发者社区> 阿里巴巴大数据计算> 正文
登录阅读全文

基于MaxCompute+开放搜索的电商、零售行业搜索开发实践

简介: 搜索一直是电商行业流量来源的核心入口之一,如何搭建电商行业搜索并提升搜索效果,一直是电商行业开发者努力攻克的难题。基于传统数据库或开源引擎虽然能够搭建基础搜索服务,但随着商品数据的增多和业务流量的增长,难免会遇到性能瓶颈和效果瓶颈。另一方面,随着电商、直播、云计算等技术的不断发展,越来越多的传统零售企业正在进行互联网云上转型,特别是受近两年疫情等因素的影响,APP、小程序已经成为零售企业重要的业务增长来源。在此背景下,如何快速搭建高效搜索服务成为零售行业上云及转型的难题。

本文作者 刘志嘉 阿里云智能 产品经理


直播视频请点击 直播 观看。


搜索一直是电商行业流量来源的核心入口之一,如何搭建电商行业搜索并提升搜索效果,一直是电商行业开发者努力攻克的难题。基于传统数据库或开源引擎虽然能够搭建基础搜索服务,但随着商品数据的增多和业务流量的增长,难免会遇到性能瓶颈和效果瓶颈。另一方面,随着电商、直播、云计算等技术的不断发展,越来越多的传统零售企业正在进行互联网云上转型,特别是受近两年疫情等因素的影响,APP、小程序已经成为零售企业重要的业务增长来源。在此背景下,如何快速搭建高效搜索服务成为零售行业上云及转型的难题。


为解决这两个问题,阿里云计算平台事业部推出基于 MaxCompute 和开放搜索的电商、零售行业的搜索解决方案,实现商品存储、建库、搜索、调优的搜索开发平台。


本文将从产品简介、电商行业特点、行业搜索开发实践、更多解决方案这四个方面介绍如何快速、高效的基于MaxCompute 和开放搜索搭建电商行业搜索服务。


一、产品简介

MaxCompute 简介

简单、易用、全托管的开放服务

MaxCompute 是阿里云推出的一款简单、易用、全托管的面向分析的企业级 Saas 模式云数据仓库,它简单、易用,能够匹配业务发展进行灵活弹性扩展;面向云上开发者,MaxCompute 支持机器学习、数据湖、传统数仓、近实时数仓等多种业务分析场景,并提供更开放的开发生态。


image.png

Serverless 灵活数据仓库

为实现企业在满足差异化需求的前提下最小化成本的目标,MaxCompute 以 Serverless 架构提供快速、全托管的在线数据仓库服务,消除了传统数据平台在资源扩展性和弹性方面的限制,满足用户的业务敏捷性、周期波动调度、关键任务保证、稳定可预期等需求,最小化用户运维投入,从而使用户可以经济、高效的分析处理海量数据。这些特性使得MaxCompute非常适合电商、零售行业的应用场景,满足行业开发者的计算、存储需求。

图片2.png

此外,MaxCompute 还提供Serverless的数据接入服务、多计算环境、存储服务、资源管理,大幅度降低用户运维成本,让用户更专注自身业务扩展与开发。

图片3.png

开放的生态

在产品生态方面,MaxCompute 提供丰富的诸如产品自身开放生态、阿里云产品解决方案生态、数据应用生态、开源引擎工具集成等全方位开放生态,基于 MaxCompute,开发者可以自由选择业务开发方式,更灵活的定制个性化产品解决方案。

图片4.png

持续打造开放的产品生态

而 MaxCompute 的离线、实时、分析、服务一体化数据仓库,特别适用于企业实时数仓场景、BI报表交互查询场景、用户画像分析等场景,而这些场景正是电商行业商品数据存储、用户行为引导与分析不可或缺的组成部分。


在阿里巴巴集团内部,MaxCompute 作为双11即时查询场景的最佳实践,能够支持数亿级TPS写入速度,PB级数据亚秒级查询相应,充分满足电商行业大促场景下的高时效性需求。基于这些特性,MaxCompute 已经成为电商行业云上开发者的首选存储、计算服务。

图片5.png

前面提到,MaxCompute 支持开源生态集成、主流商业软件集成等多种开放生态,同时在能够与阿里云其他产品共同组成一站式解决方案,搭建电商常用的搜索、推荐等大数据服务应用。特别是针对电商、零售行业搜索业务,MaxCompute能与另一款云产品开放搜索联动,形成一站式搜索开发平台。

图片6.png

开放搜索简介

开放搜索是阿里集团搜索业务中台,是基于大数据深度学习在线服务体系打造的智能搜索云服务产品。在阿里集团内部,共有淘系、天猫、盒马、菜鸟等超过500个业务接入,支持日均百亿级别的搜索访问。双十一期间,稳定支持阿里集团内部各产品的搜索服务,单业务搜索QPS峰值超百万。开放搜索自2014年开始在阿里云上商业化输出,目前已经为数千家客户、数百家电商、零售企业提供搜索服务。

图片7.png

一站式智能搜索业务开发平台

开放搜索产品提供核心引擎、召回排序、搜索引导等搜索前、中、后各个环节的服务与能力,实现一站式搜索业务开发。针对经验丰富的搜索开发者,开放搜索提供应用结构、召回、排序、算法等多个环节的开放服务,满足开发者的个性化定制需求;针对零基础的小白用户以及产品、运营同学,开放搜索提供电商、教育等行业的行业模板,一键式快速搭建效果更优的搜索服务,助力企业完成业务目标。

特别是针对电商行业,开放搜索提供商品、订单、门店搜索,数据库加速和分析等多场景搜索方式及解决方案。

图片8.png

二、电商行业特点

电商行业是高度的成交导向、GMV导向行业,以引导更多更高额的购买成交作为最终目标,实现电商平台、买家、卖家的三赢。而搜索和推荐是目前电商行业最主要的流量入口,像图中的这三款APP,都将搜索入口放置在整个APP的最核心位置,方便用户第一时间发现搜索入口,下面是其他子应用或商品分类筛选,再下面是推荐feed流。数据显示,有90%以上的GMV贡献来源于搜索和推荐的流量引导。


当用户已经有了明确的购买需求打开电商APP时,他有很大概率通过搜索寻找目标商品,而在这种场景下的引导购买率、转化率非常高,因此,搜索效果对于电商行业而言至关重要。

图片9.png

那么要如何衡量搜索的效果呢?根据积累多年的电商行业搜索经验,我们主要将电商搜索核心指标分为效果指标和性能指标,效果指标包含点击率、无结果率等,性能指标包含搜索响应时间、数据同步响应时间等,简单而言,就是让终端用户更快更准的找到目标商品。


此外,电商行业搜索Query与其他行业的Query也有所差异,电商行业用户在搜索时,会习惯性的进行关键字堆砌,比如当搜索一个Query没有找到指定商品后,会再继续输入补充说明Query以实现对搜索结果的筛选,这也同时导致了电商行业Query的词序对搜索的影响没有其它行业大,比如搜索华为手机和手机华为完全可以理解成同一种搜索行为。由于很多通用电商类APP会包含各行各业的商品信息,当同一词汇在不同语境下出现时,会代表不同的信息。当小米后边跟着手机时,它是一个手机品牌,当小米前面带着有机时,它是一个商品品类。


基于这些电商行业特殊的搜索Query特点,用户通过数据库或开源引擎自建搜索时,常常会遇到口语化查询导致查询召回少、文档相关性差、排序结果不理想等问题,影响搜索效果乃至影响用户购买转化。


在用户意图识别方面,不同用户在不同场景下输入同一词汇时,可能会覆盖多种领域的众多商品。比如当用户输入苹果时,他可能指的是手机、水果、平板电脑、耳机、笔记本等多种品类。这也是通过开源方案自建电商搜索初期经常遇到的badcase之一。

那么,如何解决这些问题与badcase,优化电商行业搜索效果、提升搜索引导GMV呢?

图片10.png

三、行业搜索开发实践

MaxCompute+开放搜索行业搜索开发实践

电商搜索服务涉及商品数据、搜索Query、用户行为等多种维度,以及搜索前、搜索中、搜索后等多个环节,我们在对接不同企业时,也经常会遇到客户提出的各种各样的问题。之前没有过搜索经验的同学可能会问,商品要如何建库?如何准确的理解用户查询意图呢?经验老道的开发者可能会问,如何为用户提供个性化的搜索体验?如何保证高并发场景下的性能呢?


为了更快更好的帮助电商、零售行业开发者解决上述问题,MaxCompute 联合开放搜索提出了相应的行业搜索解决方案。


整体而言,用户将存储在 MaxCompute 中的商品数据、行为数据等通过数据库自动同步或API/SDK同步的方式传输到开放搜索,然后在开放搜索中定制查询分析、排序、搜索引导、干预、扩展功能等。最终实现搜索效果更优的高性能、高实时型、高可靠、全托管、免运维的电商行业搜索解决方案。

图片11.png

这一解决方案可以根据用户实际搜索行为,拆解为搭建搜索应用、用户输入查询词、用户意图识别、访问搜索引擎、返回搜索结果五个关键环节,分别对应MaxCompute建库、搜索引导、查询分析、搜索引擎、排序服务五个模块的开发。

图片12.png

商品建库

在商品建库阶段,用户将自身商品数据、用户行为数据存储到 MaxCompute 中,为了方便电商行业开发者使用,开放搜索提供了电商行业模板,用户可以一键式创建搜索应用结构,实现快速建库。接下来,根据MaxCompute 中的字段或开放搜索中自定义的应用结构定义每个表中的字段类型、含义以及多个表之间的关联关系。然后根据不同业务场景的搜索需求,把不同的字段组合成目标索引,到相应的索引中进行搜索。比如在电商行业中,商品名称、店铺名称、商品品类等都是常见的搜索字段,则可以将这些字段统一构建为一个索引,则当用户输入Query后,会去这些字段中搜索关联到商品、店铺等信息。索引结构构建完成后,将开始为用户构建搜索服务,当应用的状态为“可用”时,基础版本的搜索服务就搭建完成了。

图片13.png

搜索引导

在用户输入搜索Query之前,电商行业往往会提供一些预置的搜索Query,这一流程被称为搜索引导。目前常见的搜索前引导模块包括热搜、底纹,热搜就是会根据近期热点事件、用户搜索行为提供一些热门搜索词,使用户直接点选搜索。而底纹是指搜索框中在用户输入搜索词之前已经存在了预置Query,用户直接点击搜索就可以搜索相应的搜索词。热搜、底纹是搜索环节中的重要组成部分,一方面,热搜、底纹可以引导用户搜索行为,降低后续环节的调优难度,另一方面,也可以根据不同时间的不同运营目标,达到提升搜索引导购买的目标。目前开放搜索不仅支持热搜、底纹模型的自动训练,还可以通过黑白名单实现定时、定位的人工干预,达到人工运营与引导的效果。


另一种常用的搜索中引导为下拉提示,即在用户输入Query的过程中,自动联想出现其他候选Query,降低用户输入成本,实现流量引导效果。目前,开放搜索支持多种下拉提示模型构建方式,并支持高频搜索词、历史搜索词、智能排序、人工干预等下拉提示扩展功能。

通过热搜、底纹、下拉提示的搜索引导,可以提升用户的搜索体验,并实现人工运营,吸引购买转化。

图片14.png

用户意图识别

在用户通过搜索引导或者手动输入Query后,一次搜索请求开启了。

首先,我们需要理解用户的实际搜索意图,之前我们提到过,电商行业用户在输入搜索Query时,有时会带有一些口语化表达,或者会进行关键词堆砌。因此,我们需要将用户从购买需求角度描述的Query转化为结构化的相对清晰规范的表达形式,这就是用户意图识别流程。

我们常见的用户意图识别包括同义词拓展、停用词省略、纠错改写、实体标签识别、类目预测。

图片15.png

接下来,我们通过一个例子详细介绍一下用户意图识别环节。

比如用户输入了一个query,叫NIKE的蓝球鞋高帮。我们首先会进行归一化,对一些标点符号或者是大小写进行归一化,第一步就变成了nike的蓝球鞋高帮,再通过电商行业分词对输入的query进行分词处理,划分成niki 的 蓝球鞋 高帮。接下来进入停用词环节,比如设置里“的”是一个没有意义的词,就变成了nike 蓝球鞋 高帮。接下来是拼写纠错,会把错别字纠正,变为nike 篮球鞋 高帮。接下来就用行业里经常会用到的一个类目叫行业实体识别,分析之前的词是什么含义,变化为,nike:品牌,篮球鞋:品类,高帮:款式。除此之外,开发搜索还支持类目预测。通过上述的结果,会给当前的query做一个权重,nike-高,篮球鞋-中,高帮-中。再进行一个搜索词的扩展,比如(nike OR 耐克)运动鞋 高帮。最终输出一个层层改写之后,引擎能够理解的query,输入到搜索引擎中。

图片16.png

搜索引擎召回

在完成Query改写之后,会进入搜索引擎召回阶段。开放搜索提供包含文本召回、个性化召回、向量召回在内的多种召回策略。文本召回是搜索领域最常见的召回策略,会对比改写后Query与商品数据中的文本相关性,利用倒排索引实现召回。开放搜索使用阿里巴巴集团内部自研的问天3文本搜索引擎,能够高性能的处理高并发、多写入场景下的搜索任务,更快的返回搜索结果。个性化召回会在查询词改写基础上引入用户的个性化信息,返回面向用户的千人千面的个性化搜索结果。向量召回会在改写词基础上引入向量信息,根据查询词与商品数据的向量相似度返回搜索结果。传统文本搜索可能会遗漏部分看上去没有相关性但实际上也是用户目标需求的搜索结果,而向量召回可以解决这一问题。利用文本召回和向量召回同时进行多路搜索,能大幅度降低搜索结果的无结果率,优化搜索效果。

图片17.png

结果排序

在完成召回阶段后,我们已经得到了一些跟用户搜索需求相关的商品数据,接下来需要把已经召回的商品数据进行排序,以最合理的顺序反馈给用户,保障用户最有可能点击的搜索结果排在前面,进而提升搜索引导转化和GMV。开放搜索提供粗排、精排两轮排序机制,支持排序表达式、自定义插件、算法模型等多种排序方式,将内部排序过程充分开放给开发者,使得开发者能够按照自身业务需求定制专属排序策略。

图片18.png

其中,在自定义插件环境,开放搜索提供cava编译语言及其插件。cava是一款阿里巴巴自研的编译语言,它的语法和java类似,性能与C++相当,支持面向对象编程。开放搜索控制台中已经集成了支持cava编译的IDE,用户可以直接在控制台上编译定制cava插件,更方便的进行调试和修改。


综上,用户利用 MaxCompute 和开放搜索实现了商品建库、搜索引导、用户意图识别、搜索引擎召回、结果排序的电商、零售行业搜索开发,拥有了性能更优,充分定制的搜索服务。接下来要如何衡量与优化搜索效果呢。

图片19.png

方案特效与效果优化

首先,分词是搜索中最基础的也是中文搜索不可缺少的环节。针对电商、零售行业,开放搜索集成了淘宝搜索团款的电商分词器,模型训练语料来自淘宝搜索多年积累的百万级有标注的电商行业数据。我们将开放搜索通用的电商分词器与开源IK分词器进行了效果对比,在100个电商搜索实际Query中,有63个Query的分词结果优于开源分词器。Good、bad比例超过4:1。

图片20.png

在电商通用分词器基础之上,我们与达摩院自然语言处理团队合作进行了电商行业模板专项优化,提出电商增强版分析器和相应的查询分析算法。具体来看,将电商分词F1分词准确率提升至95%,实体识别F1准确率提升至80%,拼写纠错FAR降低至1.4%,同时还新增了超过10万条的电商同义词,这些效果均处于NLP电商领域的领先水平。


下面是一些通用版分析器与电商行业增强版分析器的效果对比。除此之外,针对不同领域、不同垂类的电商、零售行业客户,我们还支持算法专项定制服务,提供用户级别定制的查询分析、CTR预估、向量模型、个性化模型等,全方面提升搜索效果。

图片21.png

一键式配置

针对电商用户特别是刚刚开始云上互联网转型的零售行业用户,我们提供了一键式配置能力,用户只需在控制台上勾选想要实现的召回、查询分析、排序、周边服务等搜索相关功能,即可自动生成相应的应用结构、索引结构以及各具体功能策略,实现电商搜索全方位一键式配置。

图片22.png

客户案例

电商行业客户

下面简单介绍两个电商、零售行业搜索的典型客户案例。一家电商购物平台类APP,为用户提供商品搜索、优惠券导购等功能。客户最开始选择自研搜索开发,但很快就遇到了一些瓶颈,比如在亿级商品索引量下,复杂的搜索、筛选需求经常会影响搜索性能,特别是在电商大促期间,流量峰值会大幅提升。用户调研了多种产品及解决方案之后,最终选择了MaxCompute+开放搜索的解决方案。MaxCompute 灵活弹性运维机制高度适用电商行业场景,而开放搜索能够为搜索业务提供性能、效果保障。在持续使用了一段时间之后,我们得到了客户良好的反馈,特别是工程、运维上的稳定保障,使得用户能够专心研究业务与算法,推动产品营收与发展。


图片23.png

零售行业客户

另一家用户是近期刚刚接入的零售行业用户。这是一家在全球用于超过一万家店铺的超市零售品牌,在国内新零售市场高速发展的背景下,想要快速布局和提升品牌影响力,线上业务尤为重要。用户最初同样选择了自研搜索方案并应用到了线上商城,但效果远远没有达到预期,用户购物体验不佳。最近用户接入了开放搜索电商行业模板,利用内置的多路召回、个性化排序等功能,大幅提升了搜索效果。在接入半个月之后,整体加购转化率提升10%,无结果率从29%大幅降低至7.5%。另外用户还特别提到MaxCompute+开放搜索的云端全托管服务模型,大幅降低了人员投入和运维成本,用户超高的整体性价比。

图片24.png

四、更多解决方案

多模态、多场景搜索效果优化

在电商行业,除了商品搜索场景外,还存在订单检索、收藏夹搜索、类目搜索等多种简单条件搜索场景,在这些场景下,MaxCompute+开放搜索能够提供数据库检索加速服务,保证高性能、高实时性的搜索。

另外,使用开放搜索的向量召回能力,能够实现以图搜图的拍立淘效果,成为搜索倒流了另一个典型应用场景。

在此基础上,联合阿里云提供的智能推荐等其它云产品,能够实现电商行业搜索+推荐+广告的电商全环节应用保障。

图片25.png

更开放的引擎能力

在另一个方向,开放搜索目前正在进行引擎能力透出,将内置核心引擎透出到云上,供更多开发者使用,预计将于九月底正式上线,届时,将提供更加开放的生态和全方位用户定制能力。

图片26.png


更多关于大数据计算、云数据仓库技术交流,欢迎扫码查看咨询。

MaxCompute 二维码拼图.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里巴巴大数据计算
使用钉钉扫一扫加入圈子
+ 订阅

阿里大数据官方技术圈

官方博客
最新文章
相关文章
链接