智能搜索模型预估框架的建设与实践

在过去十年,机器学习在学术界取得了众多的突破,在工业界也有很多应用落地 。美团很早就开始探索不同的机器学习模型在搜索场景下的应用,从最开始的线性模型、树模型,再到近两年的深度神经网络、BERT、DQN等,并在实践中也取得了良好的效果与产出 。
 
在美团搜索AI化的过程中,比较核心的两个组件是模型训练平台Poker和在线预估框架Augur 。本文主要与大家探讨Augur的设计思路、效果,以及它的优势与不足,最后也简单介绍了一下Poker平台的价值 。希望这些内容对大家有所帮助或者启发 。

智能搜索模型预估框架的建设与实践

文章插图
 
1. 背景搜索优化问题,是个典型的AI应用问题,而AI应用问题首先是个系统问题 。经历近10年的技术积累和沉淀,美团搜索系统架构从传统检索引擎升级转变为AI搜索引擎 。当前,美团搜索整体架构主要由搜索数据平台、在线检索框架及云搜平台、在线AI服务及实验平台三大体系构成 。
在AI服务及实验平台中,模型训练平台Poker和在线预估框架Augur是搜索AI化的核心组件,解决了模型从离线训练到在线服务的一系列系统问题,极大地提升了整个搜索策略迭代效率、在线模型预估的性能以及排序稳定性,并助力商户、外卖、内容等核心搜索场景业务指标的飞速提升 。
智能搜索模型预估框架的建设与实践

文章插图
 
首先,让我们看看在美团App内的一次完整的搜索行为主要涉及哪些技术模块 。如下图所示,从点击输入框到最终的结果展示,从热门推荐,到动态补全、最终的商户列表展示、推荐理由的展示等,每一个模块都要经过若干层的模型处理或者规则干预,才会将最适合用户(指标)的结果展示在大家的眼前 。
智能搜索模型预估框架的建设与实践

文章插图
 
为了保证良好的用户体验,技术团队对模型预估能力的要求变得越来越高,同时模型与特征的类型、数量及复杂度也在与日俱增 。算法团队如何尽量少地开发和部署上线,如何快速进行模型特征的迭代?如何确保良好的预估性能?在线预估框架Augur应运而生 。
经过一段时间的实践,Augur也有效地满足了算法侧的需求,并成为美团搜索与NLP部通用的解决方案 。下面,我们将从解读概念开始,然后再分享一下在实施过程中我们团队的一些经验和思考 。
2. 抽象过程:什么是模型预估?其实,模型预估的逻辑相对简单、清晰 。但是如果要整个平台做得好用且高效,这就需要框架系统和工具建设(一般是管理平台)两个层面的配合,需要兼顾需求、效率与性能 。
那么,什么是模型预估呢?如果忽略掉各种算法的细节,我们可以认为模型是一个函数,有一批输入和输出,我们提供将要预估文档的相关信息输入模型,并根据输出的值(即模型预估的值)对原有的文档进行排序或者其他处理 。
纯粹从一个工程人员视角来看:模型可以简化为一个公式( 举例:f(x1,x2)= ax1 + bx2 +c ),训练模型是找出最合适的参数abc 。所谓特征,是其中的自变量x1与x2,而模型预估,就是将给定的自变量x1与x2代入公式,求得一个解而已 。(当然实际模型输出的结果可能会更加复杂,包括输出矩阵、向量等等,这里只是简单的举例说明 。)
【智能搜索模型预估框架的建设与实践】所以在实际业务场景中,一个模型预估的过程可以分为两个简单的步骤:第一步,特征抽取(找出x1与x2);第二步,模型预估(执行公式 ƒ,获得最终的结果) 。
智能搜索模型预估框架的建设与实践

文章插图
 
模型预估很简单,从业务工程的视角来看,无论多复杂,它只是一个计算分数的过程 。对于整个运算的优化,无论是矩阵运算,还是底层的GPU卡的加速,业界和美团内部都有比较好的实践 。美团也提供了高性能的TF-Serving服务(参见《基于TensorFlow Serving的深度学习在线预估》一文)以及自研的MLX模型打分服务,都可以进行高性能的Batch打分 。基于此,我们针对不同的模型,采取不同的策略: