SIMS 配方 - Amazon Personalize
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

SIMS 配方

项目与项目相似性 (SIMS) 配方使用协作筛选来推荐与您在获得推荐时指定的项目最相似的项目。SIMS 使用 “交互” 数据集(而不是项目元数据(如颜色或价格)来确定相似性。SIMS 标识交互数据集的用户历史记录中项目的共同出现,以推荐类似的项目。例如,借助 SIMS,Amazon Personalize 可以推荐客户经常一起购买的咖啡店商品或不同用户也观看的电影。

与其他配方相比,使用 SIMS 配方可更快完成训练。如果项目没有足够的用户行为数据或找不到您提供的项目 ID,SIMS 将推荐热门项目。

SIMS 配方具有以下属性:

  • 名称aws-sims

  • 配方 Amazon 资源名称 (ARN)arn:aws:personalize:::recipe/aws-sims

  • 算法 ARNarn:aws:personalize:::algorithm/aws-sims

  • 功能转换 ARNarn:aws:personalize:::feature-transformation/sims

  • 配方类型RELATED_ITEMS

下表描述 SIMS 配方的超参数。超参数 是一个算法参数,您可以调整该参数以提高模型性能。算法超参数控制模型的执行方式。特征化超参数控制如何筛选训练中使用的数据。为超参数选择最佳值的过程称为超参数优化 (HPO)。有关更多信息,请参阅超级参数和 HPO

该表还为每个超参数提供以下信息:

  • 范围:[上界, 下界]

  • 值类型:Integer、Continuous(浮点数)、Categorical(布尔值、列表、字符串)

  • 可调 HPO:该参数是否可以参与超级参数优化 (HPO)?

名称 描述
算法超参数
popularity_discount_factor

计算相似度时会影响流行度和相关性之间的平衡。如果您计算与特定项目的相似性,则值 0 会将最受欢迎的项目显示为建议,无论其相关性如何。值为 1 使与特定项目具有共同交互(共享交互)的大多数项目显示为推荐,而不管其受欢迎程度如何。使用任一极值都可能会创建一个过长的推荐项目列表。对于大多数情况,0.5 左右的值效果最好。

默认值:0.5

Range (范围):[0.0, 1.0]

值类型:整数 Float

HPO 可调:是

min_cointeraction_count

计算一对项目之间的相似性所需的最小共同交互次数。例如,值 3 表示您需要三个或更多与这两个项目进行交互的用户以供算法计算其相似性。

默认值:3

Range (范围):[0, 10]

值类型:整数 整数

HPO 可调:是

特征化超参数
min_user_history_length_percentile

要包含在模型训练中的用户历史记录长度的最小百分位数。历史记录长度 是用户的可用数据总量。使用 min_user_history_length_percentile 排除历史记录长度较短的一定百分比的用户。历史记录较短的用户通常会根据项目受欢迎程度而不是用户的个人需求或需要来显示模式。删除它们可以在训练模型时更多地关注数据中的基础模式。使用直方图或类似工具查看用户历史记录长度后,请选择适当的值。我们建议您设置一个值,该值将保留大多数用户,但会删除边缘案例。

默认值:0.005

Range (范围):[0.0, 1.0]

值类型:整数 Float

HPO 可调:否

max_user_history_length_percentile

要包含在模型训练中的用户历史记录长度的最大百分位数。历史记录长度 是用户的可用数据总量。使用 max_user_history_length_percentile 排除历史记录长度较长的一定百分比的用户。具有较长历史记录的用户往往包含噪音。例如,机器人可能有很长的自动交互列表。删除这些用户可限制训练中的噪音。使用直方图或类似工具查看用户历史记录长度后,请选择适当的值。我们建议您设置一个值,该值将保留大多数用户,但会删除边缘案例。

例如,min_hist_length_percentile = 0.05max_hist_length_percentile = 0.95 将包括除那些历史记录长度在最低或最高 5% 内的用户之外的所有用户。

默认值:0.995

Range (范围):[0.0, 1.0]

值类型:整数 Float

HPO 可调:否

min_item_interaction_count_percentile

要包含在模型训练中的项目交互计数的最小百分位数。使用 min_item_interaction_count_percentile 排除交互历史记录较短的百分比的项目。历史记录较短的项目通常是新项目。删除它们可以在训练模型时更多地关注具有已知历史记录的项目。使用直方图或类似工具查看用户历史记录长度后,请选择适当的值。我们建议您设置一个值,该值将保留大多数项目,但会删除边缘案例。

默认值:0.01

Range (范围):[0.0, 1.0]

值类型:整数 Float

HPO 可调:否

max_item_interaction_count_percentile

要包含在模型训练中的项目交互计数的最大百分位数。使用 max_item_interaction_count_percentile 排除交互历史记录较长的百分比的项目。具有较长的历史记录的项目往往较旧,可能已过时。例如,已绝版的电影发行版本。删除这些项目可以专注于相关性更高的项目。使用直方图或类似工具查看用户历史记录长度后,请选择适当的值。我们建议您设置一个值,该值将保留大多数项目,但会删除边缘案例。

例如,min_item_interaction_count_percentile = 0.05max_item_interaction_count_percentile = 0.95 将包括除交互计数在最低或最高 5% 内的项目之外的所有项目。

默认值:0.9

Range (范围):[0.0, 1.0]

值类型:整数 Float

HPO 可调:否

SIMS 示例笔记本

有关演示如何使用 SIMS 配方的 Jupyter 笔记本示例,请参阅查找类似项目 + HPO