追加の目的のためのソリューションの最適化 - Amazon Personalize

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

追加の目的のためのソリューションの最適化

Amazon Personalize の主な目的は、履歴とリアルタイムのインタラクションデータに基づいて、ユーザーにとって最も関連性の高いアイテムを予測することです。これらは、ユーザーがインタラクションする可能性が高いアイテム (たとえば、ユーザーがクリックする可能性が高いアイテム) です。ストリーミング分数の最大化や収益の増加など、追加の目標がある場合は、関連性と目標の両方に基づいてレコメンデーションを生成するソリューションを作成できます。

インタラクションデータセットと、NULL 以外の数値列メタデータ属性を持つアイテムデータセットを作成した後、アイテムメタデータに基づく追加の目的に最適化されたソリューションを作成できます。Amazon Personalize コンソールを使用できます。AWS Command Line Interface(AWS CLI)、またはAWSSDK。

追加の目標に合わせてソリューションを最適化するには、ユーザーパーソナライゼーションレシピまたはパーソナライズドランクレシピを使用して新しいソリューションを作成し、目標に関連するアイテムデータセットの数値メタデータ列を選択します。レコメンデーションを生成する際、Amazon Personalize は、このデータ列の値が高い商品をより重要度にします。たとえば、ストリーミング分を最大化するには VIDEO_LENGTH 列を選択するか、収益を最大化するために PRICE 列を選択できます。

客観的な要件は次のとおりです。

  • 目標には 1 つの列のみを選択できます。

  • 列は、スキーマ内の数値型である必要があります。

  • 列にはnullスキーマを入力します。

スキーマとデータ型の詳細については、「」を参照してください。データセットとスキーマ

客観的な強調と関連性のバランス

関連性よりも目標に基づいて商品を推奨する場合、トレードオフが発生する可能性があります。たとえば、レコメンデーションを通じて収益を上げたい場合、高額な商品のみを対象としたレコメンデーションでは、アイテムのユーザーに対する関連性が低くなり、ユーザーエンゲージメントとコンバージョンが低下する可能性があります。

関連性と目標のバランスを構成するには、ソリューションの作成時に次の目標感度レベルのいずれかを選択します。

  • オフ: Amazon Personalize は、主にインタラクションデータを使用して、ユーザーにとって最も関連性の高いアイテムを予測します。

  • 低: Amazon Personalize では、お客様の目的に重点を置くことはあまりありません。インタラクションデータによる関連性がより重要です。

  • ミディアム: Amazon Personalize では、インタラクションデータを通じてお客様の目的と関連性を等しく重視しています。

  • 高: Amazon Personalize では、お客様の目的に重点を置いています。インタラクションデータによる関連性はそれほど重要ではありません。

最適化パフォーマンスの測定

最適化目標を持つソリューションのソリューションバージョンを作成 (モデルをトレーニングする) と、Amazon Personalize はaverage_rewards_at_kメトリクス。スコアaverage_rewards_at_kソリューションのバージョンが目的を達成するためにどの程度うまく機能するかを示します。この指標を計算するために、Amazon Personalize は各ユーザーの報酬を次のように計算します。

rewards_per_user = total rewards from the user's interactions with their top 25 reward generating recommendations / total rewards from the user's interactions with recommendations

最終回average_rewards_at_kすべての平均ですかrewards_per_user1 以下で 0 以上の 10 進値になるように正規化されます。値が 1 に近いほど、レコメンデーションから期待できるユーザーあたりの平均利益が増えます。

たとえば、クリックによる収益を最大化することが目的の場合、Amazon Personalize では、ユーザーがクリックした商品で発生した総収益を、最も高額なレコメンデーションの上位 25 件から、ユーザーがクリックしたすべてのおすすめ商品の収益で割って、各ユーザースコアを計算します。Amazon Personalize は、すべてのユーザースコアの正規化された平均を返します。近ければ近いほどaverage_rewards_at_kが1になるほど、レコメンデーションからユーザーあたりの収益が平均で増加すると予想されます。

メトリクスの生成の詳細については、「」を参照してください。ステップ 4: メトリクスを使用してソリューションバージョンを評価する

ソリューションの最適化 (コンソール)

Amazon Personalize コンソールで追加の目標に合わせてソリューションを最適化するには、新しいソリューションを作成し、目標に関連する数値アイテムメタデータの列を選択します。

追加の目的に応じてソリューションを最適化するには (コンソール)

  1. で Amazon Personalize コンソールを開きます。https://console.aws.amazon.com/personalize/homeアカウントにサインインします。

  2. トレーニングに使用するデータセットグループを選択します。

  3. ソリューションを作成します。ダッシュボードのセクションで、を起動ボタンを使用します。ソリューションをすでに作成している場合は、ソリューションを作成します。ボタンを使用します。

  4. を使用する場合ソリューション名、ソリューションの名前を指定します。

  5. を使用する場合レシピで、いずれかを選択します。ユーザーパーソナライズのレシピまたはパーソナライズされたレシピ

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

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

  7. を使用する場合目的で、目標に関連する項目データセットから数値列を選択します。選択できるのは数値メタデータ列のみです。

  8. を使用する場合客観感度で、レコメンデーションを生成するときに、追加目標の Amazon Personalize の強調レベルを選択します。客観的機密性は、Amazon Personalize がインタラクションデータを通じて、お客様の目標と関連性に基づいてレコメンデーション商品のバランスをとる方法を設定します。詳細については、「客観的な強調と関連性のバランス」を参照してください。

  9. レシピとビジネスニーズに基づいて、ハイパーパラメーターオプションを構成します。異なるレシピは異なるハイパーパラメータを使用します。利用可能なハイパーパラメータについては、「」で個々のレシピに関するドキュメントを参照してください。ステップ 1: レシピの選択

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

  11. リポジトリの []ソリューションバージョンを作成します。ページで、ソリューションの新しいソリューションバージョンを作成します。詳細については、ソリューションバージョンの作成 (コンソール) を参照してください ソリューションバージョンを作成したら、このソリューションバージョンのメトリクスで最適化パフォーマンスを表示できます。「最適化パフォーマンスの測定」を参照してください。

ソリューションの最適化 (AWS CLI)

ユーザーパーソナライゼーションまたはパーソナライズドランクのレシピでのみ目標を最適化できます。を使用して、追加の目標に合わせてソリューションを最適化するにはAWS CLIで、新しいソリューションを作成し、optimizationObjective内のキーsolutionConfigオブジェクト。-optimizationObjectiveには、次のフィールドが含まれます。

  • itemAttribute:目標に関連する Items データセットから、数値メタデータ列の名前を指定します。

  • objectiveSensitivity:レコメンデーションを生成するときに、ソリューションが目的に応じて強調するレベルを指定します。客観的な感度レベルでは、Amazon Personalize がインタラクションデータを通じて目標と関連性に基づいてレコメンデーション商品のバランスをとる方法を設定します。-objectiveSensitivityできます。OFF、低、MEDIUMまたはHIGH。詳細については、「客観的な強調と関連性のバランス」を参照してください。

の例を次に示します。create-solution AWS CLIコマンド。を交換してください。solution name,dataset group arn, およびrecipe arn自分の値を使用します。

を使用する場合optimizationObjective、置換COLUMN_NAME目標に関連する Items データセットの数値メタデータの列名を指定します。を使用する場合objectiveSensitivityで、オフ、低、中、または高を指定します。

aws personalize create-solution \ --name solution name \ --dataset-group-arn dataset group arn \ --recipe-arn recipe arn \ --solution-config "{\"optimizationObjective\":{\"itemAttribute\":\"COLUMN_NAME\",\"objectiveSensitivity\":\"MEDIUM\"}}"

ソリューションの準備ができたら、新しいソリューションバージョンを作成します(コマンドの例については、「」を参照してください。ソリューションの設定 (AWS CLI)). ソリューションバージョンを作成したら、このソリューションバージョンのメトリクスを使って最適化パフォーマンスを表示できます。「最適化パフォーマンスの測定」を参照してください。

ソリューションの最適化 (AWSSDK)

ユーザーパーソナライゼーションまたはパーソナライズドランクのレシピでのみ目標を最適化できます。

を使用して、追加の目標に合わせてソリューションを最適化するにはAWSSDK では、新しいソリューションを作成し、目的の詳細を指定するにはoptimizationObjective内のキーsolutionConfigソリューションのオブジェクト。-optimizationObjectiveには、次のフィールドが含まれます。

  • itemAttribute:目標に関連するデータセットグループの Items データセットから、数値メタデータ列の名前を指定します。

  • objectiveSensitivity:レコメンデーションを生成するときに、ソリューションが目的に応じて強調するレベルを指定します。客観的な感度レベルでは、Amazon Personalize がインタラクションデータを通じて目標と関連性に基づいてレコメンデーション商品のバランスをとる方法を設定します。-objectiveSensitivityできます。OFF,LOW,MEDIUMまたはHIGH。詳細については、「客観的な強調と関連性のバランス」を参照してください。

次のコードを使用して、追加の目的を持つソリューションを作成します。AWS SDK for Python (Boto3)またはAWS SDK for Java 2.x。

ソリューションの準備ができたら、新しいソリューションバージョンを作成します (例:コードを参照)。ソリューションバージョンの作成 (AWS SDK)). ソリューションバージョンを作成したら、このソリューションバージョンのメトリクスを使って最適化パフォーマンスを表示できます。「最適化パフォーマンスの測定」を参照してください。

SDK for Python (Boto3)

追加の目的に最適化されたソリューションを作成するには、以下を使用します。create_solution方法。を交換してください。solution name,dataset group arn, およびrecipe arn自分の値を使用します。

を使用する場合optimizationObjective、置換COLUMN_NAME目標に関連する Items データセットの数値メタデータの列名を指定します。を使用する場合objectiveSensitivityで、オフ、低、中、または高を指定します。

import boto3 personalize = boto3.client('personalize') create_solution_response = personalize.create_solution( name= 'solution name', recipeArn= 'recipe arn', datasetGroupArn = 'dataset group arn', solutionConfig = { "optimizationObjective": { "itemAttribute": "COLUMN_NAME", "objectiveSensitivity": "MEDIUM" } } ) solution_arn = create_solution_response['solutionArn'] print('solution_arn: ', solution_arn)
SDK for Java 2.x

追加の目的に最適化されたソリューションを作成するには、以下を使用します。createPersonalizeSolutionメソッドを入力し、パラメータとして Amazon Personalize サービスクライアント、データセットグループの Amazon リソースネーム(ARN)、ソリューション名、レシピ ARN、アイテム属性、および目標感度レベルを渡します。

public static String createPersonalizeSolution(PersonalizeClient personalizeClient, String datasetGroupArn, String solutionName, String recipeArn, String itemAttribute, String objectiveSensitivity) { try { OptimizationObjective optimizationObjective = OptimizationObjective.builder() .itemAttribute(itemAttribute) .objectiveSensitivity(objectiveSensitivity) .build(); SolutionConfig solutionConfig = SolutionConfig.builder() .optimizationObjective(optimizationObjective) .build(); CreateSolutionRequest solutionRequest = CreateSolutionRequest.builder() .name(solutionName) .datasetGroupArn(datasetGroupArn) .recipeArn(recipeArn) .solutionConfig(solutionConfig) .build(); CreateSolutionResponse solutionResponse = personalizeClient.createSolution(solutionRequest); return solutionResponse.solutionArn(); } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return "";

サンプル Jupyter ノートブック

追加の目標ベースのアイテムメタデータに最適化されたソリューションの作成方法を示すサンプル Jupyter ノートブックについては、「」を参照してください。objectiveのフォルダAmazon Personalize サンプルGitHub リポジトリ