Quick BI DataV 推荐引擎 云服务器ECS 对象存储 OSS CDN 数加 · MaxCompute

推荐引擎(Recommendation Engine,以下简称RecEng,特指阿里云推荐引擎)是在阿里云计算环境下建立的一套推荐服务框架,目标是让广大中小互联网企业能够在这套框架上快速的搭建满足自身业务需求的推荐服务。


推荐服务通常由三部分组成:日志采集,推荐计算和产品对接。推荐服务首先需要采集产品中记录的用户行为日志到离线存储,然后在离线环境下利用推荐算法进行用户和物品的匹配计算,找出每个用户可能感兴趣的物品集合后,将这些预先计算好的结果推送到在线存储上,最终产品在有用户访问时通过在线API向推荐服务发起请求,获得该用户可能感兴趣的物品,完成推荐业务。



RecEng的核心是推荐算法的定制。RecEng为推荐业务定义了一套完整的规范,从输入,到计算,到输出,客户可以在这个框架下自定义算法和规则,以此满足各种行业的需求,包括电商,音乐,视频,社交,新闻,阅读等。同时,RecEng也提供了相应的方法供客户便捷的接入用户访问日志,以及自定义满足其自身业务需求的在线API。



离线计算

离线计算模块包含推荐业务、场景、离线算法流程的创建、编辑、删除操作,支持算法流程任务的启动、停止和日志查看,提供默认的离线推荐算法模板和创建自定义算法模板。推荐引擎中,离线流程和效果流程都是在离线计算的,离线数据规范中定义了这两类流程的数据规范。一般情况下,离线计算的输入和输出都是MaxCompute(原ODPS)表,所以离线数据规范其实上是一组MaxCompute表的格式规范,包括接入数据、中间数据和输出数据三类数据的格式规范。接入数据指客户离线提供的用户、物品、日志等数据,中间数据是在离线算法流程中产生的各种中间性质的结果数据表,输出数据是指推荐结果数据表,该结果最终将会被导入到在线存储中,供在线计算模块使用。


在线计算

推荐引擎的的在线计算负责的任务是推荐API接收到API请求时,实时对离线和近线修正产生的推荐结果进行过滤、排重、补足等处理;后者主要处理用户行为发生变化、推荐物品发生更新时,对离线推荐结果进行更新。


近线计算

推荐引擎的的近线计算主要处理用户行为发生变化、推荐物品发生更新时,对离线推荐结果进行更新。不像离线算法,天然以MaxCompute(原ODPS)表作为输入和输出,近线程序的输入数据可以来自多个数据源,如在线的表格存储(原OTS),以及用户的API请求,又或者是程序中的变量;输出可以是程序变量,或者写回在线存储,或者返回给用户。出于安全性考虑,推荐引擎提供了一组SDK供客户自定义在线代码读写在线存储(Table Store),不允许直接访问,所以需要定义每类在线存储的别名和格式。对于需要频繁使用的在线数据,无论其来自在线存储还是用户的API请求,RecEng会预先读好,保存在在线程序的变量中,客户自定义代码可以直接读写这些变量中的数据。


A/B 测试
       支持推荐算法流程的A/B测试,辅助推荐算法优化提升。允许一个场景下存在多条推荐流程(rec_path),A/B 测试也是针对同属于一个场景的不同推荐流程来进行的,在进行A/B 测试时,同一个场景下的每个推荐流程都会被分配一定的流量比例,这个比例是可以在产品界面中配置的。在执行推荐API时,推荐引擎第一步就会按照比例随机分配流量,把当前用户分配到某个推荐流程中,然后再执行这个推荐流程的在线流程。RecEng在分配流量时是完全随机的,不遵从任何规则,如某个用户一定要分配到某一条推荐流程中这样的规则。


API

推荐引擎提供多个API供客户用于业务系统对接,包括:启动数据预处理任务API、启动离线任务API、启动效果计算任务API、查询任务状态API、在线获取推荐结果API(推荐API)、在线数据更新API、系统日志采集API(日志API)。这些API需要客户集成,RecEng建议客户端将这些API统一集成在自己搭建的服务器上。