全部产品
阿里云办公

测试场景

更新时间:2017-12-20 15:14:12

“测试场景”页面

“测试场景”页面用于展示测试环境中的场景信息和服务,在测试场景中,您所进行的算法计算,用于辅助您进行推荐算法的测试,推荐引擎提供的“测试”和“线上”的算法计算的数据是进行隔离的(使用的原始输入数据是同一份,中间数据和结果数据存于不同的数据表中)。当您将测试场景“发布上线”到线上场景后,需要在线上场景中再次进行计算。

测试场景的使用流程是:

  1. 指标设置:指定在当前场景下,对于期望达到的效果的量化评估指标。例如:PV点击率。(当测试整体流程完成,并将模型『上线』后,可在『线上』tab内找到相应的场景,查看『效果报表』,报表中的指标项即为本步骤中预设的『指标设置』)
  2. API参数设置:设置推荐API的入参都包含哪些参数。不同场景的入参是有可能不同的。例如做APP首页的『猜你喜欢』时,只需要传入用户ID;而在商品详情页做关联推荐时,还需要传入商品ID;若在类目下做推荐时,还需要传入类目ID等等。
  3. 算法策略设置:在不同的推荐场景下,选择使用不同的算法策略。不同的算法策略,对于用于推荐的数据有着不同的要求。例如『基于物品内容的推荐』,主要通过物品的属性,描述,关键词,生成物品特征,进而计算物品相似度,然后基于用户行为和物品相似度来进行推荐。
  4. 在线流程设置:对『算法策略』中产生的多个结果集进行排序。例如:将基于因子分解的推荐结果集的排在前面,基于物品内容的推荐结果集放在次要,默认推荐的结果集(热榜等)放在最后。
  5. 计算 -> 在线测试 -> 日志查看:基于测试数据进行模型计算,并在线测试模型结果、查看日志
  6. 上线 -> 在线测试 -> 日志查看:基于线上数据进行模型计算,并在线测试模型结果、查看日志

请先点击下方大图,查看测试场景的全貌。接下来我们将一一解释界面上的功能。

SCN1

1. 指标设置

指定在当前场景下,对于期望达到的效果的量化评估指标。例如:PV点击率。(当测试整体流程完成,并将模型『上线』后,可在最左侧『线上』tab内找到相应的场景,查看『效果报表』,报表中的指标项即为本步骤中预设的『指标设置』)指标设置

  • 指标设置对于行为日志数据有一定的要求:
    • 确保您上传的行为表中,需要有与指标相对应的bhv_type(行为类型)。例如,若您想计算click_pv,那么需确保在行为表的bhv_type有click行为类型。行为表的数据格式规范请点击这里
    • 确保您在收集行为日志埋点时,带上了trace_id字段信息。trace_id用于打穿从曝光、点击直到后续各转化环节的链路,例如当曝光行为、点击行为的trace_id相同时,则认为该点击是由该次曝光带来。日志埋点规范请点击这里
  • 新建指标:指标公式的撰写方式
    • 变量的撰写:以${bhv_type}_pv为例,若要计算点击pv,则以click_pv来命名变量。${bhv_type}的取值规范请参见行为表的数据格式规范。目前支持的变量只有${bhv_type}_pv和${bhv_type}_uv两种。
    • 公式的撰写:在变量的基础上,可定义运算符来撰写公式。目前支持的运算符支持四则运算及半角括号。公式必须是变量之间的运算,不支持常数。举例:若要计算『UV点击率』,则公式可写成click_uv/view_uv。请注意,在公式内不要添加空格。
    • 每次撰写完公式,请注意点击右上角的『保存』。写好的公式可以复用,通过新建指标左侧的『添加指标』按钮。
  • 当测试整体流程完成,并将模型『上线』后,可在最左侧『线上』tab内找到相应的场景,查看『效果报表』,报表中的指标项即为本步骤中预设的『指标设置』。

2. API参数设置

设置推荐API的入参都包含哪些参数。不同场景的入参是有可能不同的。例如做APP首页的『猜你喜欢』时,只需要传入用户ID;而在商品详情页做关联推荐时,还需要传入商品ID;若在类目下做推荐时,还需要传入类目ID等等。API参数

  • class参数的含义:当做分类下的推荐时,可同时传入多个类目ID
  • API参数设置好后,在模型『上线』后,可在左侧『线上』Tab内的『API调试』中,看到所设置的入参。

3. 算法策略设置

在不同的推荐场景下,选择使用不同的算法策略。不同的算法策略,对于用于推荐的数据有着不同的要求。例如『基于物品内容的推荐』,主要通过物品的属性,描述,关键词,生成物品特征,进而计算物品相似度,然后基于用户行为和物品相似度来进行推荐。所有算法策略都是系统预设的。根据您的业务需要,请选择合适的算法策略。

可选择的算法策略

算法策略

算法策略可以选择1个或多个。即使是相同的算法策略,也可以选择多个,对相同策略配置不同的输入。算法策略将输出多个离线推荐结果集(推荐结果集即用户ID->推荐list的集合)

注:算法策略名称之后的数字为算法策略的版本号。

各算法策略简介如下(详情请点击下方链接查看,建议由算法工程师来阅读文档并应用):

  • 基于因子分解的推荐:基于因子分解将用户对物品的行为分解成用户特征向量和物品特征向量,再使用这些向量相乘得到用户推荐候选集和物品相关推荐候选集。
  • 基于内容的推荐:基于物品内容的推荐,主要通过物品的属性,描述,关键词,生成物品特征,进而计算物品相似度,然后基于用户行为和物品相似度来进行推荐。
  • 基于UserCF的协同过滤:基于用户行为,利用UserCF算法计算用户之间的相关性,再通过用户行为和用户相关性得到用户推荐候选集。
  • 基于ItemCF的协同过滤:基于用户行为,利用ItemCF算法计算物品之间的相关性,再通过用户行为和物品相关性得到用户推荐候选集。
  • 默认推荐:提供一类保底非个性化的推荐结果。按照算法策略参数来决定算法计算逻辑。其中:simple_pv,weighted_uv需要有用户行为数据,simple_recent,weighted_iteminfo,bucket_random则基于物品自身属性。
  • 带用户标签冷启动:离线根据用户tag产出用户分组,及分组的推荐物品(要求:行为数据丰富,能产出推荐结果集)。当新用户注册时,根据新用户的tag把用户归到相应分组中,并获取分组的推荐结果。
  • 不带标签的用户冷启动:根据物品属性特征对物品进行分组。采用EE算法实时计算用户对分组的偏好并进行推荐。数据要求:物品表中的物品可抽取特征。
  • 物品冷启动:离线对物品进行聚类分组(默认分20个组),并计算用户对每个聚类的偏好(要求离线行为比较丰富)。当有新物品注册时,实时计算物品特征并归到相应的物品分组中,根据用户对聚类的偏好,实时推荐新物品。

算法策略的输入输出

输入输出

各算法策略对输入数据有着不同的要求,具体要求请参见各算法策略的详细说明。

算法策略的参数设置

参数设置

点击算法策略右上角的『参数设置』,可自定义参数设置。参数设置的具体过程请参见各算法策略的详细说明。建议由算法工程师来阅读文档。

算法策略设置完毕后,请务必点击页面右上角的『保存』。

4. 在线流程设置

对『算法策略』中产生的多个结果集进行排序。例如:将基于因子分解的推荐结果集的排在前面,基于物品内容的推荐结果集放在次要,默认推荐的结果集(热榜等)放在最后。在线流程

  • AB Test分配方式:基于PV分配——每一个PV请求都会进行ABTest,单一用户所体验到的排序策略是随机的;基于UV分配——基于用户粒度的ABTest,单一用户所体验到的排序策略是一致的。
  • 添加在线流程:通过添加在线流程,来添加多个排序策略。多个在线流程的『AB Test流量占比』相加后需要等于100%。
  • 单个在线流程中的配置方法:
    • 添加推荐候选集:从上一步『算法策略』所配置的结果集中,勾选多个结果集,作为当前在线流程的排序候选集。
    • 推荐结果设置中的『优先级』:优先级高的,将确保展示在优先级低的之前;优先级相同的,则按照所设置的『同优先级数据占比』来分配占比,同优先级下的数据占比之和需要等于100%。
    • 过滤方式:是否要基于上一步『算法策略』所输出的过滤集合来对推荐结果进行过滤。当算法策略没有过滤集合输出时,则该配置不出现。
    • 结果排序模型:目前仅支持默认排序模型,即推荐引擎的底层算法将会自动为推荐结果赋上score,并按照score从高到低来排序。

5. 计算 -> 在线测试 -> 日志查看

基于测试数据进行模型计算,并在线测试模型结果、查看日志。

计算

计算:针对指定分区的数据(用户、物品、行为三张表),计算出全量的离线推荐结果。

启动算法计算的方式有三种:

在线测试(针对测试数据)

在线测试,是在计算出的全量结果基础上,指定API的输入数据并进行在线测试。在线测试之前,需确保当前场景已经成功执行过『计算』操作。在线测试将从『计算』所产生的离线结果集中进行查询测试。

在线测试-测试数据

  • 在线流程-下拉框:全部流程-即可同时看多个在线流程合并进行ABTest的计算结果;也可选择单独查看某一个在线流程的计算结果。
  • 请求参数:来自您在『API参数』中的设置。
  • 离线数据来源:选择『测试数据』。

日志查看

日志查看

日志的类型有如下几种:

  • 离线任务:可查看『计算』任务的日志。
  • 数据预处理:是系统在『计算』任务之前自动完成的任务,查看预处理日志。
  • 数据质量分评估:来自数据处理的步骤,查看数据质量分评估日志。
  • 效果计算:效果报表的计算任务日志。

当任务执行失败,可点击『查看』,定位失败的处理节点。

DAG1

DAG2

6. 上线 -> 在线测试 -> 日志查看

基于线上数据进行模型计算,并在线测试模型结果、查看日志。

上线

上线:从零开始、或以『计算』的结果作为起点,daily用最新分区的数据进行模型的更新。您需自行确保上游的数据生产调度,从而定时和及时地产生要用于模型更新的数据集。对于触发推荐模型更新计算的时间点,亦由您自行触发。

在线测试(针对线上数据)

在线测试之前,您需要确保当前场景已经成功执行过『上线』操作。在线测试将从线上的离线结果集中进行查询测试。

针对线上数据的在线测试配置,与针对测试数据的在线测试相似。您只需将离线数据来源设置为『线上数据』。

日志查看

不再赘述。