レコメンダーの評価

この記事では、Azure Machine Learning デザイナーで Evaluate Recommender (レコメンダーの評価) コンポーネントを使用する方法について説明します。 目標は、レコメンデーション モデルによって行われた予測の正確性を測定することです。 このコンポーネントを使用すると、さまざまな種類のレコメンデーションを評価できます。

  • ユーザーと項目に対して予測された評価
  • ユーザーに対して推奨された項目

レコメンデーション モデルを使用して予測を作成した場合、サポートされているこれらの予測の種類ごとに、返される結果が若干異なります。 Evaluate Recommender (レコメンダーの評価) コンポーネントでは、スコア付けされたデータセットの列形式から、予測の種類が推測されます。 たとえば、スコア付けされたデータセットには、次のものが含まれる可能性があります。

  • ユーザー、項目、評価を表す 3 つの要素
  • ユーザーと、そのユーザーに対して推奨された項目

また、このコンポーネントでは、実行される予測の種類に基づいて、適切なパフォーマンス メトリックが適用されます。

Evaluate Recommender を構成する方法

Evaluate Recommender (レコメンダーの評価) コンポーネントでは、レコメンデーション モデルを使用して出力された予測が、対応する "グラウンド トゥルース" データと比較されます。 たとえば、[Score SVD Recommender]\(SVD レコメンダーのスコア付け\) コンポーネントでは、Evaluate Recommender (レコメンダーの評価) を使用して分析できるスコア付けされたデータセットが生成されます。

必要条件

Evaluate Recommender (レコメンダーの評価) では、入力として次のデータセットが必要になります。

テスト データセット

テスト データセットには、ユーザー、項目、評価を表す 3 要素の形式で "グラウンド トゥルース" データが含まれています。

スコア付けされたデータセット

スコア付けされたデータセットには、レコメンデーション モデルによって生成された予測が含まれています。

この 2 つ目のデータセットに含まれる列は、スコアリング プロセス時に実行した予測の種類によって決まります。 たとえば、スコア付けされたデータセットには、次のいずれかが含まれている可能性があります。

  • ユーザー、項目、およびユーザーが項目に対して与えると思われる評価
  • 推奨されるユーザーと項目の一覧

メトリック

モデルのパフォーマンス メトリックは、入力の種類に基づいて生成されます。 以降のセクションでは、詳細を説明します。

予測された評価を評価する

予測された評価を評価する場合、スコア付けされたデータセット (Evaluate Recommender (レコメンダーの評価) への 2 番目の入力) には、次の要件を満たす、ユーザー、項目、評価を表す 3 つの要素が含まれている必要があります。

  • データセットの最初の列に、ユーザー識別子が含まれている。
  • 2 番目の列に、項目の識別子が含まれている。
  • 3 番目の列に、対応するユーザーと項目の評価が含まれている。

重要

評価を成功させるには、列名をそれぞれ UserItemRating とする必要があります。

Evaluate Recommender (レコメンダーの評価) は、"グラウンド トゥルース" データセット内の評価を、スコア付けされたデータセットの予測済み評価と比較します。 その後、平均絶対誤差 (MAE) と二乗平均平方根誤差 (RMSE) を計算します。

項目のレコメンデーションを評価する

項目のレコメンデーションを評価する際には、各ユーザーに対して推奨された項目が含まれている、スコア付けされたデータセットを使用します。

  • データセットの最初の列には、ユーザー識別子が含まれている必要があります。
  • 後続のすべての列には、対応する推奨項目識別子が、項目とユーザーの関連度順で含まれている必要があります。

このデータセットを接続する前に、最も関連度の高い項目が先頭に表示されるように、データセットを並べ替えることをお勧めします。

重要

Evaluate Recommender (レコメンダーの評価) を機能させるには、列名を UserItem 1Item 2Item 3 のようにする必要があります。

Evaluate Recommender (レコメンダーの評価) は、平均の正規化減損累積利得 (NDCG) を計算し、それを出力データセットに返します。

推奨された項目に対する実際の "グラウンド トゥルース" を知ることはできないため、Evaluate Recommender (レコメンダーの評価) では NDCG を計算する際、テスト データセットに含まれるユーザーと項目の評価が利得として使用されます。 評価を実行するには、レコメンダーのスコアリング コンポーネントで、(テスト データセット内に) "グラウンド トゥルース" の評価がある項目についてのみ、レコメンデーションを生成する必要があります。

次の手順

Azure Machine Learning で使用できる一連のコンポーネントを参照してください。