为训练准备动作元数据 - Amazon Personalize

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

为训练准备动作元数据

操作是指您可能想向用户建议的交互或创收活动。操作可能包括安装您的移动应用、填写会员资料、加入忠诚度计划或注册促销电子邮件。您可以将有关操作的数据导入到 Amazon Personalize 操作数据集。操作数据的示例包括操作的唯一 ID、操作的估计值或操作的过期时间戳。

如果您使用 Next-Best-Action,则必须导入操作元数据。通过这个配方,Amazon Personalize 可以从你导入操作数据集的操作中预测下一个最佳动作。没有其他配方或用例使用操作元数据。您无法在域数据集组中创建操作数据集。

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

您的批量操作数据必须位于CSV文件中。文件中的每一行都应代表一个独特的操作。准备完数据后,就可以创建架构JSON文件了。此文件告知 Amazon Personalize 您的数据结构。有关更多信息,请参阅 为 Amazon Personalize 架构创建架构JSON文件

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

操作数据要求

以下是 Amazon Personalize 的操作数据要求。

  • 您必须有一个 ACTION _ID 列来存储每个操作的唯一标识符。每个操作都必须有一个项目 ID。它必须是string最大长度为 256 个字符的。

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

  • 在模型训练期间,Amazon Personalize 最多会考虑 1000 个操作。如果您导入的操作超过 1000 个,Amazon Personalize 会决定哪些操作要包含在训练中,并优先考虑新操作(您最近添加的没有交互的操作)和具有最近交互数据的现有操作。

  • 最大列数为 10。

操作过期时间戳数据

操作过期时间戳指定操作不再有效的日期。您可以按 Unix 纪元时间格式提供操作过期时间戳数据(以秒为单位)。如果某操作已过期,Amazon Personalize 将不会将其包含在建议中。

如果您想将操作在建议中的出现限制在特定的时间范围内,请为操作指定操作过期时间戳。例如,您可能有一个应用程序在某个月份内开展会员资格活动。您可以为该月底的注册操作设置一个到期时间戳。到此日期后,Amazon Personalize 会自动停止建议此操作。

如果您将新操作的过期时间戳设置为过去的某个时间,或者将操作时间戳更新为过去的时间,则从建议中删除该操作最多可能需要 2 个小时。

重复频率数据

重复频率数据根据用户在您的操作交互数据集中的历史记录,指定 Amazon Personalize 在用户与特定操作交互后应等待多少天才能建议该操作。您可以指定操作的重复频率(以天为单位),最多为 30 天。

例如,您可能有一个电子商务应用程序,其中每个用户都创建一个账户和一个配置文件。如果您有一项 complete profile 操作,并且想在用户与该操作交互后等待一周后,然后再次建议该操作,则可以指定 7 天作为该操作的 REPEAT_FREQENCY。7 天后,Amazon Personalize 才开始考虑建议此操作。

如果您没有为某项操作提供重复频率,Amazon Personalize 将不会对该操作在建议中出现的次数设置任何限制。

Value data

值数据是每个操作的商业价值或重要性。操作的 value 可以是 1 – 10,其中 10 指数据集中最有价值的操作。

例如,您可能有两个操作,一个用于注册基本订阅,另一个用于注册高级服务。对于基本服务,您可以指定值 5,而对于高级服务,则指定值 10

在确定向用户建议的最佳操作时,Amazon Personalize 使用值数据作为一项输入。例如,如果用户采取一项或另一项操作的可能性相同,则 Amazon Personalize 会在建议中将值最高的操作排在更高的位置。

创建时间戳数据

Amazon Personalize 使用创建时间戳数据(采用 Unix 纪元时间格式,以秒为单位),计算操作的使用年限并相应地调整建议。

如果您没有创建时间戳数据,Amazon Personalize 从任何操作交互数据中推断出这些信息。它使用操作的最旧交互数据的时间戳作为操作的创建时间戳。如果某个操作没有交互数据,则其创建时间戳将设置为训练集中最新交互的时间戳,且 Amazon Personalize 会将其视为新操作。

分类元数据

Amazon Personalize 使用有关操作的分类元数据,例如季节性或操作排他性,来确定能为用户揭示最佳操作的潜在模式。您可以基于自己的使用案例来定义自己的值范围。分类元数据可以是任何语言。

您可以导入分类数据,并使用它根据操作的属性筛选建议。有关筛选建议的信息,请参阅筛选建议和用户细分

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

非分类字符串数据

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

操作元数据示例

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

ACTION_ID,VALUE,MEMBERSHIP_LEVEL,CREATION_TIMESTAMP,REPEAT_FREQUENCY 1,10,Deluxe|Premium,1510003267,7 2,5,Basic,1580003267,7 3,5,Preview,1590003267,3 4,10,Deluxe|Platinum,1560003267,4 ... ...

ACTION_ID 列是必填的。该MEMBERSHIP_LEVEL列是一个分类字符串字段。VALUECREATION_TIMESTAMPREPEAT_FREQUENCY 字段是具有必需类型的保留关键字。

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

{ "type": "record", "name": "Actions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "ACTION_ID", "type": "string" }, { "name": "VALUE", "type": [ "null", "long" ] }, { "name": "MEMBERSHIP_LEVEL", "type": [ "null", "string" ], "categorical": true }, { "name": "CREATION_TIMESTAMP", "type": "long" }, { "name": "REPEAT_FREQUENCY", "type": [ "long", "null" ] } ], "version": "1.0" }