レコメンダーの評価
この記事では、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 番目の列に、対応するユーザーと項目の評価が含まれている。
重要
評価を成功させるには、列名をそれぞれ User
、Item
、Rating
とする必要があります。
Evaluate Recommender (レコメンダーの評価) は、"グラウンド トゥルース" データセット内の評価を、スコア付けされたデータセットの予測済み評価と比較します。 その後、平均絶対誤差 (MAE) と二乗平均平方根誤差 (RMSE) を計算します。
項目のレコメンデーションを評価する
項目のレコメンデーションを評価する際には、各ユーザーに対して推奨された項目が含まれている、スコア付けされたデータセットを使用します。
- データセットの最初の列には、ユーザー識別子が含まれている必要があります。
- 後続のすべての列には、対応する推奨項目識別子が、項目とユーザーの関連度順で含まれている必要があります。
このデータセットを接続する前に、最も関連度の高い項目が先頭に表示されるように、データセットを並べ替えることをお勧めします。
重要
Evaluate Recommender (レコメンダーの評価) を機能させるには、列名を User
、Item 1
、Item 2
、Item 3
のようにする必要があります。
Evaluate Recommender (レコメンダーの評価) は、平均の正規化減損累積利得 (NDCG) を計算し、それを出力データセットに返します。
推奨された項目に対する実際の "グラウンド トゥルース" を知ることはできないため、Evaluate Recommender (レコメンダーの評価) では NDCG を計算する際、テスト データセットに含まれるユーザーと項目の評価が利得として使用されます。 評価を実行するには、レコメンダーのスコアリング コンポーネントで、(テスト データセット内に) "グラウンド トゥルース" の評価がある項目についてのみ、レコメンデーションを生成する必要があります。
次の手順
Azure Machine Learning で使用できる一連のコンポーネントを参照してください。