ソリューションの作成と構成 - Amazon Personalize

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

ソリューションの作成と構成

データのインポートが完了すると、ソリューションを作成する準備が整います。ソリューションとは、Amazon Personalize のレシピ、カスタマイズされたパラメータ、および 1 つ以上のソリューションバージョン (トレーニング済みモデル) の組み合わせをいいます。

ソリューションを作成する際、特定のビジネスニーズを満たすようにソリューションを構成できます。

  • ソリューションを設定するときは、ユースケースに合ったレシピを指定します。利用可能なレシピについては、「レシピの選択」を参照してください。

  • 選択したレシピがアイテムのレコメンデーションまたはユーザーセグメントを生成する場合、Amazon Personalize がモデルのトレーニング (ソリューションバージョンの作成) 時に考慮する列を変更できます。詳細については、「トレーニング時に使用する列の設定」を参照してください。

  • ハイパーパラメータを設定して、レシピとビジネスニーズに基づいてモデルを最適化できます。異なるレシピは異なるハイパーパラメータを使用します。ハイパーパラメータの詳細については、「ハイパーパラメータおよび HPO」を参照してください。レシピで使用できるハイパーパラメータについては、「レシピの選択」のレシピのページを参照してください。

  • User-Personalization レシピ または Personalized-Ranking レシピ レシピのいずれかを使用する場合は、関連性に加えて、目的に合わせてソリューションを最適化できます。詳細については、追加の目的のためのソリューションの最適化を参照してください。

  • イベントタイプとイベント値のデータがある場合は、それらを使用して Amazon Personalize がトレーニング中に考慮するアイテムインタラクションレコードを選択できます。詳細については、トレーニングに使用するアイテムインタラクションデータの選択を参照してください。

既存のソリューションがある場合は、Amazon Personalize コンソールを使用してソリューションを複製できます。ソリューションを複製する場合は、レシピやハイパーパラメータなど、既存のソリューションの設定を出発点として使用し、必要に応じて変更を加えることができます。詳細については、「ソリューションの複製 (コンソール)」を参照してください。ソリューションを作成したら、Amazon Personalize コンソールのソリューションの詳細ページまたはDescribeSolution の操作でソリューションの設定の詳細を表示できます。

コンソール、 AWS Command Line Interface (AWS CLI)、または AWS SDK を使用してソリューションを作成および設定できます。

ソリューションの作成 (コンソール)

コンソールでソリューションを設定するには、使用するデータセットを含むデータセットグループを選択してから、ソリューション名、レシピ、およびオプションのレシピ固有のハイパーパラメータを指定します。

レシピがアイテムのレコメンデーションやユーザーセグメントを生成する場合、列を変更してトレーニングデータのさまざまな組み合わせを試したり、意味のあるデータがない列をトレーニングから除外したりできます。例えば、レコメンデーションのフィルタリングにのみ使用したい列があるとします。この列をトレーニングから除外すると、Amazon Personalize はフィルタリング時にのみこの列を考慮します。

ソリューションを設定する (コンソール)
  1. https://console.aws.amazon.com/personalize/home で Amazon Personalize コンソールを開き、アカウントにサインインします。

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

  3. [概要] ページの [ステップ 3]:

    • ドメインデータセットグループを作成した場合は、[カスタムリソースの使用][ソリューションの作成] の順に選択します。

    • カスタムデータセットグループを作成した場合は、[ソリューションの作成] を選択します。

  4. [Solution name (ソリューション名)] で、ソリューションの名前を指定します。

  5. [ソリューションタイプ] で、作成するソリューションのタイプを選択します。選択したタイプによって、利用できるレシピが決まります。

    • [アイテムのレコメンデーション] を選択して、ユーザーのアイテムのレコメンデーションを取得します。例えば、パーソナライズされた映画のレコメンデーションなどです。

    • [アクションのレコメンデーション] を選択して、ユーザーのアクションのレコメンデーションを取得します。例えば、アプリのダウンロードなど、ユーザー向けの次善のアクションを生成できます。

    • [ユーザーセグメンテーション] を選択してアイテムデータに基づいてユーザーセグメント (ユーザーのグループ) を取得します。

  6. [Recipe] (レシピ) で、レシピを選択します (「レシピの選択」を参照)。

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

  8. [次へ] を選択します。

  9. [詳細設定ページ] では、レシピがアイテムのレコメンデーションまたはユーザーセグメントを生成する場合、オプションで [トレーニング用の列] を使用して、ソリューションバージョンのトレーニング時に Amazon Personalize が考慮する列を選択します。

    デフォルトでは、Amazon Personalize はトレーニングで使用できるすべての列を使用します。選択したレシピで使用されているデータセットのみが一覧表示されます。boolean データ型フィールドとカテゴリ別以外の文字列フィールドを含む列は使用されません。EVENT_TYPE 列を除外することはできません。

    詳細については、「トレーニング時に使用する列の設定」を参照してください。

  10. ハイパーパラメータ設定 で、レシピとビジネスニーズに基づいてハイパーパラメータオプションを設定します。異なるレシピは異なるハイパーパラメータを使用します。利用可能なハイパーパラメータについては、「レシピの選択」で個々のレシピを参照してください。

  11. [ソリューション設定] で、アイテムインタラクションデータセットに EVENT_TYPE 列または EVENT_TYPE 列と EVENT_VALUE 列の両方がある場合は、オプションで [イベントタイプ][イベント値のしきい値] のフィールドを使用して、モデルのトレーニング時に Amazon Personalize が使用するアイテムインタラクションデータを選択します。

    詳細については、「トレーニングに使用するアイテムインタラクションデータの選択」を参照してください。

  12. User-Personalization レシピ または Personalized-Ranking レシピ レシピのいずれかを使用する場合は、オプションで [目的] を指定し、[目的の感度] を選択して、関連性に加えて目的に合わせてソリューションを最適化します。目的の感度は、Amazon Personalize が、目的と、インタラクションデータを介した関連性に基づいて推奨されるアイテムのバランスをとる方法を設定します。詳細については、追加の目的のためのソリューションの最適化を参照してください。

  13. へを選択し、ソリューションの詳細を確認します。ソリューションの作成後に設定を変更することはできません。

  14. [Create solution (ソリューションの作成)] を選択します。Amazon Personalize が最初のソリューションバージョンの作成を開始し、[ソリューションとレシピ] ページが表示されます。ステータスをモニタリングするには、ソリューションを選択し、[Solution versions] ソリューションバージョンセクションでステータスを確認します。

    アクティブになると、キャンペーンにデプロイしてリアルタイムのレコメンデーションを取得する準備が整います。または、レシピによっては、キャンペーンを作成しなくてもバッチレコメンデーションを取得できます。

    キャンペーンの詳細については、「」を参照してくださいキャンペーンの作成。バッチレコメンダーの詳細については、「バッチレコメンデーションとユーザーセグメント (カスタムリソース)」を参照してください。

ソリューションの作成 (AWS CLI)

を使用してソリューションを作成するには AWS CLI、次のcreate-solutionオペレーションを使用します。solution namedataset group arn、および recipe arn を指定します。

aws personalize create-solution \ --name solution name \ --dataset-group-arn dataset group arn \ --recipe-arn recipe arn

ソリューションの Amazon リソースネーム (ARN) が表示されます。次に例を示します。

{ "solutionArn": "arn:aws:personalize:<region>:solution/<solution name>" }

将来の使用のためにソリューション ARN を記録し、ソリューションバージョンの作成 (AWS CLI) に進みます。

レシピに応じて、上のコードを変更して、レシピのプロパティとハイパーパラメータを最適化する (「ハイパーパラメータおよび HPO」を参照)、トレーニングに使用される列を選択する (「トレーニング時に使用する列の設定 (AWS CLI)」を参照)、またはトレーニングに使用したインタラクションデータをフィルタリングする (「トレーニングに使用するアイテムインタラクションデータの選択」を参照) ことができます。

User-Personalization レシピ または Personalized-Ranking レシピ レシピのいずれかを使用する場合は、関連性に加えて、目的に合わせてソリューションを最適化できます。詳細については、「追加の目的のためのソリューションの最適化」を参照してください。

ソリューションの作成 (AWS SDKs)

次のコードは、Amazon Personalize ソリューションを作成する方法を示しています。ソリューションに名前を付け、データセットグループの Amazon リソースネーム (ARN) と、使用するレシピの ARN を指定します。レシピの詳細については、「レシピの選択」を参照してください。

レシピに応じて、以下のコードを変更して、レシピのプロパティとハイパーパラメータを最適化する (「ハイパーパラメータおよび HPO」を参照)、トレーニングに使用される列を設定する (「トレーニング時に使用するカラムの設定 (AWS SDK)」を参照)、またはトレーニングに使用したインタラクションデータをフィルタリングする (「トレーニングに使用するアイテムインタラクションデータの選択」を参照) ことができます。

User-Personalization レシピ または Personalized-Ranking レシピ レシピのいずれかを使用する場合は、関連性に加えて、目的に合わせてソリューションを最適化できます。詳細については、「追加の目的のためのソリューションの最適化」を参照してください。

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') print('Creating solution') create_solution_response = personalize.create_solution( name='solution name', recipeArn= 'recipe arn', datasetGroupArn = 'dataset group arn' ) solution_arn = create_solution_response['solutionArn'] print('solution_arn: ', solution_arn)
SDK for Java 2.x
public static String createPersonalizeSolution(PersonalizeClient personalizeClient, String datasetGroupArn, String solutionName, String recipeArn) { try { CreateSolutionRequest solutionRequest = CreateSolutionRequest.builder() .name(solutionName) .datasetGroupArn(datasetGroupArn) .recipeArn(recipeArn) .build(); CreateSolutionResponse solutionResponse = personalizeClient.createSolution(solutionRequest); return solutionResponse.solutionArn(); } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
SDK for JavaScript v3
// Get service clients module and commands using ES6 syntax. import { CreateSolutionCommand } from "@aws-sdk/client-personalize"; import { personalizeClient } from "./libs/personalizeClients.js"; // Or, create the client here. // const personalizeClient = new PersonalizeClient({ region: "REGION"}); // Set the solution parameters. export const createSolutionParam = { datasetGroupArn: 'DATASET_GROUP_ARN', /* required */ recipeArn: 'RECIPE_ARN', /* required */ name: 'NAME' /* required */ } export const run = async () => { try { const response = await personalizeClient.send(new CreateSolutionCommand(createSolutionParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

将来の使用のためにソリューション ARN を記録し、ソリューションバージョンの作成 (AWS SDK) に進みます。