推荐引擎基本概念及内容 如何搭建个性化推荐引擎系统?( 二 )


1. 离线流程
一般情况下 , 离线流程的输入和输出都是MaxCompute(原ODPS)表 , 所以离线数据规范其实上是一组MaxCompute表的格式规范 , 包括接入数据、中间数据和输出数据三类数据的格式规范 。 接入数据指客户离线提供的用户、物品、日志等数据 , 中间数据是在离线算法流程中产生的各种中间性质的结果数据表 , 输出数据是指推荐结果数据表 , 该结果最终将会被导入到在线存储中 , 供在线计算模块使用 。
2. 近线流程
推荐引擎的的近线流程主要处理用户行为发生变化、推荐物品发生更新时 , 对离线推荐结果进行更新 。 不像离线算法 , 天然以MaxCompute(原ODPS)表作为输入和输出 , 近线程序的输入数据可以来自多个数据源 , 如在线的表格存储(原OTS) , 以及用户的API请求 , 又或者是程序中的变量;输出可以是程序变量 , 或者写回在线存储 , 或者返回给用户 。 出于安全性考虑 , 推荐引擎提供了一组SDK供客户自定义在线代码读写在线存储(Table Store) , 不允许直接访问 , 所以需要定义每类在线存储的别名和格式 。 对于需要频繁使用的在线数据 , 无论其来自在线存储还是用户的API请求 , RecEng会预先读好 , 保存在在线程序的变量中 , 客户自定义代码可以直接读写这些变量中的数据 。
3. 在线流程
推荐引擎的的在线流程负责的任务是推荐API接收到API请求时 , 实时对离线和近线修正产生的推荐结果进行过滤、排重、补足等处理;后者主要处理用户行为发生变化、推荐物品发生更新时 , 对离线推荐结果进行更新
一个场景只包含一个离线流程和一个近线流程 , 可以包含多个在线流程 , 用于支持A/BTest 。

  • 算法策略(Algorithm Strategy)
算法策略定义了一套离线/近线流程 。 并且透出相关的算法参数 , 帮助客户构建自己的算法流程 。 一个场景可以配置多个算法策略 , 最终会合并执行 , 产出一系列推荐候选集和过滤集 , 在线流程通过引用这些候选集来完成个性化推荐 。
  • 作业/任务(task)
【推荐引擎基本概念及内容 如何搭建个性化推荐引擎系统?】作业指运行中的离线流程实例 , 作业和离线流程的关系完全等同于进程和程序的关系 。 每个作业都是不可重入的 , 即对每个离线流程 , 同一时间只允许运行一份实例 。 作业直接存在上下游关系 , 如果上游作业失败 , 下游任务也会被取消 。 阿里云开发者社区全面升级 , 一站式体验 , 用得更爽

推荐阅读