Var och hur du använder Personanpassare

Använd Personanpassaren i alla situationer där ditt program behöver välja rätt åtgärd (innehåll) att visa – för att göra upplevelsen bättre, uppnå bättre affärsresultat eller förbättra produktiviteten.

Personanpassaren använder förstärkt inlärning för att välja vilken åtgärd (innehåll) som ska visa användaren. Valet kan variera drastiskt beroende på kvantitet, kvalitet och distribution av data som skickas till tjänsten.

Exempel på användningsfall för Personanpassare

  • Förtydligande av avsikter & tvetydighet: hjälpa användarna att få en bättre upplevelse när deras avsikt inte är tydlig genom att tillhandahålla ett anpassat alternativ.
  • Standardförslag för menyer & alternativ: låt roboten föreslå det mest sannolika objektet på ett personligt sätt som ett första steg, i stället för att presentera en opersonlig meny eller lista över alternativ.
  • Robotegenskaper &: för robotar som kan variera tonfall, verbositet och skrivstil bör du överväga olika dessa egenskaper.
  • Meddelande & aviseringsinnehåll: bestäm vilken text som ska användas för aviseringar för att engagera användarna mer.
  • Tidsinställning & meddelanden: ha anpassad inlärning av när du ska skicka meddelanden till användare för att engagera dem mer.

Förväntningar som krävs för att använda Personanpassare

Du kan använda Personanpassare i situationer där du uppfyller eller kan implementera följande riktlinjer.

Riktlinjer Förklaring
Affärsmål Du har ett affärs- eller användbarhetsmål för ditt program.
Innehåll Du har en plats i ditt program där ett sammanhangsberoende beslut om vad som ska visas för användarna kommer att förbättra det målet.
Innehållskvantitet Du har färre än 50 åtgärder att rangordna per anrop.
Aggregera data Det bästa valet kan och bör läras från gemensamt användarbeteende och totalt antal belöningspoäng.
Etisk användning Användningen av maskininlärning för anpassning följer riktlinjer och val för ansvarsfull användning som du har valt.
Bästa enskilda alternativ Det sammanhangsberoende beslutet kan uttryckas som rangordning av det bästa alternativet (åtgärd) från en begränsad uppsättning alternativ.
Poängat resultat Hur väl det rangordnade valet fungerade för ditt program kan fastställas genom att mäta någon aspekt av användarbeteendet och uttrycka det i ett belöningspoäng.
Relevant tidsinställning Belöningspoängen orsakar inte för många störfaktorer eller externa faktorer. Experimentets varaktighet är tillräckligt låg för att belöningspoängen ska kunna beräknas medan den fortfarande är relevant.
Tillräckliga kontextfunktioner Du kan uttrycka kontexten för rangordningen som en lista med minst 5 funktioner som du tror skulle hjälpa till att göra rätt val och som inte innehåller användarspecifik identifierbar information.
Tillräckliga åtgärdsfunktioner Du har information om varje innehållsval, åtgärd, som en lista med minst 5 funktioner som du tror hjälper Personanpassare att göra rätt val.
Dagliga data Det finns tillräckligt med händelser för att hålla kontroll över optimal anpassning om problemet uppstår över tid (till exempel nyheter eller modeinställningar). Personanpassningen anpassas till kontinuerlig förändring i verkligheten, men resultaten blir inte optimala om det inte finns tillräckligt med händelser och data att lära sig från för att upptäcka och reglera nya mönster. Du bör välja ett användningsfall som sker tillräckligt ofta. Överväg att leta efter användningsfall som inträffar minst 500 gånger per dag.
Historiska data Programmet kan behålla data tillräckligt länge för att ackumulera en historik med minst 100 000 interaktioner. På så sätt kan Personanpassaren samla in tillräckligt med data för att utföra offlineutvärderingar och principoptimering.

Använd inte Personanpassare där det anpassade beteendet inte är något som kan identifieras för alla användare. Att till exempel använda Personanpassare för att föreslå en första pizzabeställning från en lista med 20 möjliga menyalternativ är användbart, men vilken kontakt som ska anropas från användarnas kontaktlista när du behöver hjälp med att hjälpa till (t.ex. "Det här är inte något som är personligtiserbart i hela användarbasen).

Så här använder du Personanpassare i en webbapp

Att lägga till en utbildningsloop i en webbapp omfattar:

  • Bestäm vilken upplevelse du ska anpassa, vilka åtgärder och funktioner du har, vilka sammanhangsfunktioner du ska använda och vilken belöning du ställer in.
  • Lägg till en referens till Anpassnings-SDK i ditt program.
  • Anropa Rank-API:et när du är redo att anpassa.
  • Lagra eventId. Du skickar en belöning med belönings-API:et senare.
  1. Anropa Aktivera för händelsen när du är säker på att användaren har sett din anpassade sida.
  2. Vänta på användarval av rangordnat innehåll.
  3. Anropa belönings-API:et för att ange hur väl utdata från Rank-API:et gjorde.

Använda Personanpassare med en chattrobot

I det här exemplet ser du hur du använder anpassning för att göra ett standardförslag i stället för att skicka ned en serie menyer eller alternativ varje gång.

  • Hämta koden för det här exemplet.
  • Konfigurera din robotlösning. Se till att publicera LUIS-programmet.
  • Hantera anrop till ranknings- och belönings-API:et för roboten.
    • Lägg till kod för att hantera LUIS-avsiktsbearbetning. Om poängen för avsikten None (Ingen) returneras som den främsta avsikten eller om den främsta avsikten ligger under tröskelvärdet för affärslogiken skickar du avsiktslistan till Personanpassare för att rangordna avsikterna.
    • Visa avsiktslistan för användaren som valbara länkar där den första avsikten är den högst rankade avsikten från Rank API-svaret.
    • Samla in användarens val och skicka det i api-anropet för belöning.
  • Gör ANrop till RANKNING-API:et för personanpassare varje gång det behövs en tvetydighet, till skillnad från cachelagring av resultat för varje användare. Resultatet av tvetydigheten kan ändras med tiden för en person, och om ranknings-API:et kan utforska avvikelser påskyndas den övergripande inlärningen.
  • Välj en interaktion som är gemensam för många användare så att du har tillräckligt med data för att anpassa. Introduktionsfrågor kan till exempel passa bättre än mindre klargöranden djupt i konversationsdiagrammet som bara ett fåtal användare kan komma till.
  • Använd Rank API-anrop för att aktivera "första förslag är rätt" konversationer, där användaren tillfrågas om "Vill du X?" eller "Menade du X?" och användaren kan bara bekräfta; i stället för att ge alternativ till användaren där de måste välja från en meny. Till exempel Användare:"I'd like to order a coffee" Bot:"Would you like a doublebble?". På så sätt är belöningssignalen också stark eftersom den gäller direkt för ett förslag.

Använda Personanpassare med en rekommendationslösning

Många företag använder rekommendationsmotorer, marknadsförings- och kampanjverktyg, målgruppssegmentering och klustring, samarbetsfiltrering och andra sätt att rekommendera produkter från en stor katalog till kunder.

Microsoft Recommenders GitHub-lagringsplatsen innehåller exempel och metodtips för att skapa rekommendationssystem, som tillhandahålls som Jupyter Notebooks. Den innehåller arbetsexempel för att förbereda data, skapa modeller, utvärdera, justera och operationalisera rekommendationsmotorerna för många vanliga metoder, inklusive xDeepFM, SAR, ALS, RBM och DKN.

Personanpassaren kan arbeta med en rekommendationsmotor när den finns.

  • Rekommendationsmotorer tar stora mängder objekt (till exempel 500 000) och rekommenderar en delmängd (till exempel de 20 främsta) från hundratals eller tusentals alternativ.
  • Personanpassaren tar ett litet antal åtgärder med mycket information om dem och rangordnar dem i realtid för en viss omfattande kontext, medan de flesta rekommendationsmotorer bara använder ett fåtal attribut om användare, produkter och deras interaktioner.
  • Personanpassaren är utformad för att automatiskt utforska användarpreferenser hela tiden, vilket ger bättre resultat där innehållet ändras snabbt, till exempel nyheter, livehändelser, live-communityinnehåll, innehåll med dagliga uppdateringar eller säsongsinnehåll.

Ett vanligt användningsexempel är att ta utdata från en rekommendationsmotor (till exempel de 20 främsta produkterna för en viss kund) och använda den som indataåtgärder för Personanpassare.

Lägga till innehållsskydd i ditt program

Om ditt program tillåter stora avvikelser i innehåll som visas för användare, och en del av innehållet kan vara osäkert eller olämpligt för vissa användare, bör du planera i förväg för att se till att rätt skydd finns på plats för att förhindra att användarna ser oacceptabelt innehåll. Det bästa mönstret för att implementera skydd är: * Hämta listan över åtgärder att rangordna. * Filtrera bort de som inte är genomförbara för målgruppen. * Rangordna endast dessa gångbara åtgärder. * Visa den översta rangordnade åtgärden för användaren.

I vissa arkitekturer kan sekvensen ovan vara svår att implementera. I så fall finns det en alternativ metod för att implementera skydd efter rangordning, men en etablering måste göras så att åtgärder som faller utanför skyddet inte används för att träna personanpassarmodellen.

  • Hämta listan över åtgärder att rangordna, med inlärning inaktiverad.
  • Rangordna åtgärder.
  • Kontrollera om den översta åtgärden är genomförbar.
    • Om den översta åtgärden är genomförbar aktiverar du inlärning för den här rangordningen och visar den sedan för användaren.
    • Om den översta åtgärden inte är genomförbar ska du inte aktivera inlärning för den här rangordningen och bestämma dig för vad som ska visas för användaren med hjälp av din egen logik eller alternativa metoder. Även om du använder det näst bästa rankade alternativet ska du inte aktivera inlärning för den här rangordningen.

Nästa steg

Ethics & responsible use.