Objaśnienie wnioskowania
Ważne
Od 20 września 2023 r. nie będzie można tworzyć nowych zasobów usługi Personalizacja. Usługa Personalizacja jest wycofywana 1 października 2026 r.
Personalizacja może pomóc w zrozumieniu, które funkcje wybranej akcji są najbardziej i najmniej wpływowe do modelu podczas wnioskowania. Po włączeniu objaśnienia wnioskowania obejmują wyniki funkcji z modelu bazowego do odpowiedzi interfejsu API rangi, dzięki czemu aplikacja otrzymuje te informacje w momencie wnioskowania.
Wyniki funkcji umożliwiają lepsze zrozumienie relacji między funkcjami a decyzjami podejmowanymi przez usługę Personalizacja. Mogą one służyć do zapewniania wglądu użytkownikom końcowym w to, dlaczego zostało wykonane określone zalecenie, lub do analizowania, czy model wykazuje stronniczości w stosunku do określonych ustawień kontekstowych, użytkowników i akcji.
Jak mogę włączyć objaśnienie wnioskowania?
Ustawienie flagi konfiguracji usługi IsInferenceExplainabilityEnabled w konfiguracji usługi umożliwia personalizacji uwzględnianie wartości funkcji i wag w odpowiedzi interfejsu API rangi. Aby zaktualizować bieżącą konfigurację usługi, użyj interfejsu API konfiguracji usługi — aktualizacji. W treści żądania JSON dołącz bieżącą konfigurację usługi i dodaj dodatkowy wpis: "IsInferenceExplainabilityEnabled": true. Jeśli nie znasz bieżącej konfiguracji usługi, możesz uzyskać ją z poziomu konfiguracji usługi — Pobierz interfejs 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
}
Uwaga
Włączenie objaśnienia wnioskowania znacznie zwiększy opóźnienie wywołań interfejsu API rangi. Zalecamy eksperymentowanie z tą funkcją i mierzenie opóźnienia w twoim scenariuszu, aby sprawdzić, czy spełnia wymagania dotyczące opóźnienia aplikacji.
Jak interpretować wyniki funkcji?
Włączenie objaśnienia wnioskowania spowoduje dodanie kolekcji do odpowiedzi JSON z interfejsu API rangi o nazwie inferenceExplanation. Zawiera listę nazw funkcji i wartości przesłanych w żądaniu rangi wraz z wynikami funkcji poznanymi przez bazowy model usługi Personalizacja. Wyniki funkcji zapewniają wgląd w wpływ każdej funkcji w modelu wybierającym akcję.
{
"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
},
]
]
}
W powyższym przykładzie w kolekcji rankingowej są zwracane trzy identyfikatory akcji wraz z odpowiednimi wynikami prawdopodobieństwa. Akcja z największym prawdopodobieństwem jest the_ najlepiej action_ określona przez model wyszkolony na danych wysyłanych do interfejsów API usługi Personalizacja, co w tym przypadku jest ."id": "EntertainmentArticle"
Identyfikator akcji można zobaczyć ponownie w kolekcji inferenceExplanation wraz z nazwami funkcji i wynikami określonymi przez model dla tej akcji oraz funkcjami i wartościami wysyłanymi do interfejsu API rangi.
Pamiętaj, że usługa Personalizacja zwróci najlepszą akcję lub akcję eksploracyjna wybraną przez zasady eksploracji. Najlepszą akcją jest ta, która została określona przez model, ma największe prawdopodobieństwo maksymalizacji średniej nagrody, podczas gdy akcje eksploracyjne są wybierane wśród zestawu wszystkich możliwych akcji dostępnych w wywołaniu interfejsu API rangi. Akcje podejmowane podczas eksploracji nie wykorzystują wyników funkcji podczas określania, które działania należy podjąć, w związku z czym wyniki funkcji dla akcji eksploracyjnych nie powinny być używane w celu uzyskania zrozumienia, dlaczego podjęto akcję. Więcej informacji na temat eksploracji można znaleźć tutaj.
W przypadku najlepszych akcji zwracanych przez usługę Personalizacja wyniki funkcji mogą zapewnić ogólne informacje, w których:
- Większe wyniki dodatnie zapewniają większą obsługę modelu wybierającego tę akcję.
- Większe wyniki ujemne zapewniają większą obsługę modelu, który nie wybiera tej akcji.
- Wyniki zbliżone do zera mają niewielki wpływ na decyzję o wybraniu tej akcji.
Ważne zagadnienia dotyczące objaśnienia wnioskowania
Zwiększone opóźnienie. Włączenie objaśnienia wnioskowania znacznie zwiększy opóźnienie wywołań interfejsu API rangi z powodu przetwarzania informacji o funkcji. Uruchom eksperymenty i zmierz opóźnienie w scenariuszu, aby sprawdzić, czy spełnia wymagania dotyczące opóźnienia aplikacji.
Skorelowane funkcje. Funkcje, które są ściśle skorelowane ze sobą, mogą zmniejszyć użyteczność wyników funkcji. Załóżmy na przykład, że funkcja A jest wysoce skorelowana z funkcją B. Może się zdarzyć, że wynik funkcji A jest dużą wartością dodatnią, a wynik funkcji B jest dużą wartością ujemną. W takim przypadku te dwie funkcje mogą skutecznie anulować się i nie mają wpływu na model. Chociaż usługa Personalizacja jest bardzo niezawodna w przypadku wysoce skorelowanych funkcji, podczas korzystania z funkcji wyjaśnień wnioskowania upewnij się, że funkcje wysyłane do usługi Personalizacja nie są wysoce skorelowane
Tylko domyślna eksploracja. Obecnie objaśnienie wnioskowania obsługuje tylko domyślny algorytm eksploracji.