第 4 步:使用指标评估解决方案版本 - Amazon Personalize
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

第 4 步:使用指标评估解决方案版本

您可以通过脱机和在线指标评估解决方案版本的性能。在线指标是您在用户与实时建议互动中观察到的经验结果。例如,您可能会在用户浏览目录时记录用户的点击率。您负责生成和记录任何在线指标。

离线指标是 Amazon Personalize 在您培训解决方案版本时生成的指标。您在创建市场活动并提供推荐之前可以使用离线指标来评估模型的绩效。离线指标允许您查看修改解决方案的超级参数的效果,或比较使用相同训练数据但使用不同配方的解决方案的结果。对于本部分的其余部分,术语指的是离线指标

为了获取绩效指标,Amazon Personalize 将输入交互数据拆分为两组:培训集和测试集。培训集包含 90% 的用户及其交互数据。测试集包含剩余 10% 的用户及其交互数据。Amazon Personalize 然后使用培训集创建解决方案版本。

培训完成后,Amazon Personalize 会为解决方案版本提供测试集中每个用户 90% 最早的数据作为输入。Amazon Personalize 然后通过将解决方案版本生成的建议与测试集中每个用户最新 10% 的数据中的实际交互进行比较来计算指标。

为了使比较目的,我们推荐使用热门程度-计数配方,该配方推荐了前 K 个最热门的项目。

重要

为了使 Amazon Personalize 生成解决方案版本指标,您的输入数据集组中必须至少包含 10 个数据点。

检索指标

您通过调用 GetSolutionMetrics 操作为特定解决方案版本检索指标。

使用 Amazon Python 开发工具包检索指标

  1. 创建解决方案版本。有关更多信息,请参阅创建解决方案

  2. 使用以下代码来检索指标。

    import boto3 personalize = boto3.client('personalize') response = personalize.get_solution_metrics( solutionVersionArn = 'solution version arn') print(response['metrics'])

下面是来自解决方案版本的输出示例,该输出使用个性化用户配方有一个额外的优化目标。

{ "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/<version-id>", "metrics": { "coverage": 0.27, "mean_reciprocal_rank_at_25": 0.0379, "normalized_discounted_cumulative_gain_at_5": 0.0405, "normalized_discounted_cumulative_gain_at_10": 0.0513, "normalized_discounted_cumulative_gain_at_25": 0.0828, "precision_at_5": 0.0136, "precision_at_10": 0.0102, "precision_at_25": 0.0091, "average_rewards_at_k": 121.214 } }

上述指标在下面使用以下术语进行描述:

  • 相关推荐 是指与特定用户的测试数据中的值匹配的推荐。

  • 排名 是指推荐项在推荐列表中的位置。位置 1(列表的顶部)被假定为与用户最相关。

  • 查询 是指 GetRecommendations 调用的内部等效项。

对于每个指标,数字越大越好。

覆盖

一个评估指标,该指标告诉您 Amazon Personalize 推荐使用您的模型的唯一项占交互和项目数据集中的唯一项的总数的比例。要确保 Amazon Personalize 推荐更多商品,请使用覆盖率较高的模型。具有项目浏览功能的配方(如用户个性化)的覆盖范围高于不具备项目浏览功能的配方,例如流行度计数。

平均值 25 处的倒数等级

评估模型排名最高的建议的相关性的评估度量。Amazon Personalize 计算此指标,当对所有推荐请求中的前 25 个推荐中的最相关推荐排名时,该模型的平均准确性。

如果您对单个排名最高的推荐感兴趣,那么此指标是很有用的。

标准化贴现累积增益 (NCDG) (5/10/25)

一种评估量度,它告诉您模型排名高的建议的相关性,其中 K 是 5、10 或 25 个建议的样本数量。Amazon Personalize 计算方法是根据推荐在排名列表中的位置分配推荐的权重,其中每个推荐被折扣一倍(给定较低的权重),具体取决于其位置。K 处的归一化折扣累积增益假定列表中较低的建议不如列表中较高的建议相关性。

Amazon Personalize 使用加权系数1/log(1 + position),其中列表的顶部是位置1

此指标奖励出现在列表顶部附近的相关项目,因为列表顶部通常会引起更多关注。

K 处的精度

一种评估衡量指标,它告诉您模型的建议基于 K(5、10 或 25)建议案的样本数量的相关性。Amazon Personalize 将根据前 K 项建议中的相关建议数量(除以 K)来计算此指标,其中 K 为 5、10 或 25。

此指标奖励相关项目的精准推荐。

平均奖励 _AT_k

当您为具有优化目标的解决方案创建解决方案版本(培训模型)时,Amazon Personalize 会生成average_rewards_at_k指标。分数average_rewards_at_k告诉您解决方案版本在实现目标方面的性能如何。Amazon Personalize 计算此指标的方法是将互动产生的总奖励(例如,点击总收入)除以推荐的可能奖励总额。得分越高,每个用户可以期望从推荐中获得的平均收益就越多。

例如,如果您的目标是实现收入最大化,Amazon Personalize 会将互动产生的总收入(例如,用户点击的所有项目的收入)除以推荐的可能总收入。由此产生的average_rewards_at_k分数告诉你平均可以从推荐中获得多少收入。

有关更多信息,请参阅 针对附加目标优化解决方案

Example

下面是一个简单的示例,其中,为了生成指标,解决方案版本将为特定用户生成一个推荐列表。第二个和第五个推荐与此用户的测试数据中的记录匹配。这些是相关的推荐。如果将 K 设置为 5,将为该用户生成以下指标。

reciprocal_rank

计算:1/2

结果:0.5000

normalized_discounted_cumulative_gain_at_5

计算:(1/log(1 + 2) + 1/log(1 + 5)) / (1/log(1 + 1) + 1/log(1 + 2))

结果:0.6241

precision_at_5

计算:2/5

结果:0.4000

既然您已评估您的解决方案版本,请通过部署最佳解决方案版本创建一个市场活动。有关更多信息,请参阅创建市场活动