阿里云推荐引擎离线流程的主要作用是 site:blog.csdn.net

优采云 发布时间: 2020-08-10 00:18

  产品概述:

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

  课程链接:阿里云推荐引擎使用教程

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

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

  基本概念:

  客户/租户(org/tenant)

  指RecEng的使用者,系统中由其阿里云帐号代表。通常顾客是一个组织,RecEng中常用org表示顾客。

  用户(user)

  指顾客的用户,即RecEng使用者的用户。推荐是一个2C的服务,使用推荐服务的顾客必然有其自己的用户,RecEng使用者的用户简称为“用户”,系统中常用user表示用户。

  物品(item)

  指被推荐给用户的内容,可以是商品,也可以是歌曲,视频等其他内容,系统中常用item表示物品。

  业务(biz)

  业务针对数据集定义,定义了算法所能使用的数据范围。一个顾客在RecEng上可以有多个业务,不同的业务必然有不同的数据集。RecEng要求每位业务提供四类数据(不要求全部提供):用户数据,物品数据,用户行为数据,推荐疗效数据。每一组这样的数据就构成一个业务。系统中常用biz表示业务。

  比如某顾客A有两类被推荐的物品,分别是视频和歌曲,于是顾客A可以在RecEng上构建两个业务M和N,其中M的物品数据为视频,N的物品数据为歌曲,其他的数据(指用户数据,用户行为数据等)可以都相同。在这些方案下,业务M和N的数据是独立的,即业务M其实能看到用户对于歌曲的行为,但是业务M中不收录歌曲的物品数据,所以会扔掉用户对于歌曲的行为;如果业务M中某用户只对歌曲有行为,对视频没有行为,业务M也会扔掉这类用户。反之对业务N亦然。

  一个业务最好只推荐一类物品。多类物品的推荐在后续的行业模板会有支持,需要引入蓝筹股(plate)的概念,一份业务数据可以生成多个蓝筹股的数据集,场景绑定某个蓝筹股进行推荐算法估算。

  场景(scn)

  场景指的是推荐的上下文,每个场景就会输出一个API,场景由推荐时可用的参数决定。有两种场景最为常见,分别是首页推荐场景和详情页推荐场景。顾名思义,在执行首页推荐时,可用的参数只有用户信息;而在执行详情页推荐时,可用的参数不仅用户信息,还包括当前详情页上所展示的物品信息。系统中常用scn表示场景。

  一个业务可以收录多个场景,即对于某个业务A,它收录多个首页场景也是完全可以的。

  事实上,回到场景的原创定义,场景只是由推荐的上下文决定,客户完全可以按照自己的需求构建全新的场景,比如针对搜索关键词的推荐场景,这时可用的参数不仅用户信息,还有用户所输入的关键词。

  流程(flow)

  算法流程指数据端到端的处理流程,一部分流程属于业务范畴,如数据导出流程,效果估算流程,数据质量分估算流程;一部分属于场景,比如场景算法流程。从数据源类型和产下来界定,又分为离线流程,近线流程,在线流程

  离线流程

  一般情况下,离线流程的输入和输出都是MaxCompute(原ODPS)表,所以离线数据规范虽然上是一组MaxCompute表的格式规范,包括接入数据、中间数据和输出数据三类数据的格式规范。接入数据指顾客离线提供的用户、物品、日志等数据,中间数据是在离线算法流程中形成的各类中间性质的结果数据表,输出数据是指推荐结果数据表,该结果最终将会被导出到在线储存中,供在线估算模块使用。

  近线流程

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

  在线流程

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

  一个场景只收录一个离线流程和一个逾线流程,可以收录多个在线流程,用于支持A/BTest。

  算法策略(Algorithm Strategy)

  算法策略定义了一套离线/近线流程。并且透出相关的算法参数,帮助顾客建立自己的算法流程。一个场景可以配置多个算法策略,最终会合并执行,产出一系列推荐候选集和过滤集,在线流程通过引用那些候选集来完成个性化推荐。

  作业/任务(task)

  作业指运行中的离线流程实例,作业和离线流程的关系完全等同于进程和程序的关系。每个作业都是不可重入的,即对每位离线流程,同一时间只容许运行一份实例。作业直接存在上下游关系,如果上游作业失败,下游任务也会被取消。

  更多精品课程点击:阿里云大学

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线