为培训准备用户元数据 - Amazon Personalize

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

为培训准备用户元数据

您可以导入 Amazon Personalize 的用户数据包括数字数据(例如用户年龄)和分类元数据,例如性别或忠诚会员资格。您可以将有关用户的元数据导入到 Amazon Personalize 用户数据集

根据您的域名用例或自定义配方,用户元数据可以帮助 Amazon Personalize 向用户推荐更多相关的项目或推荐更有意义的用户群体。训练结束后,它可以帮助您的模型向没有任何交互数据的用户推荐项目。有关哪些用例或配方使用用户元数据的更多信息,请参阅中您的域用例或配方的数据要求将您的用例与 Amazon Personalize 资源进行匹配

训练时,Amazon Personalize 不使用非分类字符串用户数据,例如用户名、用户关键词或标签。但是,导入这些数据仍然可以增强推荐效果。有关更多信息,请参阅 非分类字符串数据

对于所有域名用例和自定义配方,您的批量用户数据必须放在CSV文件中。文件中的每一行都应代表一个唯一的用户。准备完数据后,就可以创建架构JSON文件了。此文件告知 Amazon Personalize 您的数据结构。有关更多信息,请参阅 为数据创建架构JSON文件

以下各节提供了有关如何为 Amazon Personalize 准备用户数据的更多信息。有关所有类型数据的批量数据格式指南,请参阅批量数据格式指南

用户数据要求

以下是 Amazon Personalize 的用户数据要求。您可以根据您的用例和数据自由添加其他自定义列。

  • 您的数据必须有一个 USER _ID 列,用于存储每个用户的唯一标识符。每个用户都必须有一个用户 ID。它必须是string最大长度为 256 个字符的。

  • 您的数据必须至少有一个类别字符串或数字元数据列。对于某些用户,用户元数据列可以包含空值/空值。我们建议这些列至少完成 70%。

  • 最大元数据列数为 25。

如果您不确定自己是否有足够的数据或对其质量有疑问,可以将您的数据导入亚马逊个性化数据集,然后使用亚马逊个性化对其进行分析。有关更多信息,请参阅 分析 Amazon Personalize 数据集中数据的质量和数量

分类元数据

对于某些食谱和所有域名用例,Amazon Personalize 使用分类元数据(例如用户的性别、兴趣或会员身份)来识别与用户最相关的项目的基本模式。您可以基于自己的使用案例来定义自己的值范围。分类元数据可以是任何语言。

对于具有多个类别的用户,请使用竖线 “|” 分隔每个值。例如,对于某个INTERESTS字段,您的用户数据可能是Movies|TV Shows|Music

对于所有食谱和域,您可以导入分类元数据,并使用此类数据,根据用户的属性筛选建议。有关筛选建议的信息,请参阅筛选建议和用户细分

分类值最多可以有 1000 个字符。如果您的用户的分类值超过 1000 个字符,则您的数据集导入作业将失败。

非分类字符串数据

除了用户之外IDs,Amazon Personalize 在训练时不使用非分类字符串数据,例如用户名、用户关键词或标签。但是,Amazon Personalize 可以在筛选推荐时使用它。您可以创建筛选条件,根据与您正在获得推荐的用户相关的非分类字符串数据,在推荐中包含或删除项目 ()。 CurrentUser有关筛选条件的更多信息,请参阅筛选建议和用户细分。非类别值最多可包含 1000 个字符。

用户元数据示例

CSV文件中用户元数据的前几行可能如下所示。

USER_ID,AGE,GENDER,INTEREST 5,34,Male,hiking 6,56,Female,music 8,65,Male,movies|TV shows|music ... ...

USER_ID列为必填列,用于存储每个用户的唯一标识符。该AGE列是数字元数据。GENDERINTEREST列存储每个用户的分类元数据。

准备完数据后,就可以创建架构JSON文件了。此文件告知 Amazon Personalize 您的数据结构。有关更多信息,请参阅 为数据创建架构JSON文件。以上示例数据的架构JSON文件如下所示。

{ "type": "record", "name": "Users", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "AGE", "type": "int" }, { "name": "GENDER", "type": "string", "categorical": true }, { "name": "INTEREST", "type": "string", "categorical": true } ], "version": "1.0" }