

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

# 为训练准备操作交互数据
<a name="action-interactions-datasets"></a>

 如果您使用 [Next-Best-Action](native-recipe-next-best-action.md) 自定义配方，Amazon Personalize 会使用操作交互数据来识别用户兴趣并预测他们最有可能采取的操作。*操作交互*是[操作数据集](actions-datasets.md)中涉及用户和操作的交互。例如，如果您的操作数据集中有一个*注册*操作，而用户执行了此操作，则您将记录用户的 ID、操作的 ID、时间戳，并对于事件类型记录 `TAKEN`。

您可以将操作交互导入 Amazon Personalize *操作交互数据集*中。您可以使用数据集导入作业批量导入操作交互事件，也可以通过 [PutActionInteractions](API_UBS_PutActionInteractions.md) API 操作实时流式传输这些事件。您无法在域数据集组中创建下一个最佳操作资源，包括操作和操作交互数据集。

批量操作交互数据必须保存在 CSV 文件中。文件中的每一行都应代表用户和操作之间的唯一交互。完成数据准备后，就可以创建架构 JSON 文件。此文件向 Amazon Personalize 提供关于数据结构的信息。有关更多信息，请参阅 [为 Amazon Personalize 架构创建架构 JSON 文件](how-it-works-dataset-schema.md)。

 以下各部分提供了有关如何为 Amazon Personalize 准备操作交互数据的更多信息。有关所有数据类型的批量数据格式准则，请参阅[批量数据格式准则](preparing-training-data.md#general-formatting-guidelines)。

**Topics**
+ [操作交互数据要求](#action-interaction-requirements)
+ [事件类型数据](#action-interaction-event-type-data)
+ [操作交互数据示例](#action-interactions-data-schema-example)

## 操作交互数据要求
<a name="action-interaction-requirements"></a>

对操作交互数据没有最低要求。我们建议您将其导入以获取高质量的操作建议。如果您没有操作交互数据，则可以创建一个空的操作交互数据集，并使用 [PutActionInteractions](API_UBS_PutActionInteractions.md) API 操作记录客户与操作的交互。

操作交互数据必须至少包含以下几列。您可以根据应用场景和数据自由地添加其他自定义列。
+ USER\$1ID - 与物品进行交互的用户的唯一标识符。每个事件都必须有一个 USER\$1ID。它必须是 `string`，最大长度为 256 个字符。
+ ACTION\$1ID - 用户与之进行交互的物品的唯一标识符。每个事件都必须有一个物品 ID。它必须是 `string`，最大长度为 256 个字符。
+  TIMESTAMP - 事件发生的时间（采用 Unix 纪元时间格式，以秒为单位）。每个操作交互都必须有一个 TIMESTAMP。有关更多信息，请参阅 [时间戳数据](interactions-datasets.md#timestamp-data)。
+ EVENT\$1TYPE - 指明操作是已执行、未执行还是已查看。每个操作交互都必须有一个事件类型。有关更多信息，请参阅 [事件类型数据](#action-interaction-event-type-data)。

 在您导入操作交互数据之前，Amazon Personalize 会在您的操作数据集中推荐不进行个性化的操作，倾向分数为 0.0。在操作达到以下条件后，该操作将获得分数：
+  至少 50 次 TAKEN 事件类型的操作交互。
+  至少 50 次 NOT\$1TAKEN 或 VIEWED 事件类型的操作交互。

这些操作交互必须出现在最新的解决方案版本训练中，并且必须在操作交互数据集中的最新交互时间戳后的 6 周内发生。

## 事件类型数据
<a name="action-interaction-event-type-data"></a>

 Amazon Personalize 可以使用事件类型数据中的模式来识别您的用户最有可能采取的操作。例如，如果客户经常忽略电子邮件订阅操作（以 NOT\$1TAKE 事件类型表示），Amazon Personalize 可能会调整建议，以减少此类操作的次数。

 您只能将以下事件类型用于操作交互事件。Amazon Personalize 使用这些事件来了解您的用户，并计算接下来要建议的操作。
+ 已执行 - 当用户采取了建议的操作时，记录*已执行*事件。
+ *未执行* – 当您的用户在查看操作后特意选择不采取该操作时，记录未执行事件。例如，当您向他们展示操作时，如果他们选择*否*。*未执行*事件可能表示客户对该操作不感兴趣。
+ 已查看 - 当您在用户选择采取或不采取操作之前向他们展示操作时，记录*已查看*事件。Amazon Personalize 使用*查看*事件来了解用户的兴趣。例如，如果用户查看了某项操作但未执行该操作，则该用户将来可能对此操作不感兴趣。

## 操作交互数据示例
<a name="action-interactions-data-schema-example"></a>

包含操作交互数据和所有必填列的 CSV 文件的前几行可能看起来如下所示。

```
USER_ID,ACTION_ID,EVENT_TYPE,TIMESTAMP
35,73,Viewed,1586731606
54,35,Not taken,1586731609
9,33,Viewed,1586735158
23,10,Taken,1586735697
27,11,Taken,1586735763
...
...
```

完成数据准备后，就可以创建架构 JSON 文件。此文件向 Amazon Personalize 提供关于数据结构的信息。有关更多信息，请参阅 [为 Amazon Personalize 架构创建架构 JSON 文件](how-it-works-dataset-schema.md)。上述示例数据的架构 JSON 文件看起来就是这个样子。

```
{

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