CSDN揭秘阿里中台!一文看懂阿里推荐业务的两项利器 | 赠书( 三 )


Suez在线服务框架是搜索事业部自研的大数据在线服务的通用抽象(要求具备秒级数据更新的最终一致性) 。 Suez框架统一了以下3个维度的工作 。

  • 索引存储(全文检索、图检索、深度学习模型)
  • 索引管理(全量、增量及实时更新)
  • 服务管理(最终一致性、切流降级扩缩容等)
下面用一张图来描述RTP与Suez框架的关系 。
图4是RTP系统的架构图 。 图中Tf_search是RTP的内核 , 基于Indexlib和Suez Worker承载对外提供端口服务 。 Suez Worker的部署由Suez admin完成和管理 , 而Suez worker和Suez admin的机器资源(如CPU、内存等)都是通过一个叫作Hippo的资源调度框架来管理的 。
CSDN揭秘阿里中台!一文看懂阿里推荐业务的两项利器 | 赠书
本文插图
图4RTP系统架构
RTP和TensorFlow Serving一样 , 基本的功能就是将模型进行加载并提供端口对外服务 。 下面 , 首先从阿里巴巴网站的搜索和推荐业务来阐述RTP在其中的位置;然后 , 介绍RTP的模型和数据更新机制;
接着 , 从RTP提供对外服务接口开始 , 一步步深挖RTP是如何借鉴TensorFlow的图化思想来实现既支持TensorFlow的原生深度模型 , 又支持LR模型、GBDT等传统模型的;最后 , 介绍在面对海量的数据和模型时 , RTP在工作效率、稳定性及性能方面具备的独特优势 。
2. RTP在阿里巴巴的应用
RTP应用在阿里巴巴的搜索和推荐业务中 。 对于搜索业务 , RTP不仅用于对商品集合进行在线打分 , 也用于对商品集合按规则进行排序 。 对于推荐业务 , RTP主要用于对商品集合批量打分 。
图5是从搜索架构的视角看RTP的位置和作用 。 Rank Service和RTP内部其实是基于同一份二进制文件拉起的服务 , 都可以认为是宽泛意义上的RTP 。 两者的差异在于加载的模型不同 , 因而作用不同 。
图中左下角的Rank Service加载的是Hobbit和Unicorn的Graph , 作用是打分和排序;图中右下角的RTP加载的是深度模型的Graph , 如WDL模型 , 作用是打分 。
Rank Service将商品集合信息请求RTP , RTP算分后将结果返回给Rank Service , 然后按分值进行排序 , 这些都是在Hobbit和Unicorn的Graph中完成的 。
CSDN揭秘阿里中台!一文看懂阿里推荐业务的两项利器 | 赠书
本文插图
图5 RTP架构角色
我们接下来再从推荐架构的视角看RTP的位置和作用 。 推荐架构相对简洁 , 基于RTP使用模型对商品集合进行在线打分 。
在阿里巴巴 , ABFS(Ali Basic Feature Service)提供的是用户实时行为特征服务 。 IGraph既可以提供商品维度的信息 , 也可以提供用户行为的信息 , 是一个非常重要的图存储引擎 , 而BE则是推荐召回引擎 。
图6中的TPP是将上述在线服务编排、处理、整合的一个平台 。 首先 , TPP使用买家ID请求ABFS和IGraph , 获取用户实时行为和离线行为特征;然后 , 将这些行为作为条件去请求BE , 进行商品集合的召回;
最后 , 将商品集合、商品特征、用户特征一起请求RTP , 对商品进行打分 。 在打分完成后 , 还会在TPP内部进行排序及翻页处理 , 然后再传出给调用方 。
CSDN揭秘阿里中台!一文看懂阿里推荐业务的两项利器 | 赠书
本文插图
图6 推荐系统架构
上述典型的搜索和推荐业务是对批量的商品进行打分或者排序 , 除此之外 , RTP还承接了其他类似的推荐业务 , 如对榜单、直播、短视频等进行打分 。 另外 , RTP还承接了打分和排序以外的模型服务 , 例如1688的智能文案在线生成服务 。
3. RTP模型和数据更新
原生的TensorFlow模型(如saved model)是不区分模型和数据的 , 只有模型的概念 。 这里的模型实际包含了两类信息:一类是图的结构 , 一类是参数的权重数据 。 在一个目录下存了多个文件 , 共同存储上述两类信息 。 RTP也支持saved model格式 , 不过这并不是RTP在生产环境的主流使用方式 。