データセットとスキーマ - Amazon Personalize

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

データセットとスキーマ

Amazon Personalize データセットはデータのコンテナです。データセットには 3 つのタイプがあります。

  • ユーザー – このデータセットには、ユーザーに関するメタデータが保存されます。これには、年齢、性別、ロイヤリティメンバーシップなど、パーソナライゼーションシステムで重要なシグナルとなり得る情報が含まれます。

  • Items – このデータセットには、項目に関するメタデータが保存されます。これには、価格、SKU タイプ、在庫状況などの情報が含まれます。

  • インタラクション – このデータセットは、ユーザーとアイテム間のインタラクションの履歴データとリアルタイムデータを保存します。このデータには、ユーザーの場所やデバイス (モバイル、タブレット、デスクトップなど) など、ユーザーの参照コンテキストに関するインプレッションデータとコンテキストメタデータを含めることができます。少なくとも、インタラクションデータセットを作成する必要があります。

ユーザーおよびアイテムのデータセットタイプはメタデータタイプと呼ばれ、特定のレシピでのみ使用されます。詳細については、「 」を参照してください。ステップ1: レシピの選択.

データセットはデータセットAmazon Personalizeグループ内で整理されます。データセットグループには、各タイプのデータセットを 1 つだけ含めることができます。各データセットには、スキーマが関連付けられている必要があります。スキーマは、データの構造Amazon Personalizeを に指示しAmazon Personalize、 がデータを解析できるようにします。スキーマには名前キーがあり、その値はデータセットタイプと一致する必要があります。

トレーニングデータを にインポートするときに、データセットとスキーマを作成しますAmazon Personalize。詳細については、「」を参照してくださいデータの準備とインポート

データセットとスキーマの要件

各データセットには、次の表に示すように、一連の必須フィールド、予約キーワード、および必須のデータ型があります。

データセットタイプ 必須フィールド 予約キーワード
ユーザー

USER_ID (string)

1 メタデータフィールド

アイテム

ITEM_ID (string)

1 メタデータフィールド

CREATION_TIMESTAMP(long)

インタラクション

USER_ID (string)

ITEM_ID (string)

TIMESTAMP (long)

EVENT_TYPE (string)

EVENT_VALUE (floatnull)

インプレッション (string)

RECOMMENDATION_ID (stringnull)

データセットを Amazon Personalize に追加する前に、そのデータセットにスキーマを定義する必要があります。スキーマを定義してデータセットを作成すると、スキーマを変更することはできません。

スキーマを作成するときは、以下のガイドラインに従う必要があります。

  • Avro 形式でスキーマを定義する必要があります。サポートされている Avro データ型の詳細についてはスキーマデータ型、「」を参照してください。

  • スキーマフィールドは任意の順序で表示できますが、データファイル内の対応する列ヘッダーの順序と一致する必要があります。

  • 各データセットタイプでは、スキーマに特定の非メタデータフィールドが必要です (前の表を参照)。必須フィールドを必須データ型として定義する必要があります。

スキーマデータ型

Avro 形式でスキーマを定義する必要があります。 Amazon Personalize は配列やマップなどの複合型をサポートしていません。カテゴリメタデータやインプレッションデータなど、複数の値を持つフィールドには、 データ型文字列を使用します。データをフォーマットするときは、縦棒「|」文字を使用して各値を区切ります。

フィールドでは、次の Avro タイプのみがサポートされています (予約キーワード には追加のタイプ要件があります)。

  • float

  • double

  • int

  • long

  • 文字列

  • boolean

  • null

および予約キーワード、インタラクション、ユーザー、およびアイテムのメタデータフィールドに EVENT_VALUEnullRECOMMENDATION_ID を使用できます。フィールドにnullタイプを追加すると、不完全なデータ (空白の値を持つメタデータなど) を使用してパーソナライズされた推奨事項を生成できます。次の例は、GENRES フィールドの null 型を追加する方法を示しています。

{ "name": "GENRES", "type": [ "null", "string" ], "categorical": true }

メタデータフィールド

メタデータには、必須ではない、または予約キーワードを使用しない文字列フィールドまたは文字列以外のフィールドが含まれています。メタデータスキーマには以下の制限があります。

  • ユーザーおよび項目スキーマには、少なくとも 1 つのメタデータフィールドが必要です。

  • [Users (ユーザー)] スキーマの5メタデータフィールドと [Items (項目)] スキーマの50メタデータフィールドを追加することができます。

  • string の独自のメタデータフィールドを追加する場合は 、categorical 属性を含める必要があります。それ以外の場合、 Amazon Personalize はモデルのトレーニング時に フィールドを使用しません。

予約キーワード

予約キーワードは、メタデータ以外のオプションのフィールドです。予約キーワードを必要なデータ型として定義する必要があります。予約キーワードは次のとおりです。

  • EVENT_TYPE: クリックダウンロードの両方など、1 つ以上のイベントタイプを使用するインタラクションデータセットの場合は、 EVENT_TYPE フィールドを使用します。EVENT_TYPE フィールドを として定義する必要がありますstring

  • EVENT_VALUE: ユーザーが視聴したビデオの割合など、イベントの値データを含むインタラクションデータセットの場合は、タイプEVENT_VALUEが で、オプションで float フィールドを使用しますnull

  • CREATION_TIMESTAMP: 各項目の作成日のタイムスタンプを持つ項目データセットの場合は、 CREATION_TIMESTAMP フィールドを使用します。 Amazon Personalize はCREATION_TIMESTAMPデータを使用して項目の経過日数を計算し、それに応じて推奨事項を調整します。」を参照してください。タイムスタンプデータの作成.

  • IMPRESSION: 明示的なインプレッションデータを持つインタラクションデータセットの場合は、 型の IMPRESSION フィールドを使用しますString。 イメージは、ユーザーが特定のアイテムとやり取りした (たとえば、クリックまたは監視した) ときに表示されていたアイテムのリストです。詳細については、「」を参照してくださいインプレッションデータ

  • RECOMMENDATION_ID: 以前のレコメンデーションを暗黙的なインプレッションデータとして使用するインタラクションデータセットの場合は、オプションで タイプのRECOMMENDATION_IDフィールドを使用しString、オプションで と入力しますnull

    推奨事項を生成するときに暗黙的なインプレッションを使用するRECOMMENDATION_IDように のAmazon Personalizeフィールドを追加する必要はありません。は、それを使用せずに recommendationId オペレーションPutEventsで渡すことができます。詳細については、「」を参照してくださいインプレッションデータ

スキーマの例

各データセットタイプのスキーマの例については、以下のセクションを参照してください。

AWS Python SDK を使用したスキーマの作成

  1. 使用する Avro 形式のスキーマを定義します。

  2. スキーマは、デフォルトの Python フォルダにある JSON ファイルに保存されます。

  3. 次のコードを使用してスキーマを作成します。

    import boto3 personalize = boto3.client('personalize') with open('schema.json') as f: createSchemaResponse = personalize.create_schema( name = 'YourSchema', schema = f.read() ) schema_arn = createSchemaResponse['schemaArn'] print('Schema ARN:' + schema_arn )
  4. Amazon Personalize は、新しいスキーマの ARN を返します。後で使用するために、これを保存します。

Amazon Personalize には、スキーマを管理するためのオペレーションが用意されています。たとえば、 ListSchemas API を使用して、使用可能なスキーマのリストを取得できます。

スキーマを作成した後は、そのスキーマと一致するデータセットで使用します。詳細については、「 」を参照してください。入力データのフォーマット.