Amazon Personalize でのドメインレコメンダーの作成 - Amazon Personalize

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

Amazon Personalize でのドメインレコメンダーの作成

Amazon Personalize コンソールを使用してレコメンダーを作成できます。 AWS Command Line Interface (AWS CLI)、または AWS SDKs。以下に、Amazon Personalize コンソールでレコメンダーを作成する詳細な手順と、必須フィールドのみを使用してレコメンダーを作成する方法を示すコード例を示します。

レコメンダーの作成 (コンソール)

重要

minRecommendationRequestsPerSecond を高く設定すると請求額が増加します。最初は minRecommendationRequestsPerSecond に 1 を使用することをお勧めします (デフォルト)。Amazon CloudWatch メトリクスを使用して使用状況を追跡し、minRecommendationRequestsPerSecond必要に応じて を増やします。詳細については、「1 秒あたりの最小レコメンデーションリクエスト数と自動スケーリング」を参照してください。

次のように、Amazon Personalize コンソールを使用して各ユースケース向けのレコメンダーを作成します。ドメインデータセットグループを作成したばかりで、既に [Overview] (概要) のページが表示されている場合は、ステップ 3 に進みます。

レコメンダーを作成するには
  1. https://console.aws.amazon.com/personalize/自宅の Amazon Personalize コンソールを開き、アカウントにサインインします。

  2. [データセットグループ] のページで、ドメインデータセットグループを選択します。

  3. ステップ 3 で、[<domain name> レコメンダーを使用する] を選択し、[レコメンダーの作成] を選択します。

  4. [ユースケースの選択] のページで、レコメンダー入を作成するユースケースを選択し、それぞれに [レコメンダー名] を入力します。Amazon Personalize は、選択した各ユースケースについてレコメンダーを作成します。使用可能なユースケースは、ドメインによって異なります。ユースケースの選択については、「ユースケースの選択」を参照してください。

  5. [Next (次へ)] を選択します。

  6. [詳細設定] のページでは、ビジネスニーズに応じて各レコメンダーを設定します。

    • レコメンダーのユースケースで使用されるデータセットごとに、レコメンダーを裏付けるモデルをトレーニングするときに Amazon Personalize が考慮する列を選択できます。デフォルトでは、Amazon Personalize はトレーニング時に使用できるすべての列を使用します。詳細については、「Amazon Personalize ドメインレコメンダーの作成時に使用する列の設定」を参照してください。

    • [1 秒あたりの最小レコメンデーションリクエスト数] を変更して、レコメンダーの新しい最小リクエスト容量を指定できます。minRecommendationRequestsPerSecond を高く設定すると請求額が増加します。最初は 1 を使用することをお勧めします (デフォルト)。Amazon CloudWatch メトリクスを使用して使用状況を追跡し、minRecommendationRequestsPerSecond必要に応じて を増やします。詳細については、「1 秒あたりの最小レコメンデーションリクエスト数と自動スケーリング」を参照してください。

    • アイテムデータセットのメタデータをレコメンデーションに含める場合は、[レコメンデーション結果にアイテムメタデータを返す] を選択します。有効にすると、レコメンデーションのリクエストやパーソナライズされたランキングで、アイテムデータセットから列を指定できます。Amazon Personalize は、レコメンデーションレスポンス内の各アイテムについてこのデータを返します。

      メタデータを有効にするには、メタデータの列を含むアイテムデータセットが必要です。

    • Top picks for your または Recommended for you のユースケースでは、オプションで探索設定を変更します。探索は、インタラクションデータがないかほとんどない状態で、ユーザーが商品にどのように反応するかを学習するための、さまざまな商品のレコメンデーションをテストに関連します。次のフィールドを使用して、探索を設定します。

      • 関連性の低いアイテムの探索に重点を置く (探索の重み) — 探索する範囲を設定します。0~1 の小数値を指定します。デフォルトは 0.3 です。値が 1 に近くなるほど、探索が多くなります。探索が増えると、レコメンデーションにはより多くのアイテムが含まれますが、アイテムインタラクションデータや以前の行動に基づく関連性が少なくなります。ゼロでは、探索は行われず、レコメンデーションは現在のデータに基づきます (関連性)。

      • 探索アイテムが存在するようになってからの期間のカットオフ - アイテムインタラクションデータセット内のすべてのアイテムについて、最新のインタラクションからの日数で、アイテムが存在するようになってからの最長期間を指定します。これにより、アイテムの経過時間に基づいてアイテム探索の範囲が定義されます。Amazon Personalize は作成タイムスタンプを基に、あるいは作成タイムスタンプデータがない場合はアイテムインタラクションデータを基に、アイテムが存在するようになってからの期間を決定します。Amazon Personalize がアイテムが存在するようになってからの期間を決定する方法の詳細については、「作成のタイムスタンプデータ」を参照してください。

        Amazon Personalize が探索中に考慮するアイテムの数を増やすには、より大きな値を入力します。デフォルトは 30 日 で、最短は 1 日 です。レコメンデーションには、指定したアイテムの期間制限より古いアイテムが含まれる場合があります。その理由は、これらの商品がユーザーの興味に関連しており、それらを特定するために探索が必要ではなかったためです。

    • [タグ] には、オプションで任意のタグを追加します。Amazon Personalize リソースのタグ付けについての詳細は、「Amazon Personalize リソースのタグ付け」を参照してください。

  7. 各ユースケースのレコメンダーを作成するには、[レコメンダーの作成] を選択します。

    各レコメンダーのステータスは、[Recommenders] (レコメンダー) のページでモニタリングできます。レコメンダーのステータスが Active の場合、アプリケーションでそれを使用してレコメンデーションを取得できます。

レコメンダーの作成 (AWS CLI)

以下を使用する AWS CLI ドメインユースケースのレコメンダーを作成する コード。このコードは、各ドメインユースケースのために実行します。にはrecipeArn、ユースケースの Amazon リソースネーム (ARN) を指定します。使用可能なユースケースは、ドメインによって異なります。ユースケースとそのリストについては、ARNs「」を参照してくださいユースケースの選択

aws personalize create-recommender \ --name recommender name \ --dataset-group-arn dataset group ARN \ --recipe-arn recipe ARN

レコメンダーの作成 (AWS SDKs)

次のコードを使用して、ドメインのユースケースのレコメンダーを作成します。レコメンダーに名前を付け、ドメインデータセットグループの Amazon リソースネーム () を指定しますARN。にはrecipeArn、ユースケースARNの を指定します。このコードは、各ドメインユースケースのために実行します。使用可能なユースケースは、ドメインによって異なります。ユースケース、その 、および要件のリストについてはARNs、「」を参照してくださいユースケースの選択

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') create_recommender_response = personalize.create_recommender( name = 'recommender name', recipeArn = 'recipe ARN', datasetGroupArn = 'dataset group ARN' ) recommender_arn = create_recommender_response['recommenderArn'] print('Recommender ARN:' + recommender_arn)
SDK for Java 2.x
public static String createRecommender(PersonalizeClient personalizeClient, String name, String datasetGroupArn, String recipeArn) { long maxTime = 0; long waitInMilliseconds = 30 * 1000; // 30 seconds String recommenderStatus = ""; try { CreateRecommenderRequest createRecommenderRequest = CreateRecommenderRequest.builder() .datasetGroupArn(datasetGroupArn) .name(name) .recipeArn(recipeArn) .build(); CreateRecommenderResponse recommenderResponse = personalizeClient .createRecommender(createRecommenderRequest); String recommenderArn = recommenderResponse.recommenderArn(); System.out.println("The recommender ARN is " + recommenderArn); DescribeRecommenderRequest describeRecommenderRequest = DescribeRecommenderRequest.builder() .recommenderArn(recommenderArn) .build(); maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60; while (Instant.now().getEpochSecond() < maxTime) { recommenderStatus = personalizeClient.describeRecommender(describeRecommenderRequest).recommender() .status(); System.out.println("Recommender status: " + recommenderStatus); if (recommenderStatus.equals("ACTIVE") || recommenderStatus.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } return recommenderArn; } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
SDK for JavaScript v3
// Get service clients and commands using ES6 syntax. import { CreateRecommenderCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION" }); // set the recommender's parameters export const createRecommenderParam = { name: "RECOMMENDER_NAME", /* required */ recipeArn: "RECIPE_ARN", /* required */ datasetGroupArn: "DATASET_GROUP_ARN" /* required */ } export const run = async () => { try { const response = await personalizeClient.send(new CreateRecommenderCommand(createRecommenderParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();