

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

# トレーニング用のアイテムメタデータの準備
<a name="items-datasets"></a>

 アイテムメタデータには、ユーザーが操作するアイテムに関する数値データとカテゴリ別データが含まれます。アイテムメタデータの例には、作成タイムスタンプ、料金、ジャンル、説明、可用性などがあります。アイテムに関するメタデータを Amazon Personalize の *Items データセット*にインポートします。

ドメインのユースケースやカスタムレシピに応じて、アイテムメタデータは、Amazon Personalize がユーザーにより関連性の高いアイテムを推奨したり、より正確に類似アイテムを予測したり、より意味のあるユーザーセグメントを推奨したりするのに役立ちます。また、Amazon Personalize がレコメンデーションで新しいアイテムを取り上げるのに役立ちます。一部のドメインユースケースではアイテムメタデータが必要であり、すべてのカスタムレシピではオプションです。詳細については、「[ユースケースを Amazon Personalize リソースと一致させる](use-cases-and-recipes.md)」のドメインユースケースまたはレシピのデータ要件を参照してください。

 Amazon Personalize は、トレーニング時にアイテムのタイトルや作成者データなど、カテゴリ以外の文字列アイテムデータを使用しません。ただし、このデータをインポートしても、レコメンデーションが強化される可能性があります。詳細については、「[非カテゴリ別文字列データ](#item-string-data)」を参照してください。

トレーニング中に Amazon Personalize が考慮するアイテムの最大数は、ユースケースまたはレシピによって異なります。レコメンデーションには、トレーニング中に考慮されたアイテムのみを表示できます。
+ User-Personalization-v2 または Personalized-Ranking-v2 の場合、トレーニング中にモデルによって考慮されるアイテムの最大数は 500 万です。これらのアイテムは、アイテムとアイテムインタラクションデータセットの両方からのものです。
+ User-Personalization-v2 と Personalized-Ranking-v2 以外のすべてのドメインユースケースとカスタムレシピでは、トレーニングとレコメンデーションの生成中にモデルによって考慮されるアイテムの最大数は 750,000 です。

すべてのドメインユースケースとカスタムレシピでは、バルクアイテムデータは CSV ファイルにある必要があります。ファイル内の各行は、一意のアイテムを表す必要があります。データの準備が完了したら、スキーマ JSON ファイルを作成する準備が整います。このファイルは、データの構造を Amazon Personalize に伝えます。詳細については、「[Amazon Personalize スキーマのスキーマ JSON ファイルの作成](how-it-works-dataset-schema.md)」を参照してください。

以下のセクションでは、Amazon Personalize のアイテムメタデータを準備する方法について詳しく説明します。すべてのタイプのデータの、バルクデータフォーマットのガイドラインについては、「[バルクデータフォーマットのガイドライン](preparing-training-data.md#general-formatting-guidelines)」を参照してください。

**Topics**
+ [アイテムデータ要件](#item-data-requirements)
+ [作成のタイムスタンプデータ](#creation-timestamp-data)
+ [カテゴリ別メタデータ](#item-categorical-data)
+ [非構造化テキストメタデータ](#text-data)
+ [数値データ](#item-numerical-data)
+ [非カテゴリ別文字列データ](#item-string-data)
+ [アイテムメタデータの例](#items-data-example)

## アイテムデータ要件
<a name="item-data-requirements"></a>

 Amazon Personalize のアイテムメタデータ要件を次に示します。

十分なデータがあるかどうかわからない場合や、その品質について疑問がある場合は、Amazon Personalize データセットにデータをインポートし、Amazon Personalize を使用して分析できます。詳細については、「[Amazon Personalize データセット内のデータの品質と量の分析](analyzing-data.md)」を参照してください。
+ すべてのドメインユースケースとカスタムレシピについて、各アイテムの一意の識別子を保存する ITEM\$1ID 列が必要です。すべてのアイテムにアイテム ID が必要です。最大長が 256 文字の `string` である必要があります。
+ カスタムレシピの場合、データには少なくとも 1 つのカテゴリ文字列または数値メタデータ列が必要です。アイテムメタデータ列には、空/null 値を含めることができます。これらの列は、少なくとも 70% 完成していることをお勧めします。
+ ドメインユースケースの場合、必要な列はドメインによって異なります。詳細については「[VIDEO\$1ON\$1DEMAND ドメインの要件](#vod-item-data-req)」または「[ECOMMERCE ドメインの要件](#retail-item-data-req)」を参照してください。
+ メタデータ列の最大数は 100 です。

### VIDEO\$1ON\$1DEMAND ドメインの要件
<a name="vod-item-data-req"></a>

一部のユースケースではアイテムメタデータが必要です (「[VIDEO\$1ON\$1DEMAND ユースケース](VIDEO_ON_DEMAND-use-cases.md)」を参照)。オプションである場合でも、最も関連性の高いレコメンデーションを取得するためにアイテムメタデータをインポートすることをお勧めします。アイテムメタデータをインポートする場合、データには次の列を含める必要があります。
+ ITEM\$1ID
+ GENRES (カテゴリ `string`)
+ CREATION\$1TIMESTAMP (Unix エポック時間形式)

 以下に、追加の推奨列とそれに必要なタイプを示します。`null` タイプは、列に欠損値がある可能性があることを示します。これらの列は、少なくとも 70% 完成していることをお勧めします。これらの列を含めると、レコメンデーションを改善できます。
+ PRICE (浮動小数点)
+ DURATION (浮動小数点)
+ GENRE\$1L2 (カテゴリ別 `string`、`null`)
+ GENRE\$1L3 (カテゴリ別 `string`、`null`)
+ AVERAGE\$1RATING (`float`、`null`)
+ 製品説明 (テキスト `string`、`null`)
+ CONTENT\$1OWNER (カテゴリ別 `string`、`null`) — 動画を所有している会社。例えば、値は HBO、Paramount、NBC などです。
+ CONTENT\$1CLASSIFICATION (カテゴリ別 `string`、`null`) — コンテンツのレーティング。例えば、値は G、PG、PG-13、R、NC-17、および未評価の場合があります。

### ECOMMERCE ドメインの要件
<a name="retail-item-data-req"></a>

 アイテムメタデータは、すべての ECOMMERCE のユースケースでオプションです。アイテムデータがある場合は、最も関連性の高いレコメンデーションを取得するためにインポートすることをお勧めします。アイテムメタデータをインポートする場合、データには次の列が必要です。
+ ITEM\$1ID
+ 料金 (`float`)
+ CATEGORY\$1L1 (カテゴリ別 `string`) — カテゴリ別データのフォーマットについては、「[カテゴリ別メタデータ](#item-categorical-data)」を参照してください。

 以下に、追加の推奨列とそれに必要なタイプを示します。`null` タイプは、列に欠損値がある可能性があることを示します。これらの列は、少なくとも 70% 完成していることをお勧めします。これらの列を含めると、レコメンデーションを改善できます。
+ CATEGORY\$1L2 (カテゴリ別 `string`、`null`)
+ CATEGORY\$1L3 (カテゴリ別 `string`、`null`)
+ PRODUCT\$1DESCRIPTION (テキスト `string`、`null`)
+ CREATION\$1TIMESTAMP (`float`)
+ AGE\$1GROUP (カテゴリ別 `string`、`null`) — 商品が対象とする年齢グループ。値は、新生児、幼児、子供、成人の場合があります。
+ ADULT (カテゴリ別 `null`) — `string` アイテムがアルコールなど、成人のみを対象としているかどうか。値は「はい」または「いいえ」の場合があります。
+ GENDER (カテゴリ別 `string`、`null`) — アイテムが対象とする性別。値は、男性、女性、男女兼用です。

## 作成のタイムスタンプデータ
<a name="creation-timestamp-data"></a>

作成のタイムスタンプデータは Unix エポック時刻形式 (秒単位) である必要があります。例えば、2020 年 7 月 31 日の日付のエポックタイムスタンプ (秒) は 1596238243 です。日付を Unix エポックタイムスタンプに変換するには、[[エポックコンバーター — Unix タイムスタンプコンバーター]](https://www.epochconverter.com) を使用します。

Amazon Personalize は、作成タイムスタンプデータ (Unix エポック時間形式 (秒)) を使用してアイテムが存在するようになってからの期間を計算し、それに応じてレコメンデーションを調整します。

1 つ以上のアイテムについて作成タイムスタンプのデータが欠落している場合、Amazon Personalize は、インタラクションデータがある場合はこの情報からこの情報を推測し、アイテムの最も古いインタラクションデータのタイムスタンプをアイテムの作成タイムスタンプとして使用します。アイテムにインタラクションデータがない場合、その作成タイムスタンプはトレーニングセット内の最新のインタラクションのタイムスタンプとして設定され、Amazon Personalize はそれを新しいアイテムとみなします。

## カテゴリ別メタデータ
<a name="item-categorical-data"></a>

 特定のレシピとすべてのドメインユースケースでは、Amazon Personalize は、ユーザーにとって最も関連性の高いアイテムを明らかにする基本的なパターンを識別する際に、アイテムのジャンルや色などのカテゴリメタデータを使用します。ユースケースに基づいて独自の値の範囲を定義します。カテゴリメタデータはどの言語でもかまいません。

 複数のカテゴリを持つアイテムについては、バーティカルバー「\$1」を使用して各値を区切ります。例えば、GENRES フィールドについて、アイテムのデータは `Action|Crime|Biopic` である場合があります。複数のレベルのカテゴリデータがあり、一部のアイテムで階層内の各レベルに複数のカテゴリがあるアイテムがある場合は、各レベルに個別の列を使用し、フィールド名の後にレベルインジケータ GENRE\$1L2、GENRE\$1L2、GENRE\$1L2、GENRE\$1L3 を追加します。これにより、アイテムが複数のマルチレベルカテゴリに属している場合でも、サブカテゴリに基づいてレコメンデーションをフィルタリングできます (フィルターの作成と使用については、「[レコメンデーションとユーザーセグメントのフィルタリング](filter.md)」を参照してください)。例えば、動画にはカテゴリレベルごとに次のデータが含まれている場合があります。
+ GENRES: アクション\$1アドベンチャー
+ GENRE\$1L2: 犯罪\$1西部劇
+ GENRE\$1L3: バイオピック

*この例では、動画はアクション > 犯罪 > バイオピックの階層、および*アドベンチャー > ウエスタン > バイオピックの階層です。L3 まで使用することをお勧めしますが、必要に応じてもっと多くのレベルを使用できます。

カテゴリ値には、最大 1,000 文字まで入力できます。1,000 文字を超えるカテゴリ値を持つアイテムがある場合、データセットのインポートジョブは失敗します。カテゴリ列には、最大 1,000 個の値を含めることをお勧めします。より多くの値を持つカテゴリデータをインポートすると、レコメンデーションに悪影響を及ぼす可能性があります。以下は、カテゴリ列の可能な値の数を減らすのに役立ちます。
+ 値が一貫した命名規則に従っていることを確認し、誤字がないことを確認します。例えば、「Men's Shoes」、「Mens Shoes」、「Male Footwear」を混在させるのではなく、「Men's Shoes」を使用します。
+ 「Shoes」や「Sneakers」など、同じ基本的なカテゴリを指してわずかに異なる用語を使用する類似したカテゴリを統合します。
+ データに階層構造があり、より広範なカテゴリ (「Footwear」など) に、より具体的なサブカテゴリ (「Men's Shoes」、「Women's Shoes」、「Children's Shoes」など) が含まれている場合は、各レベルに個別の列を使用し、各フィールド名の後にレベルインジケータを追加します。例えば、CATEGORY\$11、CATEGORY\$12、CATEGORY\$13 などです。これにより、あいまいなカテゴリや重複するカテゴリを減らすことができます。

すべてのレシピとドメインで、カテゴリデータをインポートし、それを使用してアイテムの属性に基づいてレコメンデーションをフィルタリングできます。フィルタリングのレコメンデーションについては、「[レコメンデーションとユーザーセグメントのフィルタリング](filter.md)」を参照してください。

## 非構造化テキストメタデータ
<a name="text-data"></a>

特定のレシピとドメインを使用すると、Amazon Personalize は、製品の説明、製品のレビュー、映画のあらすじなど、非構造化テキストメタデータから有意義な情報を抽出できます。Amazon Personalize は、非構造化テキストを使用して、特にアイテムが新しい場合やインタラクションデータが少ない場合に、ユーザーに関連するアイテムを識別します。最大 1 つのテキストフィールドしか追加できません。Items データセットに非構造化テキストデータを含めて、カタログ内の新しいアイテムのクリック率とコンバージョン率を高めます。

非構造化テキストメタデータを準備するときは、テキストを二重引用符で囲み、新しい改行文字すべてを削除します。`\` 文字を使用して、データ内の二重引用符または \$1 文字をエスケープします。Amazon Personalize では、テキストフィールドは文字数制限で切り捨てられます。テキスト内の最も関連性の高い情報がフィールドの先頭にあることを確認してください。

非構造化テキストの値は、中国語と日本語を除くすべての言語で最大 20,000 文字を使用できます。中国語と日本語については、最大 7,000 文字を使用できます。Amazon Personalize は、文字数制限を超える値を上限値になるように切り捨てます。

非構造化テキストアイテムは複数の言語で送信できますが、各アイテムのテキストは 1 言語のみである必要があります。テキストは次の言語で入力できます。
+ 簡体字中国語
+ 繁体字中国語
+ 英語
+ フランス語
+ ドイツ語
+ 日本語
+ ポルトガル語
+ スペイン語

## 数値データ
<a name="item-numerical-data"></a>

 Amazon Personalize は、料金や動画の再生時間などの数値アイテムメタデータを使用して、ユーザーにより関連性の高いレコメンデーションを生成できます。この数値データは、整数または 10 進値で表すことができます。

[User-Personalization](native-recipe-new-item-USER_PERSONALIZATION.md) または [Personalized-Ranking](native-recipe-search.md) カスタムレシピを使用する場合、収益の最大化など、関連性を最大化するだけでなく、アイテムメタデータ関連の目的に合わせて Amazon Personalize ソリューションを最適化できます。ソリューションを設定するときは、目標に関連するアイテムデータセットの数値メタデータ列を選択します。例えば、ストリーミング時間 (分) を最大化するために VIDEO\$1LENGTH 列を選択したり、収益を最大化するために PRICE 列を選択したりできます。

詳細については、「[追加の目的のためのソリューションの最適化](optimizing-solution-for-objective.md)」を参照してください。

## 非カテゴリ別文字列データ
<a name="item-string-data"></a>

 アイテム ID 以外、Amazon Personalize は、トレーニング時にアイテムのタイトルや作成者データなど、非カテゴリ別、テキスト以外の文字列アイテムデータを使用しません。ただし、Amazon Personalize の以下の機能では使用することがあります。非カテゴリ別の値には、最大 1,000 文字まで入力できます。
+ Amazon Personalize では、カテゴリ別以外の文字列値を含むアイテムメタデータをレコメンデーションに含めることができます。メタデータを使用して、映画のレコメンデーションカルーセルに監督の名前を追加するなど、ユーザーインターフェイスのレコメンデーションを充実させることができます。詳細については、「[レコメンデーションのアイテムメタデータ](campaigns.md#create-campaign-return-metadata)」を参照してください。
+  [Similar-Items](native-recipe-similar-items.md) を使用すると、テーマ付きのレコメンデーションを一括生成できます。テーマを使用してレコメンデーションを一括生成する場合、一括推論ジョブでアイテム名列を指定する必要があります。詳細については、「[Content Generator のテーマ付きバッチレコメンデーション](themed-batch-recommendations.md)」を参照してください。
+  カテゴリ別以外の文字列データに基づいて、レコメンデーションにアイテムを含めたり、レコメンデーションからアイテムを削除したりするフィルターを作成できます。フィルターの詳細については、「[レコメンデーションとユーザーセグメントのフィルタリング](filter.md)」を参照してください。

## アイテムメタデータの例
<a name="items-data-example"></a>

CSV ファイル内の映画メタデータの最初の数行は次のようになります。

```
ITEM_ID,GENRES,CREATION_TIMESTAMP,DESCRIPTION
1,Adventure|Animation|Children|Comedy|Fantasy,1570003267,"This is an animated movie that features action, comedy, and fantasy. Audience is children. This movie was released in 2004."
2,Adventure|Children|Fantasy,1571730101,"This is an adventure movie with elements of fantasy. Audience is children. This movie was release in 2010."
3,Comedy|Romance,1560515629,"This is a romantic comedy. The movie was released in 1999. Audience is young women."
4,Comedy|Drama|Romance,1581670067,"This movie includes elements of both comedy and drama as well as romance. This movie was released in 2020."
...
...
```

`ITEM_ID` 列は必須で、個々のアイテムごとに一意の識別子を保存します。`GENRE` 列には各映画のカテゴリメタデータが保存され、`DESCRIPTION` 列は非構造化テキストメタデータです。`CREATION_TIMESTAMP` 列には、各アイテムの作成時刻が Unix エポック時間形式で秒単位で保存されます。

データの準備が完了したら、スキーマ JSON ファイルを作成する準備が整います。このファイルは、データの構造を Amazon Personalize に伝えます。詳細については、「[Amazon Personalize スキーマのスキーマ JSON ファイルの作成](how-it-works-dataset-schema.md)」を参照してください。これは、上記のサンプルデータに対するスキーマ JSON ファイルの形式です。

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