翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
追加の目的のためのソリューションの最適化
Amazon Personalize の主な目的は、履歴およびリアルタイムのインタラクションデータに基づいて、ユーザーにとって最も関連性の高いアイテムを予測することです。これらは、ユーザーが操作する可能性が最も高いアイテムです (例えば、ユーザーがクリックする可能性が最も高いアイテム)。ストリーミング時間 (分) の最大化や収益の増加など、追加の目的がある場合は、関連性と目的の両方に基づいてレコメンデーションを生成するソリューションを作成できます。
null 以外の数値列メタデータ属性を持つ Interactions データセットと Items データセットを作成した後、アイテムメタデータに基づいて追加の目的に最適化されたソリューションを作成できます。Amazon Personalize コンソール、AWS Command Line Interface (AWS CLI)、または AWS SDK を使用できます。
追加の目的のためにソリューションを最適化するには、User-Personalization レシピまたは Personalized-Ranking レシピを使用して新しいソリューションを作成し、目的に関連する Items データセットの数値メタデータ列を選択します。レコメンデーションを生成する場合、Amazon Personalize は、このデータ列の値がより高いアイテムをより重要視します。例えば、ストリーミング時間 (分) を最大化するために VIDEO_LENGTH 列を選択したり、収益を最大化するために PRICE 列を選択したりできます。
目的の要件は次のとおりです。
-
目的に選択できる列は 1 つだけです。
-
列は、スキーマ内の数値型である必要があります。
-
列にスキーマ内の
null
タイプを含めることはできません。
スキーマとデータ型の詳細については、「データセットとスキーマ」を参照してください。
トピック
目的の重点の置き方と関連性のバランシング
関連性よりも目的に基づいてアイテムを推奨する場合、トレードオフが生じる可能性があります。例えば、レコメンデーションを通じて収益を増やしたい場合、高額なアイテムのみのレコメンデーションでは、ユーザーとの関係においてアイテムの関連性が低下し、ユーザーのエンゲージメントとコンバージョンが減少する可能性があります。
関連性と目的のバランスを設定するには、ソリューションを作成するときに、次の目的の感度レベルのいずれかを選択します。
-
Off (オフ): Amazon Personalize は、主にインタラクションデータを使用して、ユーザーにとって最も関連性の高いアイテムを予測します。
-
Low (低): Amazon Personalize は、目的をあまり重要視しません。インタラクションデータを介した関連性がより重要視されます。
-
Medium (中): Amazon Personalize は、インタラクションデータを通じて、目的と関連性を同等に重視します。
-
High (高): 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
は、1 以下 0 超の 10 進値に正規化されたすべての rewards_per_user
の平均です。値が 1 に近いほど、レコメンデーションから期待できるユーザーあたりの平均利益が大きくなります。
例えば、クリックから得られる収益を最大化することが目的の場合、Amazon Personalize は、ユーザーが上位 25 位の最も高額なレコメンデーションからクリックしたアイテムによって生成された合計収益を、ユーザーがクリックしたすべての推奨アイテムからの収益で除することにより、各ユーザースコアを計算します。その後、Amazon Personalize は、すべてのユーザースコアの正規化された平均を返します。average_rewards_at_k
が 1 に近いほど、レコメンデーションから得られるユーザーあたりの平均収益が増大することが期待できます。
メトリクスの生成の詳細については、「メトリクスを使ったソリューションバージョンの評価」を参照してください。
ソリューションの最適化 (コンソール)
Amazon Personalize コンソールを使用して追加の目的のためにソリューションを最適化するには、新しいソリューションを作成し、目的に関連する数値アイテムメタデータの列を選択します。
追加の目的のためにソリューションを最適化するには (コンソール)
-
https://console.aws.amazon.com/personalize/home
で Amazon Personalize コンソールを開き、アカウントにサインインします。 -
トレーニングに使用するデータセットグループを選択します。
-
ダッシュボードの [Create solutions] (ソリューションを作成) のセクションで、[Start] (開始) のボタンを選択します。既にソリューションを作成している場合は、[Create solution] (ソリューションを作成) のボタンを選択します。
-
[Solution name] (ソリューション名) で、ソリューションの名前を指定します。
-
[Recipe] (レシピ) で、User-Personalization レシピ または Personalized-Ranking レシピ を選択します。
-
[Solution configuration] (ソリューション設定) で、Interactions データセットに EVENT_TYPE 列または EVENT_TYPE 列と EVENT_VALUE 列の両方がある場合は、オプションで [Event type] (イベントタイプ) と [Event value threshold] (イベント値のしきい値) のフィールドを使用して、モデルのトレーニング時に Amazon Personalize が使用するインタラクションデータを選択します。
詳細については、「トレーニングに使用するインタラクションデータの選択」を参照してください。
-
[Objective] (目的) で、目的に関連する Items データセットから数値列を選択します。数値のメタデータ列のみを選択できます。
-
[Objective sensitivity] (目的の感度) で、レコメンデーションを生成するときに、Amazon Personalize が適用する、追加の目標に対する重点のレベルを選択します。目的の感度は、Amazon Personalize が、目的と、インタラクションデータを介した関連性に基づいて推奨されるアイテムのバランスをとる方法を設定します。詳細については、「目的の重点の置き方と関連性のバランシング」を参照してください。
-
レシピとビジネスニーズに基づいて、ハイパーパラメータのオプションを設定します。異なるレシピは異なるハイパーパラメータを使用します。使用可能なハイパーパラメータについては、レシピの説明を表示します。 の個々のレシピのドキュメントを参照してください。
-
[Next] (次へ) を選択します。
-
[Create solution version] (ソリューションバージョンを作成) のページで、ソリューションの新しいソリューションバージョンを作成します。詳細については、「ソリューションバージョンの作成 (コンソール)」を参照してください。ソリューションバージョンを作成すると、ソリューションバージョンのメトリクスで最適化パフォーマンスを表示できます。最適化パフォーマンスの測定 を参照してください。
ソリューションの最適化 (AWS CLI)
User-Personalization または Personalized-Ranking レシピを使用する場合にのみ、目的に合わせて最適化できます。AWS CLI を使用して追加の目的のためにソリューションを最適化するには、新しいソリューションを作成し、solutionConfig
オブジェクトの optimizationObjective
キーを使用して目的の詳細を指定します。optimizationObjective
には以下のフィールドがあります。
-
itemAttribute
: 目的に関連する Items データセットの数値メタデータ列の名前を指定します。 -
objectiveSensitivity
: レコメンデーションを生成するときに、ソリューションが目的を重要視するレベルを指定します。目的の感度レベルは、Amazon Personalize が、目的と、インタラクションデータを介した関連性に基づいて推奨されるアイテムのバランスをとる方法を設定します。objectiveSensitivity
は、OFF
、[LOW] (低)、MEDIUM
、またはHIGH
とすることができます。詳細については、「目的の重点の置き方と関連性のバランシング」を参照してください。
create-solution
AWS CLI コマンドの例を次に示します。solution name
、dataset group arn
、および recipe
arn
の値を独自の値に置き換えます。
optimizationObjective
について、COLUMN_NAME
を、目的に関連する Items データセットの数値メタデータ列名に置き換えます。objectiveSensitivity
について、[OFF] (オフ)、[LOW] (低)、[MEDIUM] (中)、または [HIGH] (高) を指定します。
aws personalize create-solution \ --name
solution name
\ --dataset-group-arndataset group arn
\ --recipe-arnrecipe arn
\ --solution-config "{\"optimizationObjective\":{\"itemAttribute\":\"COLUMN_NAME
\",\"objectiveSensitivity\":\"MEDIUM
\"}}"
ソリューションの準備が整ったら、新しいソリューションバージョンを作成します (コマンドの例については、「ソリューションの作成 (AWS CLI)」を参照してください)。ソリューションバージョンを作成すると、ソリューションバージョンのメトリクスで最適化パフォーマンスを表示できます。最適化パフォーマンスの測定 を参照してください。
ソリューションの最適化 (AWS SDK)
User-Personalization または Personalized-Ranking レシピを使用する場合にのみ、目的に合わせて最適化できます。
AWS SDK を使用して追加の目的のためにソリューションを最適化するには、新しいソリューションを作成し、当該ソリューション向けに solutionConfig
オブジェクトの optimizationObjective
キーを使用して目的の詳細を指定します。optimizationObjective
には以下のフィールドがあります。
-
itemAttribute
: 目的に関連する、データグループの Items データセットの数値メタデータ列の名前を指定します。 -
objectiveSensitivity
: レコメンデーションを生成するときに、ソリューションが目的を重要視するレベルを指定します。目的の感度レベルは、Amazon Personalize が、目的と、インタラクションデータを介した関連性に基づいて推奨されるアイテムのバランスをとる方法を設定します。objectiveSensitivity
は、OFF
、LOW
、MEDIUM
、またはHIGH
にすることができます。詳細については、「目的の重点の置き方と関連性のバランシング」を参照してください。
次のコードを使用して、AWS SDK for Python (Boto3) または AWS SDK for Java 2.x で追加の目的を持つソリューションを作成します。
ソリューションの準備が整ったら、新しいソリューションバージョンを作成します (コードの例については、「ソリューションバージョンの作成 (AWS SDK)」を参照してください)。ソリューションバージョンを作成すると、ソリューションバージョンのメトリクスで最適化パフォーマンスを表示できます。最適化パフォーマンスの測定 を参照してください。
サンプル Jupyter ノートブック
その他の目的ベースのアイテムメタデータ用に最適化されたソリューションを作成する方法を示す Jupyter ノートブックのサンプルについては、Amazon Personalize サンプルリポジトリの objective_optization