

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

# VIDEO\$1ON\$1DEMAND 数据集和架构
<a name="VIDEO-ON-DEMAND-datasets-and-schemas"></a>

 当您为 VIDEO\$1ON\$1DEMAND 域创建域数据集组时，每种数据集类型都有一个默认架构，其中包含一组 VIDEO\$1ON\$1DEMAND 特定的必填字段和建议字段。您可以使用默认架构，也可以基于默认架构创建新架构。您导入的数据在格式和类型上必须与您的架构相匹配。使用以下各部分中列出的默认域架构作为指南，确定要导入哪些数据来创建基于 VIDEO\$1ON\$1DEMAND 的推荐器。

您可以自由添加其他字段。只要字段未列为必填字段或保留字段，并且数据类型列在[架构数据类型](how-it-works-dataset-schema.md#personalize-datatypes)中，则字段名称和数据类型由您决定。

有关 Amazon Personalize 架构的一般要求（例如格式设置要求和可用的字段数据类型）的信息，请参阅[为 Amazon Personalize 架构创建架构 JSON 文件](how-it-works-dataset-schema.md)。这些要求适用于所有架构，不论域如何。

 以下主题提供了有关 VIDEO\$1ON\$1DEMAND 域中每个数据集的必填字段和建议字段的信息。每个数据集部分都包含 JSON 格式的默认 VIDEO\$1ON\$1DEMAND 架构。

**Topics**
+ [VIDEO\$1ON\$1DEMAND 域数据集和架构要求](#VIDEO-ON-DEMAND-dataset-requirements)
+ [物品交互数据集要求（VIDEO\$1ON\$1DEMAND 域）](VIDEO-ON-DEMAND-interactions-dataset.md)
+ [用户数据集要求（VIDEO\$1ON\$1DEMAND 域）](VIDEO-ON-DEMAND-users-dataset.md)
+ [物品数据集要求（VIDEO\$1ON\$1DEMAND 域）](VIDEO-ON-DEMAND-items-dataset.md)

## VIDEO\$1ON\$1DEMAND 域数据集和架构要求
<a name="VIDEO-ON-DEMAND-dataset-requirements"></a>

每个数据集类型都具有以下必填字段和保留关键字。保留关键字是可选的非元数据字段。这些字段被视为保留字段，因为您在使用这些字段时必须将它们定义为所需的数据类型。保留的分类字符串字段的 `categorical` 必须设置为 `true`，而保留的字符串字段不能是分类字段。关键字不能出现在数据中。


| 数据集类型 | 必填字段 | 保留关键字 | 
| --- | --- | --- | 
| 物品交互（[默认架构](VIDEO-ON-DEMAND-interactions-dataset.md#VIDEO-ON-DEMAND-interactions-schema)） |  USER\$1ID (`string`) ITEM\$1ID (`string`) TIMESTAMP (`long`) EVENT\$1TYPE（`string`，取决于[使用案例](domain-use-cases.md)，`Watch` 和 `Click` 事件类型）  |  EVENT\$1VALUE（`float`、`null`） IMPRESSION（`string`、`null`） RECOMMENDATION\$1ID（`string`、`null`） EVENT\$1ATTRIBUTION\$1SOURCE（`string`、`null`）  | 
| 用户（[默认架构](VIDEO-ON-DEMAND-users-dataset.md#VIDEO-ON-DEMAND-users-dataset-schema)） |  USER\$1ID (`string`) 1 个元数据字段（分类 `string` 或数字）  |  SUBSCRIPTION\$1MODEL（分类 `string`、`null`）  | 
| 物品（[默认架构](VIDEO-ON-DEMAND-items-dataset.md#VIDEO-ON-DEMAND-items-dataset-schema)） |  ITEM\$1ID (`string`) CREATION\$1TIMESTAMP (`long`) GENRES（分类 `string`）  |   PRICE（`float`、`null`） DURATION（`float`、`null`） GENRE\$1L2（分类 `string`、`null`） GENRE\$1L3（分类 `string`、`null`） AVERAGE\$1RATING（`float`、`null`） PRODUCT\$1DESCRIPTION（文本 `string`、`null`） CONTENT\$1OWNER（分类 `string`、`null`） CONTENT\$1CLASSIFICATION（分类 `string`、`null`）  | 

# 物品交互数据集要求（VIDEO\$1ON\$1DEMAND 域）
<a name="VIDEO-ON-DEMAND-interactions-dataset"></a>

 *物品交互数据集*存储来自用户和 VIDEO\$1ON\$1DEMAND 目录中物品之间交互的历史数据和实时数据。有关您可以存储在交互数据集中的数据类型的更多信息，请参阅[物品交互数据](interactions-datasets.md)。

 您必须拥有适用于所有使用案例的物品交互数据集，且您的架构必须包含以下字段：
+ USER\$1ID (`string`)
+ ITEM\$1ID `string`
+ TIMESTAMP (`long`)
+ EVENT\$1TYPE（`string`，取决于[使用案例](domain-use-cases.md)，`Watch` 和 `Click` 事件类型）

 您的架构还可以包含以下保留关键字：
+ EVENT\$1VALUE（`float`、`null`）
+ IMPRESSION（`string`、`null`）
+ RECOMMENDATION\$1ID（`string`、`null`）

 您可以根据您的使用案例和数据自由添加其他字段。只要字段未列为必填字段或保留字段，并且数据类型列在[架构数据类型](how-it-works-dataset-schema.md#personalize-datatypes)中，则字段名称和数据类型由您决定。有关 VIDEO\$1ON\$1DEMAND 域的物品交互数据集的默认架构示例，请参阅[默认交互架构（VIDEO\$1ON\$1DEMAND 域）](#VIDEO-ON-DEMAND-interactions-schema)。

 如果您的事件具有值数据（例如观看视频的百分比），则可以选择添加保留关键字 EVENT\$1VALUE。如果您想包含显式和隐式展示数据，则可以选择添加保留关键字 IMPRESSION。有关记录展示数据的更多信息，请参阅[展示数据](interactions-datasets.md#interactions-impressions-data)。

 您可以添加到物品交互数据集的最大可选元数据字段总数，再加上物品交互数据中*不同*事件类型的总数，结果为 10。此计数中包含的元数据字段是 EVENT\$1TYPE、EVENT\$1VALUE 字段以及您添加到架构中的任何自定义元数据字段。不包括保留字段（例如 IMPRESSION）的元数据字段的最大数量为 5。分类值最多可以有 1000 个字符。如果交互的分类值大于 1000，则您的数据集导入作业将失败。

有关 VIDEO\$1ON\$1DEMAND 域的物品交互数据集的最低要求和最大数据限制的更多信息，请参阅[服务配额](limits.md#limits-table)。有关 Amazon Personalize 架构的一般要求（例如格式设置要求和可用的字段数据类型）的信息，请参阅[为 Amazon Personalize 架构创建架构 JSON 文件](how-it-works-dataset-schema.md)。这些要求适用于所有架构，不论域如何。

## 默认交互架构（VIDEO\$1ON\$1DEMAND 域）
<a name="VIDEO-ON-DEMAND-interactions-schema"></a>

 以下是物品交互数据集的默认 VIDEO\$1ON\$1DEMAND 域架构。

```
{

  "type": "record",
  "name": "Interactions",
  "namespace": "com.amazonaws.personalize.schema",
  "fields": [
      {
          "name": "USER_ID",
          "type": "string"
      },
      {
          "name": "ITEM_ID",
          "type": "string"
      },
      {
          "name": "EVENT_TYPE",
          "type": "string"
      },
      {
          "name": "TIMESTAMP",
          "type": "long"
      }
  ],
  "version": "1.0"
}
```

# 用户数据集要求（VIDEO\$1ON\$1DEMAND 域）
<a name="VIDEO-ON-DEMAND-users-dataset"></a>

 *用户数据集* 存储有关用户的元数据。这可能包括每个用户的年龄、兴趣、性别或会员资格等信息。有关您可以导入 Amazon Personalize 的用户数据类型的信息，请参阅[用户元数据](users-datasets.md)。有关通用 Amazon Personalize 架构要求的信息，请参阅[为 Amazon Personalize 架构创建架构 JSON 文件](how-it-works-dataset-schema.md)。这些要求适用于所有架构，不论域如何。

 对于所有 VIDEO\$1ON\$1DEMAND 使用案例，用户数据集都是可选的。如果您有用户数据，我们建议您创建一个用户数据集，以获得最相关的建议。如果您创建用户数据集，则架构必须包含以下字段。
+ USER\$1ID
+ 1 个元数据字段（分类 `string` 或数字）

您可以根据您的使用案例和数据自由添加其他字段。只要字段未列为必填字段或保留字段，并且数据类型列在[架构数据类型](how-it-works-dataset-schema.md#personalize-datatypes)中，则字段名称和数据类型由您决定。有关 VIDEO\$1ON\$1DEMAND 域用户数据集的默认架构示例，请参阅[默认用户架构（VIDEO\$1ON\$1DEMAND 域）](#VIDEO-ON-DEMAND-users-dataset-schema)。

默认架构中包含 `SUBSCRIPTION_MODEL` 字段。此字段是一个可选保留关键字字段，其类型必须为 `string`，类别设置为 `true`。为了获得最佳建议，我们建议在您的数据中存在关于每个用户的订阅模式信息时，在架构中保留此字段。您导入的数据必须与您的架构相匹配。

## 使用分类数据
<a name="vod-categorical-users"></a>

 要使用分类数据，请添加类型为 `string` 的字段，并在架构中将该字段的类别属性设置为 `true`。然后，将分类数据包含在批量 CSV 文件和单个记录导入中。对于具有多个类别的用户，使用竖线“\$1”分隔每个值。例如，对于 SUBSCRIPTION\$1MODEL 字段，您的用户数据可能是 student\$1monthly\$1discount。

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

## 默认用户架构（VIDEO\$1ON\$1DEMAND 域）
<a name="VIDEO-ON-DEMAND-users-dataset-schema"></a>

 以下是用户数据集的默认 VIDEO\$1ON\$1DEMAND 域架构。

```
{

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

# 物品数据集要求（VIDEO\$1ON\$1DEMAND 域）
<a name="VIDEO-ON-DEMAND-items-dataset"></a>

 *物品数据集* 存储有关目录物品的元数据。这可能包括每件物品的价格、类型和库存等信息。有关您可以导入 Amazon Personalize 的物品数据类型的信息，请参阅[物品元数据](items-datasets.md)。有关 Amazon Personalize 架构的一般要求（例如格式设置要求和可用的字段数据类型）的信息，请参阅[为 Amazon Personalize 架构创建架构 JSON 文件](how-it-works-dataset-schema.md)。这些要求适用于所有架构，不论域如何。

某些使用案例需要物品数据集（请参阅 [VIDEO\$1ON\$1DEMAND 使用案例](VIDEO_ON_DEMAND-use-cases.md)）。可选时，我们仍建议您创建一个物品数据集，以获取最相关的建议。如果您创建物品数据集，则架构必须包含以下字段：
+ ITEM\$1ID
+ GENRES（分类 `string`）
+ CREATION\$1TIMESTAMP（采用 Unix 纪元时间格式）

 您的架构还可以包含以下保留关键字。每个关键字都列出了其所需的数据类型以及它是否支持空数据。添加空类型是可选的。
+ PRICE（浮点）
+ DURATION（浮点）
+ GENRE\$1L2（分类 `string`、`null`）
+ GENRE\$1L3（分类 `string`、`null`）
+ AVERAGE\$1RATING（`float`、`null`）
+ PRODUCT\$1DESCRIPTION（文本 `string`、`null`）
+ CONTENT\$1OWNER（分类 `string`、`null`）：拥有视频的公司。例如，值可能是 HBO、Paramount 和 NBC。
+ CONTENT\$1CLASSIFICATION（分类 `string`、`null`）：内容的评级。例如，值可能是 G、PG、PG-13、R、NC-17 和未分级。

 为了获得最佳建议，我们建议您在架构中尽可能多保留这些字段，因为您拥有数据。您导入的数据必须与您的架构相匹配。最大元数据列数为 100。您可以根据您的使用案例和数据自由添加其他字段。只要字段未列为必填字段或保留字段，并且数据类型列在[架构数据类型](how-it-works-dataset-schema.md#personalize-datatypes)中，则字段名称和数据类型由您决定。

 对于具有多个多级类别的物品，使用保留关键字 GENRE\$1L2 和 GENRE\$1L3。有关更多信息，请参阅 [使用分类数据](#VIDEO-ON-DEMAND-items-categorical-data)。有关文本和分类元数据的信息，请参阅[为训练准备物品元数据](items-datasets.md)。有关 ECOMMERCE 域物品数据集的默认架构示例，请参阅[默认物品架构（VIDEO\$1ON\$1DEMAND 域）](#VIDEO-ON-DEMAND-items-dataset-schema)。

## 使用分类数据
<a name="VIDEO-ON-DEMAND-items-categorical-data"></a>

 要使用分类数据，请添加类型为 `string` 的字段，并在架构中将该字段的类别属性设置为 `true`。然后，将分类数据包含在批量 CSV 文件和单个物品导入中。分类值最多可以有 1000 个字符。如果您的物品的分类值超过 1000 个字符，则您的数据集导入作业将失败。

 对于具有多个类别的物品，使用竖线“\$1”分隔每个值。例如，对于 GENRES 字段，您的物品数据可能是 `Action|Crime|Biopic`。如果您有多个级别的分类数据，并且某些物品在层次结构中的每个级别都有多个类别，请为每个级别添加一个字段，并在每个字段名称后面附加一个级别指示符：GENRES、GENRE\$1L2、GENRE\$1L3。这样，您可以根据子类别筛选建议，即使一个物品属于多个多级类别，也是如此。例如，某个视频可能包含每个类别级别的以下数据：
+ GENRES：动作\$1冒险
+ GENRE\$1L2：犯罪\$1西方
+ GENRE\$1L3：传记片

在此示例中，该视频位于动作 > 犯罪 > 传记片层次结构*和* 冒险 > 西方 > 传记片层次结构中。我们建议使用的级别最高仅到 L3，但如有必要，可以使用更多级别。有关创建和使用筛选器的信息，请参阅[筛选建议和用户细分](filter.md)。

## 默认物品架构（VIDEO\$1ON\$1DEMAND 域）
<a name="VIDEO-ON-DEMAND-items-dataset-schema"></a>

 以下是 VIDEO\$1ON\$1DEMAND 域物品数据集的默认架构。

```
{
  "type": "record",
  "name": "Items",
  "namespace": "com.amazonaws.personalize.schema",
  "fields": [
    {
      "name": "ITEM_ID",
      "type": "string"
    },
    {
      "name": "GENRES",
      "type": [
        "string"
      ],
      "categorical": true
    },
    {
      "name": "CREATION_TIMESTAMP",
      "type": "long"
    }
  ],
  "version": "1.0"
}
```