バッチレコメンデーションとユーザーセグメントのフィルタリング (カスタムリソース) - Amazon Personalize

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

バッチレコメンデーションとユーザーセグメントのフィルタリング (カスタムリソース)

バッチレコメンデーションとユーザーセグメントのフィルタリングは、リアルタイムレコメンデーションのフィルタリングとほぼ同じように機能します。これは、 バッチアイテムレコメンデーションの取得または で説明されているのと同じワークフローに従いますバッチユーザーセグメントの取得。バッチレコメンデーションまたはユーザーセグメントをフィルタリングするには、次の操作を行います。

  1. リアルタイムのレコメンデーションの場合と同じようにフィルターを作成します。詳細については、「リアルタイムレコメンデーションのフィルタリング」を参照してください。

  2. バッチレコメンデーション用の入力データを準備します。または ユーザーセグメントの入力データを準備しています。 の説明に従って、入力データを準備して Amazon S3 にアップロードします。フィルタでプレースホルダーパラメータを使用する場合は、filterValues オブジェクトを追加する必要があります。詳細については、「入力にフィルター値を指定する JSON」を参照してください。フィルターがプレースホルダーパラメーターを使用しない場合、入力データは バッチ推論ジョブの入力と出力JSONの例 バッチセグメントジョブの入力および出力 JSON の例 の例のようになります。

  3. フォルダまたは別の Amazon S3 バケットのいずれかで、出力データ用に個別の場所を作成します。

  4. バッチ推論ジョブまたはバッチセグメントジョブを作成します。ジョブを作成するときは、フィルターの Amazon リソースネーム (ARN) を指定します。

  5. バッチ推論ジョブまたはバッチセグメントジョブが完了したら、Amazon S3 の出力場所からレコメンデーションまたはユーザーセグメントを取得します。

入力にフィルター値を指定する JSON

などのプレースホルダーパラメータを持つフィルターでは$GENRE、入力 のfilterValuesオブジェクト内のパラメータの値を指定する必要がありますJSON。filterValues オブジェクトの場合、各キーはパラメータ名です。各値は、パラメータとして渡す基準です。各値をエスケープ引用符で囲みます: "filterValues":{"GENRES":"\"drama\""} 複数の値については、各値をコンマ "filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""} で区切ります。

バッチ推論ジョブの入力JSON例

以下は、バッチ推論ジョブ JSONの入力ファイルの最初の数行の例です。この例には、filterValues オブジェクトが含まれています。GENRES キーは、フィルター式の $GENRES プレースホルダーに対応します。この例のジョブは User-Personalization レシピを使用しています。RELATED_ITEMS レシピの場合、 itemId の代わりに を指定しますuserId。PERSONALIZED_RANKING レシピには、userID と を指定しますitemList。

{"userId": "5","filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}} {"userId": "3","filterValues":{"GENRES":"\"horror\",\"comedy\""}} {"userId": "34","filterValues":{"GENRES":"\"drama\""}}

レシピ別のバッチ推論ジョブ入力データのその他の例については、「バッチ推論ジョブの入力と出力JSONの例」を参照してください。これらの例を出発点として使用し、上記の例からの filterValues オブジェクトを追加できます。

バッチセグメントジョブの入力JSON例

以下は、バッチセグメントジョブ のフィルター値を持つJSON入力ファイルの最初の数行の例です。GENRES キーは、フィルター式の $GENRES プレースホルダーに対応します。

{"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\"","filterValues":{"COUNTRY":"\"Japan\""}} {"itemAttributes": "ITEMS.genres = \"Horror\"","filterValues":{"COUNTRY":"\"United States\"\""}} {"itemAttributes": "ITEMS.genres = \"Action\" AND ITEMS.genres = \"Adventure\"","filterValues":{"COUNTRY":"\"England\""}}

レシピ別のバッチ推論ジョブ入力データのその他の例については、「バッチセグメントジョブの入力および出力 JSON の例」を参照してください。これらの例を出発点として使用し、上記の例からの filterValues オブジェクトを追加できます。

バッチワークフローのフィルタリング (コンソール)

Amazon Personalize コンソールでバッチワークフローをフィルタリングするには、フィルターを作成し、次にバッチ推論ジョブまたはバッチセグメントジョブを作成してフィルタを選択します。手順については、「バッチ推論ジョブの作成 (コンソール)」および「バッチセグメントジョブの作成 (コンソール)」を参照してください。

バッチワークフローのフィルタリング (AWS SDKs)

でバッチレコメンデーションをフィルタリングするには AWS SDKs、フィルターを作成し、 CreateBatchInferenceJob または CreateBatchSegmentJobリクエストに FilterArnパラメータを含めます。

次のコードは、 AWS SDK for Python (Boto3)を使用するフィルターを持つバッチ推論ジョブを作成する方法を示しています。出力データには別の場所 (フォルダまたは別の Amazon S3 バケット) を使用することをお勧めします。すべてのフィールドの詳細な説明については、「バッチ推論ジョブの作成 (AWS SDKs)」を参照してください。

import boto3 personalize = boto3.client("personalize") personalize_rec.create_batch_inference_job ( solutionVersionArn = "Solution version ARN", jobName = "Batch job name", roleArn = "IAM role ARN", filterArn = "Filter ARN", jobInput = {"s3DataSource": {"path": "S3 input path"}}, jobOutput = {"S3DataDestination": {"path": "S3 output path"}} )