推斷可解釋性
重要
從 2023 年 9 月 20 日起,您將無法建立新的個人化工具資源。 個人化工具服務將於 2026 年 10 月 1 日淘汰。
個人化工具可協助您瞭解所選取動作的哪些功能在推斷期間對該模型最具有影響力和最不具影響力。 啟用時,推斷可解釋性包括從基礎模型到排名 API 回應的功能分數,因此您的應用程式會在推斷時收到這項資訊。
功能分數可讓您進一步瞭解功能與個人化工具所做出決策之間的關聯性。 其可以用來為您的終端使用者提供為何做出特定建議的深入解析,或分析您的模型是否呈現對特定內容設定、使用者和動作的偏差。
如何啟用推斷可解釋性?
在您的服務設定中設定服務設定旗標 IsInferenceExplainabilityEnabled,可讓個人化工具在排名 API 回應中包括功能值和權重。 若要更新您的目前服務設定,請使用服務設定 - 更新 API。 在 JSON 要求本文中,包括您的目前服務設定,並新增其他項目:"IsInferenceExplainabilityEnabled":true。 如果您不知道目前服務設定,則可以從服務設定 - 取得 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
}
注意
啟用推斷可解釋性會大幅增加排名 API 呼叫的延遲。 建議試驗這項功能,並測量您案例中的延遲,以查看其是否符合您應用程式的延遲需求。
如何解譯功能分數?
啟用推斷可解釋性會將集合從稱為 inferenceExplanation 的排名 API 新增至 JSON 回應。 這包含排名要求中所提交的功能名稱和值清單,以及個人化工具基礎模型所學習到的功能分數。 功能分數可讓您深入解析每個功能在選擇動作的模型中的影響力。
{
"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
},
]
]
}
在上面的範例中,ranking 集合中會傳回三個動作識別碼和其各自的機率分數。 具有最大機率的動作就是最佳動作,而最佳動作是由根據傳送至個人化工具 API 的資料所定型的模型所決定,在此案例中為 "id": "EntertainmentArticle"
。 您可以在 inferenceExplanation 集合中再次看到動作識別碼,以及模型針對該動作所決定的功能名稱和分數,與傳送至排名 API 的功能和值。
請回想一下,個人化工具將會傳回探索原則所選擇的最佳動作 或探索動作。 最佳動作是模型判斷具有最高機率可將平均獎勵最大化的動作,而探索動作是在排名 API 呼叫中提供的所有可能動作集內選出。 探索期間所採取的動作不會利用功能分數來判斷要採取的動作,因此不應該使用探索動作的功能分數來了解採取動作的原因。您可以在這裡深入了解探索。
針對個人化工具所傳回的最佳動作,功能分數可以提供一般深入解析,其中:
- 正分數愈大,針對選擇此動作的模型所提供的支援就愈多。
- 負分數愈大,針對未選擇此動作的模型所提供的支援就愈多。
- 接近零的分數會對選擇此動作的決策造成少量影響。
推斷可解釋性的重要考量
延遲增加。 啟用 [推斷可解釋性] 將會因功能資訊的處理而大幅增加排名 API 呼叫的延遲。 執行實驗,並測量您案例中的延遲,以查看其是否滿足應用程式的延遲需求。
相互關聯的功能。 彼此高度相互關聯的功能可以減少功能分數的效用。 例如,假設功能 A 與功能 B 高度相互關聯。功能 A 的分數可能是較大的正值,而功能 B 的分數是較大的負值。 在此情況下,這兩個功能可能會有效地扺消彼此,而且對模型幾乎沒有任何影響。 雖然個人化工具對高度相互關聯功能的處理非常健全,但使用 [推斷可解釋性] 時,請確定傳送至個人化工具的功能未高度相互關聯
僅限預設探索。 推斷可解釋性目前僅支援預設探索演算法。