全部产品
阿里云办公

步骤四:配置推荐引擎

更新时间:2018-03-30 11:04:07

本章节内容介绍了如何通过管理控制台的图形界面配置推荐引擎,通过简单的界面化操作,完成数据和算法的配置。

操作步骤如下:

  1. 添加资源
  2. 添加推荐业务
  3. 添加配置推荐场景
  4. 查看离线处理结果
  5. 使用API实现首页推荐

1. 添加资源

阿里云控制台“大数据(数加)”分类下,点击左侧导航栏中的“推荐引擎”,进入推荐引擎的管理界面:

111

进入推荐引擎管理页面后,点击顶层导航栏中的“资源管理”先把我们准备工作中创建的资源添加进来,让推荐引擎知道后续计算时需要使用的资源:

112

需要添加的资源有三类:大数据计算服务、表格存储服务以及云监控,其中大数据计算服务是存储数据和进行推荐算法计算的地方,表格存储是用来保存结果的,可以支持在线访问,云监控是用来监控整个处理过程的,有问题的时候可以报警。前一项是必选项,后两项是可选项,此处我们只配置必选项。

113

首先,添加我们开通的MaxCompute Project到大数据计算服务资源:点击右上角的“添加云计算资源”,在弹出的页面中添加MaxCompute Project:

114

其中,“云计算资源标识”是该资源的名称,只要符合命名规则即可,“项目名称”为我们专门创建的MaxCompute project的名字,此case中为 movie_rec_test,AccessID和AccessKey可以在阿里云管理控制台首页中去获得,填写完成后点击“提交”。

2. 添加推荐业务

推荐业务是推荐引擎的基本管理单元,业务定义了算法所能使用的数据范围,例如商品推荐业务的数据范围是用户数据、商品数据和行为数据等。在推荐业务中,最重要的事情就是配置需要使用的数据。

点击顶层菜单的业务列表菜单,在显示的下拉列表中点击“新建业务”,添加一个新的推荐业务:

115

在弹出的“新建业务”页面中,包含了业务code、业务名称、业务依赖的大数据计算资源(离线计算资源)以及在线存储资源:

注意: 业务Code在推荐引擎中是全局唯一,您填写的名称可能会和其他客户填写的名称冲突。

116

“大数据计算资源”选择 MyFirstRecEngine,在线存储资源选择选择“系统自带在线存储”。

点击确定后,系统会提示您接下来要开始配置数据,点击“添加数据”进入配置数据页面:

1117

在数据配置页面,物品属性维度表不需要填写数据表名称,其他都按要求输入表名:

118

将我们在之前的实验中添加过的数据表名称,分别填写到对应的位置:

“用户表”为movielens_user_meta,

“用户属性维度表”为 movielens_user_meta_config

“物品表”为movielens_item_meta

“行为表”为 movielens_user_behavior

信息填充完成后,点击保存,此时推荐引擎左侧菜单栏会显示“测试”和“线上”这两个菜单。点击“测试”菜单,可进入测试场景配置页面。点击“线上”按钮,可进入线上场景配置页面。

3. 添加配置推荐场景

一个推荐业务支持包含多个推荐场景,每个推荐场景可以看做是APP或网站中提供个性化推荐的功能模块。场景隶属于某一个业务,使用到的数据就是在业务中配置的数据。

场景包含一个或多个算法策略,每一个算法策略代表一种推荐物品的逻辑,由离线流程和在线流程组合而成,离线流程和在线流程分别由多个算法拼装组成。离线流程用于处理批量数据计算,在线流程用于处理在线数据计算。

接下来我们将创一个“首页电影推荐”的推荐场景,点击左侧“测试”,系统会显示您尚未添加过推荐场景,点击“新建场景”,在弹出显示的新建场景页面,输入场景信息后点击确定完成创建:

121

122

123

此时在测试场景列表上,会显示我们刚创建的场景。接下来要对所创建场景进行进一步的配置:

添加指标

指标是和将来场景上线后的统计报表有关,需要和行为表的数据相匹配。一般涉及的行为包括:浏览,点击和消费等。在使用MovieLens数据集中,由于行为都是打分(grade),所以这里可以不设置。

124

配置API参数

这部分是配置“推荐API”所需要的输入参数,部分参数和算法策略也相关(详情需要查看对应的算法策略说明)。本实验中场景为首页推荐,只需要使用用户ID即可。

125

设置算法策略

算法策略中系统内置了业界常见的推荐算法,部分算法策略同时包含了离线算法和近线算法。离线的计算发生在MaxCompute中,离线算法用于将MaxCompute中的数据进行算法计算,再将计算得到的推荐结果传输到在线存储中供在线/近线计算使用。近线和在线的计算都发生在在线服务中,区别在于近线计算的实时数据输入是来自于日志API上传的数据(例如看过的电影不需要再被推荐,看过的电影通过日志API上传行为数据,近线计算接收数据后会将离线推荐结果中看过的电影剔除掉)。在线计算的实时数据输入是来自于推荐API,典型例子就是通过推荐API输入一个用户ID,在线计算需要在毫秒级响应中立即做计算(过滤、排序)并返回推荐结果。

此处我们选择默认推荐,添加策略后需要点击保存按钮。需要注意的是,不同的算法策略经过计算输出的推荐结果会不同,这些推荐结果将在后面的配置在线流程中进行使用。

545

由于我们的实验数据的主要行为是grade,所以点击ItemCF算法策略的参数设置,将行为权重设置为grade的行为,推荐列表返回的item数量也可以进行修改设置。

546

配置在线流程

在线流程可以设置ABtest,即多种推荐算法进行对比,当然这也需要在前面算法策略设定时选择多种算法。对于推荐结果设置,也可以选择多种方式生成推荐候选集。我们这里设置为用户对物品的推荐候选集。

127

启动离线计算

算法配置完成后,在场景列表上点击“计算”,在弹出的页面中选择需要计算的数据的日期,再点击启动计算,即可触发离线计算。

128

点击右侧日志查看按钮,可查看所有计算的离线任务和LOG信息。 在日志列表页点击“查看”按钮,会显示算法计算的路程节点图,双击节点可查看详细的LOG内容129

上线场景

在推荐引擎中,测试场景用于进行测试,线上场景用于对接您的APP。测试场景中的算法配置好以后,可以将场景“上线”到线上,在线上场景里可以调用推荐API进行接口测试和对接。

301

302

上线完成后,点击“线上”即可看到上线的场景列表。此时可以在线上的场景列表中选择指定的场景进行离线计算、查看已配置的算法策略、调试推荐API等。

303

4. 查看离线处理结果

本章节为附加阅读内容,跳过不会影响本实验。

离线处理的推荐结果,会保存在在线存储中。如果您使用的自己购买的“表格存储”云产品,则可以在表格存储中看到离线产出的结果数据。登录阿里云官网(www.aliyun.com),点击“管理控制台”,进入管理控制台首页,点击“表格存储”:

5273

可以看到我们之前创建的实例,点击进入:

5274

可以看到有四张新创建的表:

5275

离线计算的结果就保存在这四张表中,后续的调用都会访问这些表,得到推荐列表。如果在线调用的并发量比较大,可以调整表的读写吞吐量:

5276

在弹出的修改界面中,调整读写吞吐量:

5277

5. 使用API实现首页推荐

现在我们可以通过API调用来访问离线计算的结果,得到针对用户的个性化推荐的电影列表。

如果一个标识为19(movielens_user_meta:user_id=19)的40岁的男性用户(movielens_user_meta:user_id=19)正停留在首页,该用户的历史评分记录如下(movilens_user_behavior:user_id=19, movielens_item_meta):

用户 电影 评分
19 Fish Called Wanda,A(1988) 4.0
19 Evil DeadII(1987) 3.0
19 Indiana Jones and the Last Crusade(1989) 3.0
19 Contact(1997) 4.0
19 Scream(1996) 3.0
19 Liar Liar(1997) 3.0
19 Butch Cassidy and the Sundance Kid(1969) 5.0
19 Groundhog Day(1993) 4.0
19 MASH(1970) 4.0
19 Chasing Amy(1997) 2.0
19 Rainmaker,The(1997) 4.0
19 Titanic(1997) 2.0
19 Everyone Says I Love You(1996) 4.0
19 Crash(1996) 4.0
19 Adventures of Priscilla,Queen of the Desert,The(1994) 3.0
19 Get Shorty(1995) 4.0
19 Stand by Me(1986) 3.0
19 American President,The(1995) 3.0
19 Babe(1995) 5.0
19 Eve’s Bayou(1997) 4.0

我们可以对该用户显示哪些推荐电影?

实际上是通过API接口查看“首页推荐”的结果,在“我的推荐”页面里,点击“首页推荐”的“API调试”:

666

输入请求参数,点击“执行”,即可得到推荐结果。

关联物品信息表,得到影片信息:

用户 电影 推荐得分
19 Don Juan DeMarco (1995) 1.0
19 Red Firecracker, Green Firecracker (1994) 0.99
19 A Chef in Love (1996) 0.98
19 Here Comes Cookie (1935) 0.97
19 Entertaining Angels: The Dorothy Day Story (1996) 0.96
19 Beautiful Thing (1996) 0.95

即我们可以将上述电影的相关信息显示在首页,根据该用户的历史行为,有理由判断他对这些电影更感兴趣。

对于不同的用户,推荐引擎计算出的可推荐电影列表不同;对于不同的用户,登录首页后看到的推荐电影不同。这就是我们通常说的“千人千面”,即个性化推荐。

您可以在您的网站或者APP中调用此API接口,正确传入参数后,即可得到推荐结果。