端智能在大众点评搜索重排序的应用实践

端智能在大众点评搜索重排序的应用实践

总第517

2022年 第034篇

端智能在大众点评搜索重排序的应用实践

端智能,是指在移动端设备运行人工智能(AI)应用的技术。本文主要讲述大众点评搜索场景下,在端侧部署大规模深度学习模型进行搜索重排序任务的实践方案,包括端上特征工程、模型迭代思路,以及具体部署优化的过程,希望能对从事相关领域开发的同学有所帮助或者启发。
  • 1 引言

  • 2 排序系统进阶:为什么需要端上重排

    • 2.1 云端排序痛点

    • 2.2 端智能重排流程和优势

  • 3 端上重排序算法探索与实践

    • 3.1 特征工程

    • 3.2 用户反馈行为序列建模

    • 3.3 重排模型设计

    • 3.4 多场景应用效果

  • 4 系统架构与部署优化

    • 4.1 系统架构

    • 4.2 端上大规模深度模型部署优化

    • 4.3 端智能模型训练预估平台

  • 5 总结与展望

1 引言

随着大数据、人工智能等信息技术的快速发展,云计算已经无法满足特定场景对数据隐私、高实时性的要求。借鉴边缘计算的思想,在终端部署 AI 能力逐渐步入大众的视野,“端智能”的概念应运而生。相比于传统的云计算,在智能手机等终端部署运行 AI 模块有以下几个方面的优势:首先,数据本地化可以缓解云存储的压力,也有利于用户数据的隐私保护;其次,计算的本地化可以缓解云计算过载问题;最后,端智能减少了和云端系统的请求通信成本,可以更好地利用用户在端上的交互,提供更加实时、个性化的服务体验。
在端智能的应用方面,国内外各大科技公司已经走在了前列。Google 提出了 Recommendation Android App 的概念,根据用户兴趣进行内容推荐;Apple 的 Face ID 识别、Siri 智能助手等一些我们熟知的产品,也都是端智能典型的应用代表。阿里巴巴、快手、字节跳动等企业也在各自的应用场景上进行了端智能的落地,并推出相应的端上模型推理框架。比如,快手上线的短视频特效拍摄、智能识物等功能。另外,在搜索推荐场景下也有一些实践,其中,手机淘宝“猜你喜欢”在端上部署了智能推荐系统,取得较为显著收益(EdgeRec[1],双十一 IPV 提升 10%+,GMV 提升 5%+)。快手上下滑推荐场景也应用了端上重排的方案,并取得 App 时长提升了 1%+ 的效果。
搜索是大众点评 App 连接用户与商家的重要渠道,越来越多的用户在不同场景下都会通过搜索来获取自己想要的服务。理解用户的搜索意图,将用户最想要结果排在靠前的位置,是搜索引擎最核心的步骤。为了进一步优化搜索个性化的排序能力,提升用户体验,搜索技术中心进行了在端上部署深度个性化模型的探索实践。本文主要介绍了端智能重排在大众点评 App 上的实践经验,文章主要分为以下三个部分:第一部分主要分析端智能重排要解决的问题和整体流程;第二部分会介绍端上重排序算法部分的探索实践过程;第三部分将介绍端上重排系统的架构设计以及部署优化,最后是总结与展望。

2 排序系统进阶:为什么需要端上重排

2.1 云端排序痛点

我们以一次完整的搜索行为,来看一下整个前后端执行的过程。如下图 1 所示,用户在手机端搜索入口发起检索请求后,触发云端服务器执行,包括查询理解、多路召回、模型排序与展示信息合并等处理,最终返回给客户端进行渲染呈现给用户。
端智能在大众点评搜索重排序的应用实践
图1 搜索执行链路示意图
由于整个系统的每秒查询数(QPS)的限制,以及前后端请求通信、传输包体影响,通常会采用分页请求机制。这种客户端分页请求,云端服务检索排序返回给用户最终展示列表的 Client-Server 架构,对于大众点评 LBS 场景、类推荐的搜索产品来说,存在以下两个问题:
列表结果排序更新延迟
分页请求限制会导致排序结果的更新不及时。在下一个分页请求之前,用户的任何行为都无法对当前页内的搜索排序结果产生任何影响。以大众点评搜索结果页为例,一次请求返回 25 个结果到客户端,每屏展示约 3~4 个,那么用户需要滑动 6~8 屏左右,才能触发新的分页请求到云端获取下一页结果(以美食频道列表页为例,有 20% 以上的搜索浏览超过一页结果)。云端的排序系统无法及时感知用户的兴趣变化,并调整已下发到客户端的结果顺序。