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

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

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

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

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

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

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

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

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

入力 JSON にフィルター値を指定します。

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

バッチ推論ジョブの入力および出力 JSON の例

バッチ推論ジョブの JSON 入力ファイルの最初の数行の例を次に示します。この例には、filterValues オブジェクトが含まれています。GENRES キーは、フィルター式の $GENRES プレースホルダーに対応します。この例のジョブは User-Personalization レシピを使用しています。RELATED_ITEMS レシピの場合は、userID の代わりに itemId を指定します。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 SDK)

AWS SDKsCreateBatchSegmentJobリクエストに FilterArnパラメータを含めます。 CreateBatchInferenceJob

次のコードは、 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"}} )