

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

# メトリクスを使用して Amazon Personalize ソリューションバージョンを評価する
<a name="working-with-training-metrics"></a>

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

 *オフラインメトリクス*は、ソリューションバージョンをトレーニングするときに Amazon Personalize が生成するメトリクスです。オフラインメトリクスを使用して、モデルのパフォーマンスを評価できます。ソリューションのハイパーパラメータを変更した場合の効果を表示し、同じデータセットグループ内の*同じデータ*で、異なるレシピでトレーニングされたモデルの結果を比較できます。

異なるデータでトレーニングされた異なるソリューションバージョンのメトリクスを比較しないでください。メトリクスの違いは、モデルのパフォーマンスではなく、データの違いにある可能性があります。例えば、ユーザーごとにスパース `purchase` イベントデータを持つデータセットグループと、堅牢な `view` イベントデータを持つデータセットグループがあるとします。`precision at K` などのメトリクスに基づくと、ビューイベントデータでトレーニングされたソリューションバージョンは、インタラクションの数が多いため、誤ってパフォーマンスが向上しているように見える可能性があります。

 パフォーマンスメトリクスを取得するために、Amazon Personalize は、入力インタラクションデータをトレーニングセット、テストセット、および PERSONALIZED\_ACTIONS については検証セットに分割します。スプリットは選択したレシピの種類によって異なります。
+  USER\_SEGMENTATION レシピの場合、トレーニングセットは各ユーザーのインタラクションデータの 80% で構成され、テストセットは各ユーザーのインタラクションデータの 20% で構成されます。
+  他のすべてのレシピタイプでは、トレーニングセットは 90% のユーザーとそのインタラクションデータで構成されます。テストセットは、ユーザーとそのインタラクションデータの残りの 10% で設定されています。

 その後、Amazon Personalize は、トレーニングセットを使用してソリューションバージョンを作成します。トレーニングが完了すると、Amazon Personalize は、ソリューションバージョンに、テストセットからの各ユーザーのデータの最も古い 90% を入力として提供します。その後、Amazon Personalize は、ソリューションバージョンが生成するレコメンデーションを、テストセットからの各ユーザーのデータの最新の 10% における実際のインタラクションと比較することにより、メトリクスを計算します。

比較のためのベースラインを生成するには、最も人気のある上位 K 個のアイテムを推奨する [Popularity-Count](native-recipe-popularity.md) レシピを使用することをお勧めします。

**Topics**
+ [ソリューションバージョンのメトリクスの取得](#working-with-training-metrics-metrics)
+ [メトリクスの定義](#metric-definitions)
+ [例](#working-with-training-metrics-example)
+ [その他のリソース](#additional-metrics-resources)

## ソリューションバージョンのメトリクスの取得
<a name="working-with-training-metrics-metrics"></a>

ソリューションバージョンを作成すると、メトリクスを使用してそのパフォーマンスを評価できます。Amazon Personalize コンソール、AWS Command Line Interface(AWS CLI)、および AWSSDKs を使用して、ソリューションバージョンのメトリクスを取得できます。

**Topics**
+ [ソリューションバージョンのメトリクスの取得 (コンソール)](#retrieving-solution-version-metrics-console)
+ [ソリューションバージョンメトリクスの取得 (AWS CLI)](#retrieve-metrics-cli)
+ [ソリューションバージョンメトリクス (AWSSDKs) の取得](#retrieve-metrics-sdks)

### ソリューションバージョンのメトリクスの取得 (コンソール)
<a name="retrieving-solution-version-metrics-console"></a>

レコメンダーメトリクスをコンソールに表示するには、ソリューションバージョンの詳細ページに移動します。

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

1. **データセットグループ**ページで、カスタムデータセットグループを選択します。

1. ナビゲーションペインから、**[カスタムリソース]** を選択し、**[ソリューションとレシピ]** を選択します。

1. ソリューションを選択します。

1. **[ソリューションバージョン]** で、ソリューションバージョンを選択してその詳細ページを表示します。メトリックは、下部のペインの **[ソリューションバージョンメトリック]** タブに一覧表示されます。メトリックの定義については、「[メトリクスの定義](#metric-definitions)」を参照してください。

   ソリューションバージョンを評価できたら、ユースケースの最高のメトリクスを使用してソリューションバージョンをデプロイすることで、キャンペーンを作成できます。ソリューションのデプロイの詳細については、「[キャンペーンを使用して Amazon Personalize のソリューションバージョンをデプロイするキャンペーンの作成](campaigns.md)」を参照してください。

### ソリューションバージョンメトリクスの取得 (AWS CLI)
<a name="retrieve-metrics-cli"></a>

[GetSolutionMetrics](API_GetSolutionMetrics.md) を呼び出して、特定のソリューションバージョンのメトリクスを取得します。次のコードは、AWS CLI でメトリクスを取得する方法を説明しています。

```
personalize get-solution-metrics --solution-version-arn {{solution version ARN}}
```

次に示すのは、追加の最適化目標を持つ [User-Personalization](native-recipe-new-item-USER_PERSONALIZATION.md) レシピを使用して作成されたソリューションバージョンからの出力の例です。

```
{
    "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/SolutionName/<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
    }
}
```

各メトリックの説明については、「[メトリクスの定義](#metric-definitions)」を参照してください。ソリューションバージョンを評価できたら、ユースケースの最高のメトリクスを使用してソリューションバージョンをデプロイすることで、キャンペーンを作成できます。ソリューションのデプロイの詳細については、「[キャンペーンを使用して Amazon Personalize のソリューションバージョンをデプロイするキャンペーンの作成](campaigns.md)」を参照してください。

### ソリューションバージョンメトリクス (AWSSDKs) の取得
<a name="retrieve-metrics-sdks"></a>

[GetSolutionMetrics](API_GetSolutionMetrics.md) を呼び出して、特定のソリューションバージョンのメトリクスを取得します。メトリクスを取得するには、次のコードを使用します。

------
#### [ SDK for Python (Boto3) ]

```
import boto3

personalize = boto3.client('personalize')

response = personalize.get_solution_metrics(
    solutionVersionArn = '{{solution version arn}}')

print(response['metrics'])
```

------
#### [ SDK for Java 2.x ]

```
public static void getSolutionVersionMetrics(PersonalizeClient personalizeClient, String solutionVersionArn) {

    try {
        GetSolutionMetricsRequest request = GetSolutionMetricsRequest.builder()
                .solutionVersionArn(solutionVersionArn)
                .build();
        Map<String, Double> metrics = personalizeClient.getSolutionMetrics(request).metrics();
        metrics.forEach((key, value) -> System.out.println(key + " " + value));
    } catch (PersonalizeException e ) {
        System.err.println(e.awsErrorDetails().errorMessage());
        System.exit(1);
    }
}
```

------

次に示すのは、追加の最適化目標を持つ [User-Personalization](native-recipe-new-item-USER_PERSONALIZATION.md) レシピを使用して作成されたソリューションバージョンからの出力の例です。

```
{
    "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
    }
}
```

各メトリックの説明については、「[メトリクスの定義](#metric-definitions)」を参照してください。ソリューションバージョンを評価できたら、ユースケースの最高のメトリクスを使用してソリューションバージョンをデプロイすることで、キャンペーンを作成できます。ソリューションのデプロイの詳細については、「[キャンペーンを使用して Amazon Personalize のソリューションバージョンをデプロイするキャンペーンの作成](campaigns.md)」を参照してください。

## メトリクスの定義
<a name="metric-definitions"></a>

Amazon Personalize がソリューションバージョン用に生成するメトリクスは、以下の用語を使用して説明されています。
+ *関連レコメンデーション*とは、ユーザーが実際に操作したアイテムに関するレコメンデーションです。これらのアイテムは、テストセットからの各ユーザーのインタラクションデータの最新の 10% からのものです。
+ *ランク*は、レコメンデーションリスト内の推奨される事項の順位を示しています。順位 1 (リストの上位) は、ユーザーにとって最も高い関連事項であると推定されます。

各メトリクスでは、数字が大きい (1 に近い) ほど優良です。さらに詳しく調べるには、「[その他のリソース](#additional-metrics-resources)」に記載されているリソースを参照してください。

**カバレッジ**  
*カバレッジ*の値は、データセット内のユニークレコードの総数のうち、Amazon Personalize が推奨する可能性のあるユニークアイテム (アイテムレコメンデーション)、アクション (アクションレコメンデーション)、またはユーザー (ユーザーセグメントレコメンデーション) の割合を示します。  
カバレッジスコアが高いほど、Amazon Personalize は、同じレコードを繰り返し推奨するのではなく、より多くのアイテムを推奨します。User-Personalization など、アイテム探索を特徴とするレシピは、Similar-Items など、そうでないレシピよりもカバレッジが高くなります。

**25 での平均逆ランク**  
このメトリクスは、あるモデルがランキングの上位で関連するアイテムレコメンデーションを生成できるかどうかを示します。  
 あるユーザーに関連する検索結果を生成していて、ユーザーがリストの下位にあるアイテムを選択することを期待していない場合、*25 での平均逆ランク*が高いモデルを選択できます。例えば、ユーザーは検索結果の最初の料理レシピを選ぶことがよくあります。Amazon Personalize は、PERSONALIZED\_ACTIONS または USER\_SEGMENTATION レシピでは、このメトリクスを生成しません。  
 Amazon Personalize は、レコメンデーションのリクエストの平均逆ランクスコアを使用してこのメトリックスを計算します。それぞれの相互ランクスコアは次のように計算されます。`1 / the rank of the highest item interacted with by the user`、ここで可能なランキングの合計は 25 です。ユーザーが操作するその他のランクの低いアイテムは無視されます。ユーザーが最初のアイテムを選択した場合、スコアは 1 です。アイテムを何も選択しなかった場合、スコアは 0 です。  
 例えば、3 人の異なるユーザーに、それぞれ 25 件のレコメンデーションを表示するとします。  
+ *ユーザー 1 がランク *4* のアイテムとランク *10* のアイテムをクリックした場合、両者の相互ランクスコアは 1/4 になります。*
+ ユーザー 2 がランク *2* のアイテム、ランク *4* のアイテム、ランク *12* のアイテムをクリックした場合、相互のランクスコアは 1/2 になります。
+ ユーザー 3 がランク 6 のアイテムを 1 つクリックした場合、相互のランクスコアは *1/6* になります。
 すべてのレコメンデーションのリクエスト (この場合は 3) の平均相互ランクは、`(1/4 + 1/2 + 1/6) / 3 = .3056` として計算されます。  


**K (5/10/25) での正規化減損累積利得 (NDCG)**  
このメトリクスは、モデルがアイテムまたはアクションレコメンデーションをどのようにランク付けしているかを示しています。ここで、K は 5、10、または 25 のレコメンデーションのサンプルサイズです。このメトリクスは、最もランクの高いアイテムまたはアクションだけでなく、レコメンデーションのランキングに最も関心がある場合に役立ちます (これについては、「`mean reciprocal rank at 25`」を参照してください)。例えば、1 つのカルーセルに同時に最大 10 本の映画を表示するアプリケーションでは、`NDCG at 10` のスコアが役に立ちます。  
Amazon Personalize は、テストセット内の各ユーザーのランキング順位に基づいてレコメンデーションに重みを付けることで NDCG を計算します。各レコメンデーションはそれぞれの順位による要因で割引 (低い分量の付与) されます。最後のメトリクスは、テストセットに含まれる全ユーザーの `NDCG at K` の平均です。`NDCG at K` は、リストの下位にあるレコメンデーションが、リストの上位にあるレコメンデーションよりも関連性が低いことを想定しています。  
Amazon Personalize は、リストの上位が順位 `1` である `1/log(1 + position)` の重量要素を使用します。

**precision at K**  
K (5、10、25) の推奨サンプルサイズに基づいて、モデルのレコメンデーションがどの程度関連しているかを示すメトリクス。  
 Amazon Personalize では、このメトリクスは、上位 K 個のレコメンデーションのうち、関連するレコメンデーションの数を K で割った数に基づいて計算されます (K は 5、10、または 25 です)。最後のメトリクスは、テストセットに含まれる全ユーザーの平均です。  
例えば、あるユーザーに 10 個のアイテムをレコメンドし、ユーザーがそのうちの 3 個とインタラクションした場合、K での精度は、正しく予測された 3 個のアイテムを、合計 10 個のレコメンデーションアイテムで割った値、つまり `3 / 10 = .30` です。  
このメトリクスでは、関連事項の正確なレコメンデーションが評されます。スコアが 1 に近いほど、モデルの精度は高くなります。

**precision**  
Next-Best-Action レシピを使用してソリューションバージョンをトレーニングすると、Amazon Personalize は `precision at K` の代わりに `precision` メトリクスを生成します。このメトリクスは、ユーザーが実際に実行するアクションを予測するうえで、モデルがどの程度優れているかを示します。  
 Amazon Personalize は、データセット内の各アクションについて、`precision` を計算するために、そのアクションを実行すると正しく予測されたユーザーの数を、アクションが推奨された合計回数で割って計算します。その後、Amazon Personalize はデータセット内のすべてのアクションの平均を計算します。  
例えば、あるアクションが 100 人のユーザーに推奨され、60 人のユーザーがそのアクションを実行し、40 人のユーザーが実行しなかった場合、そのアクションの `precision` は `60 / 100 = .60` です。その後、Amazon Personalize はこの計算をすべてのアクションに適用し、平均を返します。  
このメトリクスでは、関連するアクションの正確なレコメンデーションが評価されます。スコアが 1 に近いほど、モデルの精度は高くなります。

**average\_rewards\_at\_k**  
最適化の目的を持つソリューションのソリューションバージョンを作成する (モデルをトレーニングする) と、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 に近いほど、レコメンデーションから得られるユーザーあたりの平均収益が増大することが期待できます。  
 詳細については、「[追加の目的のためのソリューションの最適化](optimizing-solution-for-objective.md)」を参照してください。

**normalized\_discounted\_cumulative\_gain\_with\_event\_weights\_at\_k**  
 イベント設定を持つソリューションのソリューションバージョンを作成する (モデルをトレーニングする) と、Amazon Personalize は `normalized_discounted_cumulative_gain_with_event_weights_at_k` メトリクスを生成します。`normalized_discounted_cumulative_gain_with_event_weights_at_k` のスコアは、各イベントタイプに設定したイベントの重みを考慮して、ソリューションバージョンのパフォーマンスを示します。  
 K での正規化減損累積利得 (NDCG) に似ていますが、正しい予測ごとに報酬が重み付けされます。対照的に、K での元の NDCG では、正しい予測はすべて 1 の重みを持ちます。例えば、「購入」が重み 0.3、「クリック」が重み 0.1 の場合、アイテムの「購入」を正しく予測すると報酬が 1.5 になり、アイテムの「クリック」を予測すると報酬が 0.5 になります。  
 詳細については、「[イベント設定によるソリューションの最適化](optimizing-solution-events-config.md)」を参照してください。

**トレンド予測精度**  
ソリューションバージョンを [トレンド-ナウ](native-recipe-trending-now.md) レシピでトレーニングした場合、モデルが推奨するアイテムの人気上昇率。トレンド予測の精度が高いほど (1 に近いほど)、モデルはトレンドのアイテムをより正確に特定できます。  
 人気の加速率を計算するために、Amazon Personalize では、すべてのおすすめ商品の人気の増加率を、トレンド商品の上位 25 件の合計人気上昇率で割ります。これらの項目は、テストセットでの実際のインタラクションに基づいています。  
 データ分布や [トレンド発見頻度] で何を選択したかによって、トレンド予測の精度の値は 0.0 になる場合があります。

**ヒット (K でのヒット)**  
USER\_SEGMENTATION レシピを使用してソリューションバージョンをトレーニングした場合、予測された上位 K 件の結果の中で、実際のユーザーと一致するユーザーの平均数が表示されます。実際のユーザーとは、テストセット内の項目を実際に操作したユーザーです。K は、最も関連性の高いユーザーの上位 1% です。値が大きいほど、予測の精度が高くなります。

**リコール (K でのリコール)**  
USER\_SEGMENTATION レシピを使用してソリューションバージョンをトレーニングした場合、関連性の高い予測結果の K 件のうち、実際のユーザーと一致する予測ユーザーの平均パーセンテージです。実際のユーザーとは、テストセット内の項目を実際に操作したユーザーです。K は、最も関連性の高いユーザーの上位 1% です。値が大きいほど、予測の精度が高くなります。

**リコール**  
Next-Best-Action レシピを使用してソリューションバージョンをトレーニングした場合、このメトリクスは、ユーザーが操作するアクションを検出するうえで、ソリューションバージョンがどの程度優れているかを示します。  
 Amazon Personalize は、データセット内の各アクションについて、`recall` を計算するために、そのアクションを実行すると正しく予測されたユーザーの数を、テストセット内でアクションを実際に実行した合計ユーザー数で割って計算します。その後、Amazon Personalize はデータセット内のすべてのアクションの平均を計算します。  
例えば、100 人のユーザーがテストセットでアクションを実行し、Amazon Personalize がこれらのユーザーのうち 50 人がアクションを実行すると予測した場合、アクションの `recall` は `50 / 100 = .50` です。その後、Amazon Personalize はこの計算をすべてのアクションに適用し、平均を返します。

**曲線の下の面積 (AUC)**  
PERSONALIZED\_ACTIONS レシピを使用してソリューションバージョンをトレーニングした場合、ソリューションバージョンの受信者操作特性曲線の下の面積。このメトリクスは、ユーザーが実行するアクションを正しく識別するうえで、ソリューションバージョンがどの程度効果があるかを示します。  
受信者操作特性曲線は、ソリューションバージョンのパフォーマンスを表します。さまざまなしきい値における真陽性 (関連があると正しく予測されたアクション) と偽陽性 (関連があると誤って予測されたアクション) の率をプロットしています。曲線の下の面積 (AUC) は、ソリューションバージョンのパフォーマンスを曲線に基づいて集計したスコアです。  
 ソリューションバージョンの AUC は、0 から 1 までです。1 に近いほど、モデルはユーザーに関連するアクションを予測するうえで優れています。

**アイテムの人気度**  
`aws-semantic-similarity` レシピを使用してソリューションバージョンをトレーニングした場合、このメトリクスは、カタログ内の他のアイテムと比較して、アイテムがどれだけのエンゲージメント (いいね、ビュー、共有など) を受け取ったかを測定します。アイテムの人気スコアが高いほど (1 に近いほど）、他のアイテムと比較してアイテムが蓄積したユーザーインタラクションが多くなります。  
アイテムの人気を計算するために、Amazon Personalize は各アイテムとやり取りした (ビュー、クリック、購入などのイベントを通じて) 一意のユーザーの総数をカウントします。各項目の raw エンゲージメント数は、データセット内のすべての項目にわたって正規化され、スコアは 0～1 になります。スコアが 0 に近い場合はエンゲージメントが低く、スコアが 1 に近い場合はカタログ内のアイテムに対する平均的なエンゲージメントが高いことを示します。

**アイテムの鮮度**  
`aws-semantic-similarity` レシピを使用してソリューションバージョンをトレーニングした場合、このメトリクスは、他の項目と比較してカタログに項目が最近追加されたかどうかを測定します。項目の鮮度スコアが高いほど (1 に近いほど）、項目が最近作成されたことになります。  
アイテムの鮮度を計算するために、Amazon Personalize は Items データセットから CREATION\_TIMESTAMP を使用して各アイテムの経過時間を決定します。経過時間は、トレーニング時間と項目の作成タイムスタンプの差として計算されます。その後、これらの経過時間はすべての項目にわたって正規化され、新しい項目はスコアが 1 に近づきます。スコアが 0 に近いほど古い項目が多くなり、スコアが 1 に近いほどカタログ内で平均して新しい項目が多いことを示します。

**項目の類似性**  
`aws-semantic-similarity` レシピを使用してソリューションバージョンをトレーニングした場合、このメトリクスは、内容、属性、メタデータに基づいて、セマンティックに関連する推奨項目が入力項目にどのようになるかを測定します (複数可）。アイテムの類似度スコアが高いほど (1 に近いほど）、推奨アイテムは参照アイテムの特性により密接に一致します (複数可）。  
アイテムの類似性を計算するために、Amazon Personalize はアイテムメタデータと属性から派生したセマンティック埋め込みを使用して、各推奨アイテムと入力アイテム (複数可) の間の類似性スコアを計算します。スコアが 0 に近い場合はカタログ内のアイテム間のセマンティック類似性が平均で低いことを示し、スコアが 1 に近い場合はカタログ内のアイテム間のセマンティック類似性が平均で高いことを示します。このメトリクスは、モデルがレコメンデーションでセマンティック関係をどの程度把握しているかを理解するのに役立ちます。

## 例
<a name="working-with-training-metrics-example"></a>

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

**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

## その他のリソース
<a name="additional-metrics-resources"></a>

A/B テストによるソリューションバージョンの評価については、「[A/B テストを使用して Amazon Personalize によって生成されたレコメンデーションの有効性を測定する](https://aws.amazon.com/blogs/machine-learning/using-a-b-testing-to-measure-the-efficacy-of-recommendations-generated-by-amazon-personalize/)」を参照してください。レコメンダーシステムのさまざまなメトリクスについて詳しくは、以下の外部リソースを参照してください。
+ [MRR と MAP と NDCG の比較:ランクに応じた評価メトリクスとそれをいつ使うべきか](https://medium.com/swlh/rank-aware-recsys-evaluation-metrics-5191bba16832/)
+  [割引後の累積利益:知っておくべきランキングメトリクス](https://medium.com/@maeliza.seymour/discounted-cumulative-gain-the-ranking-metrics-you-should-know-about-e1d1623f8cd9) 
+  [レコメンダーシステムの k での再現率と精度](https://medium.com/@bond.kirill.alexandrovich/precision-and-recall-in-recommender-systems-and-some-metrics-stuff-ca2ad385c5f8) 
+  [レコメンダーシステムのランク付け評価メトリクス](https://towardsdatascience.com/ranking-evaluation-metrics-for-recommender-systems-263d0a66ef54) 
+  [受信者操作特性](https://en.wikipedia.org/wiki/Receiver_operating_characteristic) 