Dela via


Förklaring av slutsatsdragning

Viktigt!

Från och med den 20 september 2023 kommer du inte att kunna skapa nya personaliseringsresurser. Personanpassningstjänsten dras tillbaka den 1 oktober 2026.

Personanpassning kan hjälpa dig att förstå vilka funktioner i en vald åtgärd som är mest och minst inflytelserika för att sedan modellera under slutsatsdragning. När den är aktiverad innehåller slutsatsdragningsförklaring funktionspoäng från den underliggande modellen till svar på ranknings-API:et, så att ditt program tar emot den här informationen vid tidpunkten för slutsatsdragningen.

Med funktionspoäng kan du bättre förstå relationen mellan funktioner och de beslut som fattas av Personanpassning. De kan användas för att ge dina slutanvändare insikter om varför en viss rekommendation har gjorts, eller för att analysera om din modell uppvisar bias mot eller mot vissa sammanhangsbaserade inställningar, användare och åtgärder.

Hur aktiverar jag slutsatsdragningsförklarbarhet?

Genom att ange tjänstkonfigurationsflaggan IsInferenceExplainabilityEnabled i tjänstkonfigurationen kan Personanpassning inkludera funktionsvärden och vikter i svar på ranknings-API. Om du vill uppdatera den aktuella tjänstkonfigurationen använder du API:et Service Configuration – Update. I JSON-begärandetexten inkluderar du din aktuella tjänstkonfiguration och lägger till den ytterligare posten: "IsInferenceExplainabilityEnabled": true. Om du inte känner till den aktuella tjänstkonfigurationen kan du hämta den från tjänstkonfigurationen – Hämta 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
}

Kommentar

Om du aktiverar slutsatsdragningsförklarbarhet ökar svarstiden avsevärt för anrop till ranknings-API:et. Vi rekommenderar att du experimenterar med den här funktionen och mäter svarstiden i ditt scenario för att se om den uppfyller programmets svarstidskrav.

Så här tolkar du funktionspoäng?

Om du aktiverar förklaring av slutsatsdragning läggs en samling till i JSON-svaret från ranknings-API:et med namnet inferenceExplanation. Detta innehåller en lista över funktionsnamn och värden som skickades i rankningsbegäran, tillsammans med funktionspoäng som har lärts av Personanpassningens underliggande modell. Funktionspoängen ger dig insikter om hur inflytelserika varje funktion var i modellen som valde åtgärden.


{
  "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
            },
        ]
  ]
}

I exemplet ovan returneras tre åtgärds-ID:n i rangordningssamlingen tillsammans med deras respektive sannolikhetspoäng. Åtgärden med störst sannolikhet är the_ bästa action_ som bestäms av modellen som tränas på data som skickas till Personanpassnings-API:erna, vilket i det här fallet är "id": "EntertainmentArticle". Åtgärds-ID:t kan visas igen i inferenceExplanation-samlingen , tillsammans med funktionsnamnen och poängen som bestäms av modellen för den åtgärden och de funktioner och värden som skickas till ranknings-API:et.

Kom ihåg att Personanpassning antingen returnerar den bästa åtgärden eller en undersökande åtgärd som valts av utforskningsprincipen. Den bästa åtgärden är den som modellen har fastställt har högst sannolikhet att maximera den genomsnittliga belöningen, medan undersökande åtgärder väljs bland uppsättningen med alla möjliga åtgärder som tillhandahålls i Rank API-anropet. Åtgärder som vidtas under utforskningen utnyttjar inte funktionspoängen för att avgöra vilka åtgärder som ska vidtas, därför bör funktionspoäng för undersökande åtgärder inte användas för att få en förståelse för varför åtgärden vidtogs. Du kan läsa mer om utforskning här.

För de bästa åtgärderna som returneras av Personanpassning kan funktionspoängen ge allmän insikt om var:

  • Större positiva resultat ger mer stöd för den modell som väljer den här åtgärden.
  • Större negativa poäng ger mer stöd för modellen som inte väljer den här åtgärden.
  • Poäng nära noll har en liten effekt på beslutet att välja den här åtgärden.

Viktiga överväganden för förklaring av slutsatsdragning

  • Ökad svarstid. Om du aktiverar förklaring av slutsatsdragning ökar svarstiden avsevärt för Rank API-anrop på grund av bearbetning av funktionsinformationen. Kör experiment och mät svarstiden i ditt scenario för att se om det uppfyller programmets svarstidskrav.

  • Korrelerade funktioner. Funktioner som är starkt korrelerade med varandra kan minska nyttan av funktionspoäng. Anta till exempel att funktion A är starkt korrelerad med funktion B. Det kan vara så att funktion A:s poäng är ett stort positivt värde medan funktion B:s poäng är ett stort negativt värde. I det här fallet kan de två funktionerna effektivt avbryta varandra och ha liten eller ingen inverkan på modellen. Personalizer är mycket robust för mycket korrelerade funktioner, men när du använder Inference Explainability ser du till att funktioner som skickas till Personanpassning inte är mycket korrelerade

  • Endast standardutforskning. För närvarande stöder Inference Explainability endast standardutforskningsalgoritmen.

Nästa steg

Förstärkningsinlärning