简介:淘宝每次的搜索行为在后端都会有大量的数据计算和处理才会召回符合用户需求的搜索结果,当面对的业务越来越多如何在工程体系上不断演化满足不同业务的需求?特邀阿里巴巴技术专家介绍统一召回引擎,带你了解如何应对~

特邀嘉宾:

项昭贵(项公)-阿里巴巴高级技术专家

视频地址: https://summit.aliyun.com/2021/session/689

AI Online Serving工程体系

阿里自研的整套搜索工程体系-AI Online Serving体系,目前支撑起海内外阿里电商全部的搜索、推荐、广告业务,时刻置身大数据主战场,引导成交占据集团电商大盘主体;此外,作为中台技术中坚,AI·OS已是包括电商、阿里云、优酷、菜鸟、盒马、钉钉等等在内全集团的基础设施,更为重要的是AI·OS体系的云产品(开放搜索和智能推荐)矩阵通过阿里云服务于全球开发者,在稳定性和工程效率上都是行业领先水平。

统一召回引擎

统一引擎架构及演化过程

左图是搜索引擎HA3和推荐引擎BE的不同执行流程,我们将各引擎功能抽象成算子,把基础功能形成公共算子库,用户可以直接复用和根据业务需求开发,形成右图的Suez框架。

统一召回引擎的特点

1.查询流程DAG化

  • 与深度学习执行引擎统一
  • 搜索功能抽象成算子
  • 统一算子库,支持算子粒度的复用和开发

2.多种查询表达方式

  • SQL
  • TuringSDK

等.....

可以灵活定制执行流程,加速业务迭代速度

统一召回引擎的应用实践

召回引擎面临的挑战

既要,又要,还要

  1. 数据膨胀:文档数据,算法数据
  2. 深度学习的应用:召回,粗排,精排
  3. 稳定高效:高可用,时效性,低延迟

传统解决方案及问题

数据规模膨胀体现在数据维度越来越多。例如电商搜索领域以前只考虑商家、商品两个维度,现在还需要考虑物流、位置等维度。传统引擎处理把这些数据在离线处理join成一张大宽表推给在线做索引构建和查询服务,这会有个问题,很可能出现一个辅表数据更新导致大量的主表数据更新,从而出现写数据扩大的问题,对在线服务的时效性有很大的挑战,在一些场景上很难得到满足,尤其大促场景很难满足要求低延迟高时效的需求

传统解决方案:

将数据按一定维度拆分通过多个引擎实例去提供服务,由业务方来将一次查询拆分成多个请求访问多个引擎,实现搜索结果。

存在的问题:

  1. 出现大量数据的序列化;
  2. 数据可能会有截断,导致效果受损;

例如外卖平台搜索,发现想搜索的店铺因为配送时间或距离原因没有match上,导致意图搜索菜单没有体现,用户体验不佳;

数据规模膨胀另一个体现是数据量变大,数据量变大导致单个搜索加载提供查询的时间变多。

传统解决方案:

一个是将索引进行扩裂,可能带来请求的拆分和结果的合并,随着个数越来越多,耗时越来越大,逐渐成为技术瓶颈。另一个是当搜索个数多时,整个集群的稳定性和可用性受到损害,对用户而言存在查询结果不稳定情况。

统一召回引擎解决方案

  1. 引擎支持多张表
  • 通过一个引擎里面在线同时加载多张表,每张表的索引构建、更新、切换、加载都是独立的;
  • 查询时通过在线多表join方式,可以在一次查询时拿到全局的信息,包括店铺信息,商品信息都能得到充分运用,匹配最符合用户需求的召回结果;
  1. 采用SQL表达查询流程
  • 开发者使用简单
  • 复用SQL生态基础功能

3.并行查询,降低延迟的利器

把索引数据按一定维度切分,在处理用户的查询请求时可以根据不同的切分并行的查询,从而降低整个查询的延迟,也避免了通过扩裂的方式带来的问题。

4.向量召回,深度学习在召回阶段应用

在信息丰富的今天,我们的查询引擎光靠文本查询很难满足业务的需求

  • 采用达摩院自研的向量检索内核-Proxima,具有超大规模数据向量索引的构建,提供高性能的在线向量检索能力;
  • 在原来文本召回基础上,增加向量召回,可以实现对文档召回率和准确率的兼顾,同时可以在每一路排序里面进行较好的灵活配置,取得好的搜索效果

统一召回引擎在推荐场景的应用

打造个性化推荐效果的召回引擎

统一召回引擎的云上实践

阿里云开放搜索

开放搜索(OpenSearch)是基于阿里巴巴自主研发的大规模分布式搜索引擎搭建的一站式智能搜索业务开发平台,通过内置各行业的查询语义理解、机器学习排序算法等能力,提供充分开放的引擎能力,助力开发者快速搭建更高性能、更高搜索基线效果的智能搜索服务。

开放搜索在电商行业应用

  • 电商行业搜索产品化落地,用户无需各方向技术探索,只需按模板接入即可拥有更优搜索服务;
  • 内置更高质量算法模型,免去大量的数据标注与模型训练工作,直接内置淘系搜索算法能力;
  • 支持个性化搜索与服务能力,通过引擎侧的多路召回能力,实现搜索结果、下拉提示、底纹词等重要服务;
  • 支持用户自行训练的NLP模型导入开放搜索,灵活满足业务开发者需求;
  • 阿里巴巴自研引擎系统,处理海量数据、高并发、海量用户请求,性能优于开源方案;
  • 根据电商行变化,不断迭代更新原有能力,提供更高时效性的服务保障;

开放搜索在教育搜题场景应用

  • 支持文本索引、图片向量索引、公式索引多路召回结果,降低文本搜题、拍照搜题场景的无结果;
  • 教育查询分析全套能力,解决准确率较低问题,可定制排序脚本,深度优化召回结果排序效果;
  • 用户灵活配置的向量+文本召回,快速提升搜索系统效果;
  • 排序插件开发-Cava语言 ,更强的定制能力,更易于维护,轻松实现业务排序需求;
  • 按量付费,即时生效,保障高峰期搜索稳定同时,不需要提前购买大量资源,无成本负担;
  • 支持千亿体量数据搜索的毫秒级响应,实时数据更新秒级可见。

原文链接:https://developer.aliyun.com/article/784579?

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

阿里云峰会 | 统一召回引擎在搜索场景的应用实践相关推荐

  1. 开放搜索开源兼容版,支持Elasticsearch做搜索召回引擎

    简介:9月15日阿里云开放搜索重磅发布[开源兼容版],搜索召回环节同时支持阿里云自研Ha3引擎与阿里云Elasticsearch引擎,并提供多行业的搜索算法能力,助力企业高效实现搜索效果深度优化. 9 ...

  2. 一文详解 | 开放搜索兼容Elasticsearch做召回引擎

    简介:开放搜索发布开源兼容版,支持阿里云Elasticsearch做搜索召回引擎,本文详细介绍阿里云ES用户如何通过接入开放搜索兼容版丰富行业分词库,提升查询语义理解能力,无需开发.算法投入,即可获得 ...

  3. 一文详解面向多级多模态场景的召回引擎

    作者| 阿里文娱开发专家 崇懿. 阿里文娱开发专家慧善 责编 | 屠敏 头图 | CSDN 下载自视觉中国 出品 | CSDN(ID:CSDNnews) 优酷视频搜索在文本搜索系统的基础上,不断探索视 ...

  4. 阿里妈妈展示广告召回之多场景建模算法

    丨目录: · 摘要 · 背景 · 方法 ·  实验分析 · 总结 · 参考文献 1. 摘要 工业推荐系统通常拥有多个业务场景,并需要同时为这些场景提供推荐服务.在召回阶段,从大量商品库中选出的个高质量 ...

  5. 阿里妈妈Dolphin智能计算引擎基于Flink+Hologres实践

    作者:徐闻春(花名 陌奈) 阿里妈妈事业部技术专家 本文整理至Flink+Hologres实时数仓Workshop北京站,点击查看视频回放>>> 阿里妈妈数据引擎团队负责广告营销计算 ...

  6. 赠票 | 面见AI大神贾扬清!阿里云峰会船票抢先送~(上海站)

    7月24日,阿里云峰会 · 上海开发者大会将在上海世博中心盛大启程,与未来世界的开发者们分享开源大数据.IT 基础设施云化.数据库.云原生.物联网等领域的技术干货. 本次开源大数据专场重磅邀请 AI ...

  7. 阿里云峰会|数据库也能自动驾驶?DAS全天候给你保驾护航!

    阿里云峰会直播地址 2020年6月9日,"全速重构"2020阿里云·线上峰会即将隆重召开. 在此次峰会上,阿里云数据库重磅发布云原生分布式数据库 PolarDB-X .云原生数据仓 ...

  8. 阿里云峰会线上首秀,谁是火车头?

    云数据库系列产品正成为阿里云的新火车头. 鸣秦 作者 @中国软件网 出品 从"全面上云"到"全速重构":从理念升级到组织升级,到经营模式.运营模式升级:从做深基 ...

  9. Faiss向量召回引擎如何做到快速查找最近邻

    Faiss向量召回引擎的索引结构 背景 问题描述 问题规模 最近邻离线表 向量量化(Vector Quantization) 乘积量化PQ(Product Quantization) Quantiza ...

最新文章

  1. 简单介绍python format格式化和数字格式化
  2. 首尔日记——5月25日,出发
  3. JVM体系结构:JVM类加载器和运行时数据区
  4. Win10系统局域网中的其他电脑能Ping通但是无法访问本地IIS发布的网站
  5. KTween 补间引擎
  6. 多线程中的互斥控制程序代码_互斥锁解决 Python 中多线程共享全局变量的问题...
  7. 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_2 Mybatis的CRUD-保存操作
  8. QT小项目-基于百度API的在线词典
  9. eclipse angularjs 插件安装
  10. mongodb获取具体某一天的查询语句
  11. 路由交换接口类型详解——通俗易懂版
  12. 我对软件应聘学生的建议
  13. python版本正式对外发布的年份是_python正式对外宣布的年份_后端开发
  14. c语言编写一个简单的答题系统
  15. java catch 空指针异常_java空指针异常怎么处理
  16. 规则引擎解决方案浅析
  17. LeetCode 11-20 题
  18. 教你快速随意重命名多个文件夹名称
  19. 台湾精锐APEX行星减速机行业应用案例
  20. 为什么有争议的王坚把阿里云做起来了?

热门文章

  1. ubuntu apt-get 默认下载路径
  2. Apache Flink 零基础入门(六)Flink核心概念
  3. 从零开始搭建spring-cloud(5) ----zuul
  4. 他修复了程序员吃饭的bug,估值已超过10亿美金!9.9元,2顿饭.....
  5. InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor
  6. 如何优化MySQL千万级大表
  7. leetcode-3-无重复字符的最长子串
  8. [MySQL] 事务的ACID特性
  9. c# 给文件/文件夹 管理用户权限
  10. 2018-2019-2 20175204 张湲祯 实验五《网络编程与安全》实验报告