sta*_*tes 6 amazon-web-services amazon-personalize
有人可以帮助我用外行的术语解释 AWS Personalize 解决方案版本指标,或者至少告诉我这些指标在理想情况下应该是什么样子?
我对机器学习一无所知,并希望利用 Personalize,因为它作为“无需先前知识”的 ML SaaS 进行营销。然而,我的解决方案结果中的“解决方案版本指标”似乎需要相当高水平的数学知识。
我的解决方案版本的指标如下:
归一化贴现累计
在5:0.9881,在10:0.9890,在25:0.9898
精度
在5:0.1981,在10:0.0993,在25:0.0399
平均倒数排名
在25:0.9833
研究
我浏览了个性化开发人员指南,其中包括第 72 页上每个指标的简短定义。我还尝试浏览维基百科关于折扣累积增益和平均互惠排名的文章。通过阅读,这是我对每个指标的解释:
NDG = 推荐相关性的一致性;第一条建议和最后一条建议一样相关吗?
精度 = 推荐给用户的相关性;您的建议与所有用户的相关性如何?
MRR = 列表中第一个推荐与列表中其他推荐的相关性;您的第一个推荐与每个用户的相关性如何?
如果这些解释是正确的,那么我的解决方案指标表明我在推荐不相关的内容方面是高度一致的。这是一个有效的结论吗?
sta*_*tes 18
好的,我的公司有 Developer Tier Support,所以我能够从 AWS 得到这个问题的答案。
答案摘要
指标越接近“1”越好。我对指标的解释非常正确,但我的结论却不是。
显然,这些指标(以及一般的个性化)并没有考虑用户对某个项目的喜欢程度。个性化只关心相关推荐多久到达用户手中。这是有道理的,因为如果您获得队列中的第 25 个项目并且不喜欢您所看到的任何内容,您就不可能继续查找。
鉴于此,我的解决方案中发生的事情是第一个建议是相关的,但其他建议都无关紧要。
AWS 的详细回答
我将首先从相对简单的问题开始:这些指标的理想值是什么,以便解决方案版本比另一个解决方案版本更受欢迎?上述问题的答案是,对于每个指标,数字越大越好。[1] 如果您有多个解决方案版本,请优先选择这些指标值较高的解决方案版本。请注意,您可以通过覆盖默认配方参数 [2] 创建多个解决方案版本。并通过使用超参数 [3]。
第二个问题:如何理解和解释 AWS Personalize Solution 版本的指标?我可以从我的研究中确认,您在案例中为这些指标提供的定义和解释是有效的。
在我解释每个指标之前,这里是机器学习中一个主要概念的入门。这些指标是如何计算的?创建解决方案版本期间的模型训练步骤将输入数据集分为两部分,训练数据集 (~70%) 和测试数据集 (~30%)。训练数据集在模型训练期间使用。模型经过训练后,将用于预测测试数据集的值。一旦做出预测,它就会根据测试数据集中的已知(和正确)值进行验证。[4]
我进一步研究以找到更多资源来理解这些指标背后的概念,并进一步阐述了 AWS 文档中提供的示例。[1]
"mean_reciprocal_rank_at_25"
让我们先了解 Reciprocal Rank:例如,电影流媒体服务使用解决方案版本预测特定用户的 5 部推荐电影列表,即 A、B、C、D、E。一旦比较这 5 部推荐电影针对该用户喜欢的实际电影(在测试数据集中),我们发现只有电影 B 和 E 被用户实际喜欢。Reciprocal Rank 将只考虑第一个相关(根据测试数据集正确)推荐,即位于 rank 2 的电影 B,它会忽略位于 rank 5 的电影 E。因此 Reciprocal Rank 将为 1/2 = 0.5现在让我们扩展上面的例子来理解平均倒数排名:[5] 假设我们对三个用户进行了预测,并且推荐了以下电影。
用户 1:A、B、C、D、E(用户喜欢 B 和 E,因此倒数排名是 1/2)
用户 2:F、G、H、I、J(用户喜欢 H 和 I,因此倒数排名是 1/3)
用户 3:K、L、M、N、O(用户喜欢 K、M 和 N,因此倒数排名是 1)
平均倒数排名将是所有个人倒数排名的总和除以为预测运行的查询总数为 3。 (1/2 + 1/3 + 1)/3 = (0.5+0.33+1)/3 = (1.83)/3 = 0.61对于 AWS Personalize Solution 版本指标,所有查询的前 25 条建议中第一个相关建议的倒数排名的平均值称为“mean_reciprocal_rank_at_25”。
“precision_at_K”
可以表述为模型以最少的推荐量提供相关元素的能力。Coursera 提供的以下免费视频中描述了精确度的概念。[6] 可以在这里找到一篇关于同一主题的非常好的文章。[7]让我们考虑相同的例子,电影流服务使用解决方案版本为特定用户预测 5 部推荐电影的列表;A、B、C、D、E。一旦将这 5 部推荐电影与该用户喜欢的实际电影(测试数据集中的正确值)进行比较,我们就会发现用户实际上只喜欢电影 B 和 E。precision_at_5 将是 5 部电影中正确预测的 2 部电影,可以表示为 2/5=0.4
“normalized_discounted_cumulative_gain_at_K”
该指标使用对数和对数比例的概念为相关项目(测试数据集中的正确值)分配权重因子。对数和对数标度的完整描述超出了本文档的范围。使用对数标度的主要目标是将范围广泛的数量减少到很小的范围。discounted_cumulative_gain_at_K
让我们考虑相同的例子,电影流服务使用解决方案版本为特定用户预测 5 部推荐电影的列表;A、B、C、D、E。一旦将这 5 部推荐电影与该用户喜欢的实际电影(测试数据集中的正确值)进行比较,我们就会发现用户实际上只喜欢电影 B 和 E。让我们考虑相同的例子,电影流服务使用解决方案版本为特定用户预测 5 部推荐电影的列表;A、B、C、D、E。一旦将这 5 部推荐电影与该用户喜欢的实际电影(测试数据集中的正确值)进行比较,我们就会发现用户实际上只喜欢电影 B 和 E。要在 5 处产生累积折现收益 (DCG),每个相关项目根据其在前 5 个推荐中的位置分配一个加权因子(使用对数标度)。这个公式产生的价值称为“贴现价值”。
公式是 1/log(1 + position)
因为 B 在位置 2 所以贴现值是 = 1/log(1 + 2)
因为 E 在位置 5 所以贴现值是 = 1/log(1 + 5 )
累积折扣收益 (DCG) 的计算方法是将两个相关项目的折扣值相加 DCG = ( 1/log(1 + 2) + 1/log(1 + 5) )normalized_discounted_cumulative_gain_at_K
首先,什么是“理想的DCG”?在上面的例子中,理想的预测应该看起来像 B、E、A、C、D。因此,在理想情况下,相关项目应该在数字 1 和 2 处。为了产生 5 的“理想 DCG”,每个相关项目根据其在前 5 个推荐中的位置分配一个加权因子(使用对数标度)。这个公式产生的价值称为“贴现价值”。
公式为 1/log(1 + 位置)。
由于 B 在位置 1 所以贴现值是 = 1/log(1 + 1)
因为 E 在位置 2 所以贴现值是 = 1/log(1 + 2)
理想的 DCG 是通过添加贴现值来计算的两个相关项 DCG = ( 1/log(1 + 1) + 1/log(1 + 2) )归一化贴现累积增益 (NDCG) 是 DCG 除以“理想 DCG”。DCG / 理想 DCG = (1/log(1 + 2) + 1/log(1 + 5)) / (1/log(1 + 1) + 1/log(1 + 2)) = 0.6241
我希望上面提供的信息有助于理解这些指标背后的概念。
[1] https://docs.aws.amazon.com/personalize/latest/dg/working-with-training-metrics.html
[2] https://docs.aws.amazon.com/personalize/latest/dg /customizing-solution-config.html
[3] https://docs.aws.amazon.com/personalize/latest/dg/customizing-solution-config-hpo.html
[4] https://medium.com/@ m_n_malaeb/recall-and-precision-at-k-for-recommender-systems-618483226c54
[5] https://www.blabladata.com/2014/10/26/evaluating-recommender-systems/
[6] https:// /www.coursera.org/lecture/ml-foundations/optimal-recommenders-4EQc2
[7] https://medium.com/@bond.kirill.alexandrovich/precision-and-recall-in-recommender-systems-and- some-metrics-stuff-ca2ad385c5f8
| 归档时间: |
|
| 查看次数: |
1096 次 |
| 最近记录: |