Share via


Var och hur du använder Personanpassning

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.

Använd Personanpassning 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.

Personanpassning använder förstärkningsinlärning för att välja vilken åtgärd (innehåll) som ska visas för 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 Personanpassning

  • Förtydligande av avsikt och tvetydighet: hjälp användarna att få en bättre upplevelse när deras avsikt inte är tydlig genom att tillhandahålla ett alternativ som är anpassat.
  • Standardförslag för menyer och 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 och -ton: För robotar som kan variera ton, verbositet och skrivstil bör du överväga att variera dessa egenskaper.
  • Meddelande- och aviseringsinnehåll: Bestäm vilken text som ska användas för aviseringar för att engagera användarna mer.
  • Tidsinställning för meddelanden och aviseringar: 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 Personanpassning

Du kan använda Personanpassning i situationer där du träffas eller 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 av kollektivt användarbeteende och total belöningspoäng.
Etisk användning Användningen av maskininlärning för anpassning följer de riktlinjer och val som du har valt för ansvarsfull användning.
Bästa enskilda alternativ Det kontextuella beslutet kan uttryckas som att rangordna det bästa alternativet (åtgärden) från en begränsad uppsättning val.
Poängsatt resultat Hur väl det rankade valet fungerade för ditt program kan fastställas genom att mäta någon aspekt av användarbeteendet och uttrycka det i en belöningspoäng.
Relevant tidsinställning Belöningspoängen ger inte för många förvirrande 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 dig 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 över minst 5 funktioner som du tror hjälper Personanpassning att göra rätt val.
Dagliga data Det finns tillräckligt med händelser för att hålla koll på optimal anpassning om problemet växlar över tid (till exempel inställningar i nyheter eller mode). Personanpassningen anpassas till kontinuerliga förändringar i verkligheten, men resultaten blir inte optimala om det inte finns tillräckligt med händelser och data att lära sig av för att upptäcka och lösa nya mönster. Du bör välja ett användningsfall som händer tillräckligt ofta. Överväg att söka efter användningsfall som inträffar minst 500 gånger per dag.
Historiska data Ditt program kan behålla data tillräckligt länge för att ackumulera en historik med minst 100 000 interaktioner. Detta gör att Personanpassning kan samla in tillräckligt med data för att utföra offlineutvärderingar och principoptimering.

Använd inte Personanpassning där det personliga beteendet inte är något som kan identifieras för alla användare. Till exempel är det användbart att använda Personanpassning för att föreslå en första pizzabeställning från en lista med 20 möjliga menyalternativ, men vilken kontakt som ska ringas från användarnas kontaktlista när du behöver hjälp med barnomsorg (till exempel "mormor") är inte något som är personligt i hela användarbasen.

Så här använder du Personanpassning i ett webbprogram

Att lägga till en inlärningsloop i ett webbprogram omfattar:

  • Bestäm vilken upplevelse du ska anpassa, vilka åtgärder och funktioner du har, vilka kontextfunktioner du ska använda och vilken belöning du ska ange.
  • Lägg till en referens till anpassnings-SDK:et i ditt program.
  • Anropa ranknings-API:et när du är redo att anpassa.
  • Lagra eventId. Du skickar en belöning med reward-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 tills användaren har valt rangordnat innehåll.
  3. Anropa Reward API för att ange hur bra utdata från Rank-API:et gjorde.

Så här använder du Personanpassning 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 användaren ned en serie menyer eller val varje gång.

  • Hämta koden för det här exemplet.
  • Konfigurera robotlösningen. Se till att publicera LUIS-programmet.
  • Hantera API-anrop för rankning och belöning för robot.
    • Lägg till kod för att hantera LUIS-avsiktsbearbetning. Om ingen returneras som den översta avsikten eller den högsta avsiktens poäng ligger under ditt tröskelvärde för affärslogik skickar du listan med avsikter till Personanpassning 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 Svar på ranknings-API.
    • Samla in användarens val och skicka detta i Reward API-anropet.
  • Gör API-anrop för personanpassningsrankning varje gång en disambiguation behövs, i stället för att cachelagra resultat för varje användare. Resultatet av tvetydiga avsikter kan ändras över tid 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 förtydliganden djupt i konversationsdiagrammet som bara ett fåtal användare kan komma åt.
  • Använd Rank API-anrop för att aktivera "första förslag är rätt" konversationer, där användaren får frågan "Vill du ha 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 User:"I'd like to order a coffee" Bot:"Would you like a double espresso?". På så sätt är belöningssignalen också stark eftersom den gäller direkt till det enda förslaget.

Använda Personanpassning 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.

GitHub-lagringsplatsen Microsoft Recommenders innehåller exempel och metodtips för att skapa rekommendationssystem, som tillhandahålls som Jupyter-notebook-filer. Den innehåller exempel på hur du förbereder data, skapar modeller, utvärderar, justerar och operationaliserar rekommendationsmotorerna, för många vanliga metoder som xDeepFM, SAR, ALS, RBM och DKN.

Personanpassning kan fungera 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.
  • Personalizer vidtar 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 några attribut om användare, produkter och deras interaktioner.
  • Personanpassning är utformad för att utforska användarinställningar självständigt hela tiden, vilket ger bättre resultat där innehållet ändras snabbt, till exempel nyheter, livehändelser, live community-innehåll, innehåll med dagliga uppdateringar eller säsongsinnehåll.

En vanlig användning ä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 Personanpassning.

Lägga till innehållsskydd i ditt program

Om ditt program tillåter stora variationer 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 för att förhindra att användarna ser oacceptabelt innehåll. Det bästa mönstret för att implementera skyddsåtgärder är: * Hämta listan över åtgärder som ska rangordnas. * Filtrera bort de som inte är livskraftiga för publiken. * Rangordna endast dessa livskraftiga åtgärder. * Visa den högst rankade å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 skyddsåtgärder efter rangordning, men en bestämmelse måste göras så att åtgärder som ligger utanför skyddet inte används för att träna personanpassningsmodellen.

  • Hämta listan över åtgärder som ska rangordnas, 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ärningen för den här rangordningen och visar den för användaren.
    • Om den översta åtgärden inte är genomförbar aktiverar du inte inlärning för den här rankningen och bestämmer genom din egen logik eller alternativa metoder vad som ska visas för användaren. Även om du använder det näst bästa rankade alternativet ska du inte aktivera inlärning för den här rankningen.

Nästa steg

Etik och ansvarsfull användning.