トレーニング用のアイテムメタデータの準備 - Amazon Personalize

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

トレーニング用のアイテムメタデータの準備

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

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

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

Amazon Personalize がトレーニング中に考慮する項目の最大数は、ユースケースまたはレシピによって異なります。レコメンデーションには、トレーニング中に考慮された項目のみを表示できます。

  • User-Personalization-v2 または Personalized-Ranking-v2 の場合、トレーニング中にモデルによって考慮される項目の最大数は 500 万です。これらの項目は、アイテムとアイテムインタラクションデータセットの両方からのものです。

  • User-Personalization-v2 と Personalized-Ranking-v2 以外のすべてのドメインユースケースとカスタムレシピでは、トレーニング中およびレコメンデーションの生成中にモデルによって考慮されるアイテムの最大数は 750,000 です。

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

以下のセクションでは、Amazon Personalize のアイテムメタデータを準備する方法について詳しく説明します。すべてのタイプのデータに関するバルクデータ形式のガイドラインについては、「バルクデータ形式のガイドライン」を参照してください。

項目データ要件

Amazon Personalize のアイテムメタデータ要件は次のとおりです。

十分なデータがあるかどうかわからない場合や、その品質について質問がある場合は、Amazon Personalize データセットにデータをインポートし、Amazon Personalize を使用して分析できます。詳細については、「Amazon Personalize データセット内のデータの品質と量を分析する」を参照してください。

  • すべてのドメインユースケースとカスタムレシピについて、各項目の一意の識別子を保存する ITEM_ID 列が必要です。すべての項目には項目 ID が必要です。string 最大長が 256 文字の である必要があります。

  • カスタムレシピの場合、データには少なくとも 1 つのカテゴリ文字列または数値メタデータ列が必要です。項目メタデータ列には、空/null 値を含めることができます。これらの列は 70% 以上完了することをお勧めします。

  • ドメインのユースケースでは、必要な列はドメインによって異なります。詳細については、VIDEO_ON_DEMAND ドメインの要件 または ECOMMERCE ドメインの要件 を参照してください。

  • メタデータ列の最大数は 100 です。

VIDEO_ON_DEMAND ドメインの要件

一部のユースケースでは項目メタデータが必要です (「」を参照VIDEO_ON_DEMAND ユースケース)。オプションの場合、最も関連性の高いレコメンデーションを取得するために、アイテムメタデータをインポートすることをお勧めします。アイテムメタデータをインポートする場合、データには次の列が含まれている必要があります。

  • ITEM_ID

  • GENRES (カテゴリ別 string

  • CREATION_TIMESTAMP (Unix エポック時間形式)

以下に、追加の推奨列とその必要なタイプを示します。null タイプは、列に欠損値がある可能性があることを示します。これらの列は 70% 以上完了することをお勧めします。これらの列を含めると、レコメンデーションを改善できます。

  • PRICE (浮動小数点)

  • DURATION (浮動小数点)

  • GENRE_L2 (カテゴリ別 stringnull

  • GENRE_L3 (カテゴリ別 stringnull

  • AVERAGE_RATING (float, null)

  • PRODUCT_DESCRIPTION (テキスト stringnull

  • CONTENT_OWNER (カテゴリ別 stringnull) – 動画を所有する会社。例えば、値は HBO、Paramount、 などですNBC。

  • CONTENT_CLASSIFICATION (カテゴリ別 stringnull) – コンテンツのレーティング。例えば、値は G、PG、PG-13、R、NC-17、および未評価の場合があります。

ECOMMERCE ドメインの要件

アイテムメタデータは、すべてのECOMMERCEユースケースでオプションです。アイテムデータがある場合は、最も関連性の高いレコメンデーションを取得するためにインポートすることをお勧めします。アイテムメタデータをインポートする場合、データには次の列が必要です。

  • ITEM_ID

  • PRICE (float)

  • CATEGORY_L1 (カテゴリ別 string) – カテゴリ別データのフォーマットについては、「」を参照してくださいカテゴリ別メタデータ

以下に、追加の推奨列とその必要なタイプを示します。null タイプは、列に欠損値がある可能性があることを示します。これらの列は 70% 以上完了することをお勧めします。これらの列を含めると、レコメンデーションを改善できます。

  • CATEGORY_L2 (カテゴリ別 stringnull

  • CATEGORY_L3 (カテゴリ別 stringnull

  • PRODUCT_DESCRIPTION (テキスト stringnull

  • CREATION_TIMESTAMP (float)

  • AGE_GROUP (カテゴリ別 stringnull) - 項目が対象となる経過時間グループ。値は、新生児、幼児、子供、成人の場合があります。

  • ADULT (カテゴリ別 stringnull) - アルコールなどの成人のみに制限されているかどうか。値は「はい」または「いいえ」の場合があります。

  • GENDER (カテゴリ別 stringnull) - 項目が対象となる性別。値は、男性、女性、男女兼用です。

作成のタイムスタンプデータ

作成タイムスタンプデータは、Unix エポック時間形式を秒単位で指定する必要があります。例えば、2020 年 7 月 31 日の日付のエポックタイムスタンプ (秒) は 1596238243 です。日付を Unix エポックタイムスタンプに変換するには、エポックコンバータ - Unix タイムスタンプコンバータ を使用します。

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

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

カテゴリ別メタデータ

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

複数のカテゴリを持つアイテムについては、バーティカルバー「|」を使用して各値を区切ります。例えば、GENRESフィールドの場合、項目のデータは になりますAction|Crime|Biopic。複数のレベルのカテゴリデータがあり、階層内の各レベルに複数のカテゴリを持つ項目がある場合は、各レベルに個別の列を使用し、各フィールド名の後にレベルインジケータ GENRES、GENRE_L2、GENRE_L3 を追加します。これにより、項目が複数のマルチレベルカテゴリに属している場合でも、サブカテゴリに基づいてレコメンデーションをフィルタリングできます (フィルターの作成と使用については、「」を参照してくださいレコメンデーションとユーザーセグメントのフィルタリング)。例えば、動画にはカテゴリレベルごとに次のデータが含まれている場合があります。

  • GENRES: Action|Adventure

  • GENRE_L2: 犯罪|西部

  • GENRE_L3: バイオピック

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

カテゴリ値には、最大 1,000 文字まで入力できます。1,000 文字を超えるカテゴリ値を持つアイテムがある場合、データセットのインポートジョブは失敗します。カテゴリ列には最大 1000 個の値を含めることをお勧めします。より多くの値を持つカテゴリ別データをインポートすると、レコメンデーションに悪影響を及ぼす可能性があります。以下は、カテゴリ列に指定できる値の数を減らすのに役立ちます。

  • 値が一貫した命名規則に従っていることを確認し、タイプミスがないことを確認します。例えば、「男性の靴」、「男性の靴」、「男性の靴」を混在させるのではなく、「男性の靴」を使用します。

  • 「Shoes」や「Sneakers」など、同じ基盤となるカテゴリを指す用語を少し異なるものを使用する同様のカテゴリを統合します。

  • データに階層構造があり、より広範なカテゴリ (「靴」など) に、より具体的なサブカテゴリ (「男性の靴」、「女性の靴」、「子の靴」など) が含まれている場合は、レベルごとに個別の列を使用し、各フィールド名の後にレベルインジケータを追加します。例えば、CATEGORY_1、CATEGORY_2、CATEGORY_3 などです。これにより、あいまいなカテゴリや重複するカテゴリを減らすことができます。

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

非構造化テキストメタデータ

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

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

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

非構造化テキストアイテムは複数の言語で送信できますが、各アイテムのテキストは 1 言語のみである必要があります。テキストは次の言語で入力できます。

  • 簡体字中国語

  • 繁体字中国語

  • 英語

  • フランス語

  • ドイツ語

  • 日本語

  • ポルトガル語

  • スペイン語

数値データ

Amazon Personalize は、価格や動画期間などの数値項目メタデータを使用して、ユーザーにとってより関連性の高いレコメンデーションを生成できます。この数値データは、整数または 10 進値で表すことができます。

User-Personalization またはPersonalized-Rankingカスタムレシピを使用する場合、収益の最大化など、関連性を最大化するだけでなく、アイテムメタデータ関連の目的に合わせて Amazon Personalize ソリューションを最適化できます。ソリューションを設定するときは、目的に関連する Items データセットの数値メタデータ列を選択します。例えば、VIDEO_LENGTH 列を選択してストリーミング分を最大化したり、PRICE列を選択して収益を最大化したりできます。

詳細については、「追加の目的のためのソリューションの最適化」を参照してください。

非カテゴリ別文字列データ

項目 を除きIDs、Amazon Personalize は、項目のタイトルや作成者データなど、トレーニング時に非カテゴリ非テキスト文字列データを使用しません。ただし、Amazon Personalize は次の機能で使用できます。非カテゴリ値は最大 1000 文字です。

  • Amazon Personalize では、カテゴリ別以外の文字列値を含むアイテムメタデータをレコメンデーションに含めることができます。メタデータを使用して、映画のレコメンデーションカルーセルに監督の名前を追加するなど、ユーザーインターフェイスのレコメンデーションを充実させることができます。詳細については、「レコメンデーションのアイテムメタデータ」を参照してください。

  • Similar-Items を使用すると、テーマ付きのレコメンデーションを一括生成できます。テーマを使用してレコメンデーションを一括生成する場合、一括推論ジョブでアイテム名列を指定する必要があります。詳細については、「Content Generator のテーマ付きバッチレコメンデーション」を参照してください。

  • カテゴリ別以外の文字列データに基づいて、レコメンデーションにアイテムを含めたり、レコメンデーションからアイテムを削除したりするフィルターを作成できます。フィルターの詳細については、「レコメンデーションとユーザーセグメントのフィルタリング」を参照してください。

アイテムメタデータの例

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 に伝えます。詳細については、「データのスキーマJSONファイルの作成」を参照してください。上記のサンプルデータでは、スキーマ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" }