本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
数据集和架构
Amazon Personalize数据集是数据的容器。有三种类型的数据集:
对于所有用例(域数据集组)和配方(自定义数据集组),您的互动数据必须具有以下内容:
-
至少有 1000 条来自与您目录中商品互动的用户的互动记录。这些交互可以来自批量导入或流媒体事件,或两者兼而有之。
-
至少 25 个唯一用户 ID,每个用户至少有 2 次互动。
域数据集组和自定义数据集组只能拥有每种类型的数据集中的一个。在创建数据集之前,您需要为该数据集定义架构。一个纲要告知 Amazon Personalize 您的数据结构,并允许Amazon Personalize 解析数据。架构具有名称键,其值必须与数据集类型相匹配。创建架构后,您无法更改架构。
对于域数据集组,每种数据集类型都有一个包含必填字段和保留关键字的默认架构。每次创建数据集时,您可以使用现有的域架构,也可以通过修改现有的默认架构来创建新的域架构。使用默认架构作为指南,确定要为您的域导入哪些数据。一旦定义了架构并创建了数据集,就无法对架构进行更改。
如果您批量导入数据,数据必须以逗号分隔值 (CSV) 格式存储。CSV 文件的第一行必须包含列标题,这些标题必须与您的架构相匹配。
架构格式要求
在为域数据集组或自定义数据集组中的任一数据集创建架构时,必须遵循以下准则:
-
架构字段可以按任意顺序出现,但它们必须与 CSV 文件中相应列标题的顺序相匹配。
-
必须将必填字段定义为其必填数据类型。保留的分类字符串字段必须具有
categorical
设置为true
,而保留的字符串字段不能是分类字段。关键字不能出现在你的数据中。基于域和数据集类型,域数据集组数据集还有其他要求。自定义数据集组数据集有其他要求,具体取决于类型。 -
架构必须是没有嵌套结构的平面 JSON 文件。例如,一个字段不能是多个子字段的父字段。
-
架构字段必须具有唯一的字母数字名称。例如,您不能同时添加
GENRES_FIELD_1
字段和 aGENRESFIELD1
字段中返回的子位置类型。 -
Amazon Personalize 架构不支持复杂的类型,例如数组和地图。
-
对于具有多个值的字段,包括分类元数据和展示次数数据,请使用数据类型串并使用竖线 “|” 字符分隔每个值。对于分类字段,添加
"categorical": true
.
架构数据类型
Amazon Personalize 架构支持以下 Avro 类型的字段:
-
float
-
double
-
int
-
long
-
字符串
-
布尔值(值)
true
和false
数据中必须是小写字母) -
null
您可以使用null为了EVENT_VALUE
和RECOMMENDATION_ID
保留的关键字以及交互、用户和项目元数据字段。添加null
在字段中键入允许您使用不完美的数据(例如,带有空值的元数据)来生成个性化推荐。以下示例介绍如何为 GENTERS 字段添加空类型。
{ "name": "GENRES", "type": [ "null", "string" ], "categorical": true }