ステップ 4: ソリューションバージョンを評価する - Amazon Personalize

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

ステップ 4: ソリューションバージョンを評価する

オフラインメトリックとオンラインメトリックを使用して、ソリューションバージョンのパフォーマンスを評価できます。オンラインメトリクスは、リアルタイムのレコメンデーションとユーザーのやりとりを観察する経験的な結果です。たとえば、ユーザーがカタログを閲覧する際のクリック率を記録できます。オンラインメトリクスの生成と記録は、ユーザーの責任になります。

オフラインメトリクスは、ソリューションバージョンのトレーニング時に Amazon Personalize によって生成されるメトリックスです。オフラインメトリクスを使用して、キャンペーンを作成し、推奨事項を提案する前に、モデルのパフォーマンスを評価できます。オフラインメトリクスによって、ソリューションのハイパーパラメータを変更した結果を表示したり、同じトレーニングデータを使用して異なるレシピを使用するソリューションの結果を比較できます。このセクションの残りの部分では、メトリックスという用語はオフラインメトリクス

パフォーマンスメトリックスを取得するために、Amazon Personalize は入力インタラクションデータを 2 つのセット (トレーニングセットとテストセット) に分割します。トレーニングセットは、ユーザーとそのインタラクションデータの 90% で構成されます。テストセットは、残りの10%のユーザーとそのインタラクションデータで構成されています。Amazon Personalize、トレーニングセットを使用してソリューションバージョンを作成します。

トレーニングが完了すると、Amazon Personalize はソリューションバージョンに、各ユーザーのデータのうち最も古い 90% を入力として設定します。次に、Amazon Personalize は、ソリューションバージョンが生成した推奨事項と、テストセットの各ユーザーのデータの最新の 10% の実際のやり取りを比較して、メトリックスを計算します。

比較目的でベースラインを生成するには、Popularity-Count最も人気の高い項目の上位 K を推奨するレシピ。

重要

Amazon Personalize がソリューションバージョンメトリクスを生成するには、入力データセットグループに少なくとも 10 個のデータポイントが必要です。

Metrics

GetSolutionMetrics を呼び出して、特定のソリューションバージョンのメトリクスを取得します。

AWS Python SDK を使用したメトリクスの取得

  1. ソリューションバージョンを作成します。詳細については、「ソリューションの作成」を参照してください。

  2. メトリクスを取得するには、次のコードを使用します。

    import boto3 personalize = boto3.client('personalize') response = personalize.get_solution_metrics( solutionVersionArn = 'solution version arn') print(response['metrics'])

次に示すのは、デフォルトのソリューション設定で HRNN レシピを使用して作成したソリューションバージョンからの出力例です。

{ "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/<version-id>", "metrics": { "coverage": 0.27, "mean_reciprocal_rank_at_25": 0.0379, "normalized_discounted_cumulative_gain_at_5": 0.0405, "normalized_discounted_cumulative_gain_at_10": 0.0513, "normalized_discounted_cumulative_gain_at_25": 0.0828, "precision_at_5": 0.0136, "precision_at_10": 0.0102, "precision_at_25": 0.0091 } }

上記のメトリクスは次の用語を使用して下に説明されています。

  • 関連する推奨事項 は、特定のユーザーのテストデータ内の値に一致する推奨事項を示しています。

  • ランク は、推奨事項リスト内の推奨される事項の順位を示しています。順位 1 (リストの上位) は、ユーザーにとって最も高い関連事項であると推定されます。

  • クエリ は、GetRecommendations 呼び出しに内部的に相当するものを示しています。

各メトリクスでは、数字が大きいほど優良です。

カバレッジ

インタラクションおよび項目データセット内の一意の項目の合計数からAmazon Personalize 意の項目のモデルの使用を推奨する一意の項目の比率を示す評価メトリクス。Amazon Personalize eがより多くの商品を推奨するようにするには、カバレッジスコアが高いモデルを使用します。ユーザーのパーソナライゼーションなど、アイテムの探索機能を持つレシピは、ポピュラリティカウントなど、そうでないレシピよりもカバレッジが高くなります。

25での平均逆数ランク

モデルの最高ランクのレコメンデーションの関連性を評価する評価指標。Amazon Personalize は、推奨事項に対するリクエスト全体において最も関連性の高い推奨事項をランキングする際に、モデルの平均精度に基づいてこのメトリクスを計算します。

K(5/10/25)における正規化された割引累積ゲイン(NCDG)

モデルの高ランクのレコメンデーションの関連性を示す評価指標。ここで、K は 5、10、25 のレコメンデーションのサンプルサイズです。Amazon Personalize ision は、ランクリスト内における順位に基づいて推奨事項に重みを割り当てることによって、これを計算します。各推奨事項はそれぞれの順位による要因で割引 (低い分量の付与) されます。K での正規化された割引累積ゲインでは、リスト内の下位にあるレコメンデーションは、リスト内の上位にあるレコメンデーションよりも関連性が低いことを前提としています。

Amazon Personalize 重み付け係数を使用しています1/log(1 + position)リストの上位が順位1

リストの上位は通常注目度がより高くなるため、このメトリクスでは上位付近に表示される関連する項目が評されます。

K での精度

サンプルサイズの K(5、10、25)の推奨事項に基づいて、モデルの推奨事項がどの程度関連しているかを示す評価指標。Amazon Personalize は、上位 K のレコメンデーションのうち、関連するレコメンデーションの数を K で割った値に基づいてこの指標を計算します。ここで、K は 5、10、25 です。

このメトリクスでは、関連事項の正確な推奨事項が評されます。

Example

以下に示しているのは、メトリクスを生成するために、ソリューションバージョンから特定のユーザー用にレコメンデーションのリストを作成するシンプルな例です。2 番目と 5 番目のレコメンデーションは、このユーザーのテストデータのレコードと一致します。これらは関連するレコメンデーションです。K5 に設定されている場合、次のメトリクスがユーザーに生成されます。

reciprocal_rank

計算方法: 1/2

結果: 0.5000

normalized_discounted_cumulative_gain_at_5

計算: (1/log(1 + 2) + 1/log(1 + 5)) / (1/log(1 + 1) + 1/log(1 + 2))

結果: 0.6241

precision_at_5

計算方法: 2/5

結果: 0.4000

ソリューションバージョンを評価できたら、最適なソリューションバージョンでキャンペーンを作成します。詳細については、「キャンペーンの作成」を参照してください。