はじめに
このページでは、Vertex AI で使用可能な特徴アトリビューション方式の概念的な概要を簡単に説明します。技術的な詳細については、AI Explanations に関するホワイトペーパーをご覧ください。
グローバルな特徴の重要度(モデル特徴アトリビューション)は、各特徴がモデルに及ぼす影響を示します。値は、各特徴量の割合で表します。割合が高いほど、その特徴量はモデルのトレーニングに大きく影響します。たとえば、モデルのグローバルな特徴量の重要度を確認した後、次の結論が得られます。「モデルは、前月の売上が通常、翌月の売上の最も強い予測であることを示しますす。顧客数やプロモーションなどの要素は重要ですが、売上高ほど重要ではありません。」
モデルのグローバルな特徴の重要度を表示するには、評価指標を調べます。
時系列モデルのローカル特徴アトリビューションは、モデル内の各特徴が予測にどの程度影響を及ぼしたかを示します。これらは、入力ベースラインを基準として、予測に対する特徴の寄与度を測定します。売上などの数値特徴の場合、ベースライン入力は売上の中央値です。製品名などのカテゴリ特徴の場合は、ベースライン入力は最も一般的な製品名になります。すべてのアトリビューションの合計は予測ではありません。合計は、予測がベースラインとどの程度異なるかを示します(つまり、すべての入力がベースライン入力になります)。
特徴属性は、反事実的条件の予測に基づいて決定されます。たとえば、次のような予測を行います: 2020-11-21
の広告値が TRUE
のときに、これを FALSE
に置き換えた場合、最頻はどうなるか。必要な反事実的条件の数は、列の数とパスの数(生成されるサービス)に応じて変わります。結果として得られる予測の数は、通常の予測タスクよりも桁違いに大きくなる可能性があり、それに応じて予想される実行時間も長くなります。
AutoML を使用した予測または予測用の表形式ワークフローを使用して、ローカル特徴アトリビューションを生成してクエリできます。AutoML による予測は、バッチ予測のみをサポートします。 予測用の表形式のワークフローは、バッチ予測とオンライン予測の両方をサポートします。
利点
特定のインスタンスを調べて、トレーニング データセット全体で特徴アトリビューションを集計することで、モデルの仕組みをより詳しく分析できます。次の点を考慮してください。
モデルのデバッグ: 特徴アトリビューションは、標準的なモデル評価技法では見落としてしまうことが多いデータ内の問題を検出するのに役立ちます。
モデルの最適化: 重要度の低い特徴を特定して削除し、より効率的なモデルを作成できます。
概念上の制限
特徴アトリビューションには、次の制限があります。
AutoML のローカル特徴量の重要度など、特徴アトリビューションは個々の予測に固有のものです。個々の予測の特徴アトリビューションを調べることで詳細な洞察を得ることができますが、それらの個々のインスタンスのクラス全体やモデル全体にその洞察を当てはめることができない場合があります。
AutoML モデルについて、より一般的な洞察を入手するには、モデル特徴量の重要度を参照してください。他のモデルの一般的な洞察を得るには、データセットのサブセット、またはデータセット全体でアトリビューションを集約します。
それぞれの属性は、特徴がそのサンプルの予測にどの程度影響を及ぼしたのかのみを示します。1 つの属性では、モデルの全体的な動作が反映されていない可能性があります。データセット全体に対するモデルのおおまかな動作を把握するには、データセット全体で属性を集計する必要があります。
特徴アトリビューションはモデルのデバッグに役立ちますが、ある問題が特定のモデルから発生しているのか、モデルをトレーニングしたデータから発生しているのかを必ずしも明確に示すものではありません。最良の判断を下し、共通のデータ問題を診断することで、原因を特定してください。
属性は、モデルとそのモデルのトレーニングに使用されるデータに完全に依存します。データ内でモデルが検出したパターンのみを示すことができ、データ内の基本的な関係を検出することはできません。特定の特徴に強いアトリビューションが存在するかどうかは、特徴と対象との間に関係性があるかどうかに関係ありません。属性は、そのモデルが予測で特徴を使用しているかどうかを表すだけです。
属性だけでは、モデルが公平で、偏りがなく、高品質かどうかはわかりません。属性に加えて、トレーニング データと評価指標を慎重に評価します。
制限の詳細については、AI Explanations に関するホワイトペーパーをご覧ください。
特徴属性の改善
次の要素は、特徴属性に最も大きな影響を与えます。
- アトリビューション方式では Shapley 値の近似値を計算します。サンプリングされた Shapely メソッドのパスの数を増やすと、近似の精度が向上します。その結果、属性が大きく変化する可能性があります。
- 特徴属性は、指定したベースライン値を基準として、その特徴が予測値の変化にどの程度影響を及ぼしたかを示します。モデルに対する質問に合わせて、有意なベースラインを選択してください。ベースラインを切り替えると、属性の値とその解釈が大きく変わることがあります。
[説明パラメータ] と [メタデータ] でパス数とベースラインを確認できます。
説明メタデータとパラメータを表示する
説明パラメータとメタデータには次のものが含まれます。
- static_value: 説明の生成に使用されるベースライン。
- pathCount: パスの数。特徴アトリビューションの生成時間の係数。
- historical_values、prediction_values: 予測時に使用可能な列。
- historical_values: 予測時に使用できない列。
モデルは、Vertex AI REST API を使用して表示できます。モデルには説明仕様も含まれます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: モデルが保存されているリージョン。
- PROJECT: 実際のプロジェクト ID。
- MODEL_ID: モデルリソースの ID
HTTP メソッドと URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID" | Select-Object -Expand Content
トレーニング済みの AutoML モデルについて、次のような出力が表示されます。
アルゴリズム
Vertex AI は、特定の結果に対してゲーム内の各プレーヤーにクレジットを割り当てる協力ゲーム理論アルゴリズムである Shapley 値を使用して、特徴アトリビューションを提供します。機械学習モデルに適用すると、各モデルの特徴はゲーム内の「プレーヤー」として扱われ、特定の予測結果に比例してクレジットが割り当てられます。構造化データモデルの場合、Vertex AI は、正確な Shapley 値のサンプリング近似値(サンプリングされた Shapley)を使用します。
Shapley 値サンプリング方式の詳しい仕組みについては、サンプリング ベースの推論エラーの予測方法をご覧ください。
次のステップ
次のリソースから、さらに役立つ教材を得ることができます。