Amazon Personalize
開発者ガイド

ソリューションバージョンを評価する

Amazon Personalize はソリューションバージョンを作成するときに、複数のメトリクスを生成します。これらのメトリクスによって、キャンペーンを作成し、推奨事項を提案する前に、ソリューションバージョンを評価できます。メトリクスによって、ソリューションのハイパーパラメータを変更した結果を表示することができます。また、同じトレーニングデータを使用しながら異なるレシピで作成されたソリューション間のメトリクスを比較できます。

ユーザーのパーソナライズにおいては、データ上で複数のレシピを実行して最適なソリューションを判断することが推奨されます。ベースラインとしては、最も人気の高い項目の上位 K を推奨する Popularity-Count レシピを実行します。

Amazon Personalize はソリューションバージョンを作成する前に、データセットをトレーニングデータとテストデータに分割します。次に、トレーニングデータを使用してソリューションバージョンが作成されます。その後、ソリューションバージョンの推奨事項とテストデータの実際のインタラクション記録を比較してメトリクスが生成されます。

メトリクス

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 呼び出しに内部的に相当するものを示しています。

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

カバレッジ

トレーニングデータ内の一意の項目の合計数に対するクエリ総数からの一意の推奨される項目の比率。

mean_reciprocal_rank_at_25

クエリ全体において上位 25 番目までの推奨事項に対する最初の関連推奨事項の相互ランクの平均。

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

normalized_discounted_cumulative_gain_at_K

割引取得は、推奨事項リストの下位にある推奨事項は上位の推奨事項よりも関連性が低いことを前提としています。したがって、各推奨事項はそれぞれの順位による要因で割引 (低い分量の付与) されます。K で累積割引取得 (DCG) を行うには、上位の K 推奨事項内の関連する各割引推奨事項が集計されます。正規化された割引累積取得 (NDCG) は、NDCG が 0~1 の理想的な DCG によって分割された DCG です(理想的な DCG では、上位の K 推奨事項が関連性によって並べ替えられます)

Amazon Personalize は、リストの上位が順位 1 である 1/log(1 + position) の重量要素を使用します。

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

precision_at_K

上位 K 推奨事項を K で分割した関連推奨事項の数。

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

以下に示しているのは、メトリクスを生成するために、ソリューションバージョンから特定のユーザー用にレコメンデーションのリストを作成するシンプルな例です。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

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

このページの内容: