ステップ 4: メトリクスを使用したソリューションバージョンの評価 - Amazon Personalize

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

ステップ 4: メトリクスを使用したソリューションバージョンの評価

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

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

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

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

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

重要

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

メトリクスの取得

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

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

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

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

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

次に示すのは、ソリューションバージョンからの出力例です。ユーザー・パーソナライゼーション追加の最適化目標を持つレシピ。

{ "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, "average_rewards_at_k": 0.653 } }

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

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

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

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

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

カバレッジ

やり取りデータセットと製品データセットにある一意の製品の総数から、Amazon Personalize がモデルの使用を推奨する可能性のある個別製品の割合を示す評価指標。Amazon Personalize により多くの製品を推奨するには、カバレッジスコアが高いモデルを使用します。ユーザーのパーソナライゼーションなど、アイテム探索を特徴とするレシピは、人気数など、そうでないレシピよりもカバー率が高くなります。

25 での平均逆ランク

モデルの最上位にランク付けされた推奨事項の関連性を評価する評価指標。Amazon Personalize では、すべての推奨事項リクエストの上位 25 件のうち、最も関連性の高い推奨事項をランク付けする際に、モデルの平均精度を使用してこのメトリックを計算します。

このメトリクスは、最上位にランク付けされた単一の推奨事項に関心がある場合に役立ちます。

K (5/10/25) での正規化減損累積利得 (NCDG)

モデルの上位にランク付けされた推奨事項の関連性を示す評価指標。ここで、K は 5、10、25 の推奨事項のサンプルサイズです。Amazon Personalize では、ランク付けされたリストでの掲載順位に基づいて推奨事項に重みを割り当てることにより、この値を計算します。この場合、各推奨は、その順位に応じた係数によって割り引きされます (重みが低くなる)。K での正規化された割引累積利益は、リストの下位にある推奨事項が、リストの上位にある推奨事項よりも関連性が低いことを想定しています。

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

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

K での精度

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

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

rewards_at_k

最適化の目的を持つソリューションのソリューションバージョンを作成(モデルのトレーニング)すると、Amazon Personalize はaverage_rewards_at_kメトリクス。スコアaverage_rewards_at_kは、ソリューションバージョンが目的を達成するためにどれほどうまくいくかを表します。Amazon Personalize では、インタラクションによって生成された報酬の合計を、レコメンデーションが目標を達成する方法(関連性ではなく)に基づいてランク付けされた上位25のレコメンデーションから可能な報酬の合計で割って算出されます。結果は、値が1に近いほど、推奨値から期待できるユーザーあたりの平均利益が増えるように正規化されます。

たとえば、収益を最大化することが目的である場合、Amazon Personalize は、インタラクションによって生成された総収益(たとえば、ユーザーがクリックしたすべての商品からの収益)を、収益生成元上位 25 の推奨収益の合計で割ります。近ければ近いほどaverage_rewards_at_kが 1 の場合、レコメンデーションからユーザーあたりの平均収益が増加すると予想されます。

詳細については、「」を参照してください。追加の目的のためのソリューションの最適化

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

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