推論の説明可能性
重要
2023 年 9 月 20 日以降は、新しい Personalizer リソースを作成できなくなります。 Personalizer サービスは、2026 年 10 月 1 日に廃止されます。
Personalizer を使用すると、推論中、選択したアクションのどの特徴がモデルに対して最も影響力が大きいか小さいかを理解できます。 推論の説明可能性を有効にすると、基になるモデルから Rank API 応答に特徴スコアが含まれ、アプリケーションではこの情報を推論時に受け取ります。
特徴スコアを使用すると、特徴と Personalizer によって行われた決定との関係をより良く理解できます。 これらは、エンド ユーザーに特定の推奨事項が行われた理由についての分析情報を提供したり、モデルが特定のコンテキスト設定、ユーザー、アクションに対して偏りを示しているかどうかを分析したりするために使用できます。
推論の説明可能性を有効にするには
サービス構成にサービス構成フラグ IsInferenceExplainabilityEnabled を設定すると、Personalizer では特徴量の値と重みを Rank API 応答に含めることができます。 現在のサービス構成を更新するには、サービス構成 - Update API を使用します。 JSON の要求本文に、現在のサービス構成を含め、追加エントリ "IsInferenceExplainabilityEnabled": true を追加します。 現在のサービス構成がわからない場合は、サービス構成 – Get API から取得できます。
{
"rewardWaitTime": "PT10M",
"defaultReward": 0,
"rewardAggregation": "earliest",
"explorationPercentage": 0.2,
"modelExportFrequency": "PT5M",
"logMirrorEnabled": true,
"logMirrorSasUri": "https://testblob.blob.core.windows.net/container?se=2020-08-13T00%3A00Z&sp=rwl&spr=https&sv=2018-11-09&sr=c&sig=signature",
"logRetentionDays": 7,
"lastConfigurationEditDate": "0001-01-01T00:00:00Z",
"learningMode": "Online",
"isAutoOptimizationEnabled": true,
"autoOptimizationFrequency": "P7D",
"autoOptimizationStartDate": "2019-01-19T00:00:00Z",
"isInferenceExplainabilityEnabled": true
}
注意
推論の説明可能性を有効にすると、Rank API への呼び出しの待機時間が大幅に増加します。 この機能を試し、シナリオの待機時間を測定して、アプリケーションの待機時間の要件を満たしているかどうかを確認することをお勧めします。
特徴スコアを解釈する方法
推論の説明可能性を有効にすると、Rank API から JSON 応答に inferenceExplanation と呼ばれるコレクションが追加されます。 これには、Rank 要求で送信された特徴の名前と値の一覧と、Personalizer の基になるモデルによって学習された特徴スコアが含まれます。 特徴スコアにより、アクションの選択において各特徴がモデルに与えた影響に関する分析情報が提供されます。
{
"ranking": [
{
"id": "EntertainmentArticle",
"probability": 0.8
},
{
"id": "SportsArticle",
"probability": 0.15
},
{
"id": "NewsArticle",
"probability": 0.05
}
],
"eventId": "75269AD0-BFEE-4598-8196-C57383D38E10",
"rewardActionId": "EntertainmentArticle",
"inferenceExplanation": [
{
"id”: "EntertainmentArticle",
"features": [
{
"name": "user.profileType",
"score": 3.0
},
{
"name": "user.latLong",
"score": -4.3
},
{
"name": "user.profileType^user.latLong",
"score" : 12.1
},
]
]
}
上の例では、ランク付けコレクションで、3 つのアクション ID がそれぞれの確率スコアと共に返されています。 確率が最も大きいアクションは、Personalizer API に送信されたデータ (この場合は、"id": "EntertainmentArticle"
) でトレーニングされたモデルによって決定される "最適なアクション" です。 アクション ID は、そのアクションのモデルによって決定された特徴の名前とスコア、および Rank API に送信された特徴と値と共に、inferenceExplanation コレクションで再び確認できます。
Personalizer では、"最適なアクション"、または探索ポリシーによって選択された "探索的アクション" のいずれかが返されることを思い出してください。 最適なアクションは、平均報酬を最大化する確率が最も高いとモデルによって判断されたアクションです。一方、探索的アクションは、Rank API 呼び出しで提供されるすべての可能なアクション セットの中から選択されます。 探索中に実行されるアクションでは、実行するアクションを決定する際に特徴スコアが利用されないため、アクションが実行された理由を理解するために、探索的アクションの特徴スコアを使用するべきではありません。探索の詳細については、こちらを参照してください。
Personalizer によって返される最適なアクションについては、特徴スコアによって次のような一般的な分析情報を提供できます。
- 正のスコアが大きいほど、このアクションを選択するモデルがよりサポートされます。
- 負のスコアが大きいほど、このアクションを選択しないモデルがよりサポートされます。
- 0 に近いスコアでは、このアクションを選択する決定に対する影響は小さくなります。
推論の説明可能性に関する重要な考慮事項
待機時間の増加。 "推論の説明可能性" を有効にすると、特徴量情報の処理により、Rank API 呼び出しの待機時間が大幅に増加します。 実験を行ってシナリオでの待機時間を測定し、アプリケーションの待機時間の要件を満たしているかどうかを確認してください。
相関する特徴。 相互に高い相関性がある特徴では、特徴スコアの有用性が低下する可能性があります。 たとえば、特徴 A と特徴 B が高い相関性を持っているとします。特徴 A のスコアが大きな正の値であるのに対し、特徴 B のスコアは大きな負の値だとします。 この場合、この 2 つの特徴は実質的に互いを取り消し合い、モデルに対してほとんど、もしくはまったく影響力を持たない可能性があります。 Personalizer は相関性が高い特徴に対して非常に堅牢ですが、"推論の説明可能性" を使用するときは、Personalizer に送信される特徴の相関性が高くないことを確認します
既定の探索のみ。 現在、推論の説明可能性では、既定の探索アルゴリズムのみがサポートされています。