Var och hur du använder en PersonanpassareWhere and how to use Personalizer

Använd Personanpassare i alla situationer där ditt program behöver välja rätt åtgärd (innehåll) för att visa, för att förbättra upplevelsen, uppnå bättre affärs resultat eller förbättra produktiviteten.Use Personalizer in any situation where your application needs to select the correct action (content) to display - in order to make the experience better, achieve better business results, or improve productivity.

Personanpassare använder förstärkt inlärning för att välja vilken åtgärd (innehåll) som ska Visa användaren.Personalizer uses reinforcement learning to select which action (content) to show the user. Valet kan variera drastiskt beroende på kvantitet, kvalitet och distribution av data som skickas till tjänsten.The selection can vary drastically depending on the quantity, quality, and distribution of data sent to the service.

Exempel på användnings fall för PersonanpassareExample use cases for Personalizer

  • Avsikt att klargöra & untvetydighet: hjälpa dina användare att få en bättre upplevelse när deras avsikt inte är klar genom att tillhandahålla ett alternativ som är anpassat.Intent clarification & disambiguation: help your users have a better experience when their intent is not clear by providing an option that is personalized.
  • Standard förslag för menyer & alternativ: låt bot-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 egen meny eller en lista med alternativ.Default suggestions for menus & options: have the bot suggest the most likely item in a personalized way as a first step, instead of presenting an impersonal menu or list of alternatives.
  • Bot-traiter & tonen: för robotar som kan variera ton, utförlighet och skriv stil, bör du överväga att variera dessa egenskaper.Bot traits & tone: for bots that can vary tone, verbosity, and writing style, consider varying these traits.
  • Aviserings & aviserings innehåll: Bestäm vilken text som ska användas för aviseringar för att engagera användare.Notification & alert content: decide what text to use for alerts in order to engage users more.
  • Aviserings & tids inställning för aviseringar: har anpassad inlärning av när du ska skicka meddelanden till användare för att kunna engagera dem.Notification & alert timing: have personalized learning of when to send notifications to users to engage them more.

Förväntningar som krävs för att använda PersonanpassareExpectations required to use Personalizer

Du kan använda Personanpassare i situationer där du uppfyller eller kan implementera följande rikt linjer.You can apply Personalizer in situations where you meet or can implement the following guidelines.

RiktlinjerGuideline FörklaringExplanation
Affärs målBusiness goal Du har ett affärs-eller användbarhets mål för ditt program.You have a business or usability goal for your application.
InnehållContent Du har en plats i ditt program där du får ett Sammanhangs beroende beslut av vad som ska visas för användarna att förbättra det målet.You have a place in your application where making a contextual decision of what to show to users will improve that goal.
Innehålls mängdContent quantity Du har färre än 50 åtgärder att rangordna per anrop.You have fewer than 50 actions to rank per call.
Aggregera dataAggregate data Det bästa valet kan och bör registreras från kollektivt användar beteende och total belönings poäng.The best choice can and should be learned from collective user behavior and total reward score.
Etisk användningEthical use Användningen av Machine Learning för anpassning följer de rikt linjer och alternativ som du väljer.The use of machine learning for personalization follows responsible use guidelines and choices you chose.
Bästa enkla alternativetBest single option Det sammanhangsbaserade beslutet kan uttryckas som rangordning av det bästa alternativet (åtgärd) från en begränsad uppsättning alternativ.The contextual decision can be expressed as ranking the best option (action) from a limited set of choices.
Resultat resultatScored result Hur väl det rankade valet av program kan bestämmas genom att mäta viss aspekt av användar beteendet och uttrycka det i en belönings Poäng.How well the ranked choice worked for your application can be determined by measuring some aspect of user behavior, and expressing it in a reward score.
Relevant tids inställningRelevant timing Belönings poängen tar inte upp för många påträffande eller externa faktorer.The reward score doesn't bring in too many confounding or external factors. Experimentets varaktighet är för låg nog att belönings poängen kan beräknas när den fortfarande är relevant.The experiment duration is low enough that the reward score can be computed while it's still relevant.
Tillräckliga kontext funktionerSufficient context features Du kan uttrycka kontexten för rang som en lista över minst 5 funktioner som du tror kan hjälpa dig att välja rätt och som inte innehåller användarspecifik identifierbar information.You can express the context for the rank as a list of at least 5 features that you think would help make the right choice, and that doesn't include user-specific identifiable information.
Tillräckliga åtgärds funktionerSufficient action features Du har information om varje innehålls val, åtgärd, som en lista över minst 5 funktioner som du tror att du kan göra rätt val.You have information about each content choice, action, as a list of at least 5 features that you think will help Personalizer make the right choice.
Dagliga dataDaily data Det finns tillräckligt många händelser för att få bästa möjliga anpassning om problemet uppstår över tid (t. ex. inställningar i nyheter eller mode).There's enough events to stay on top of optimal personalization if the problem drifts over time (such as preferences in news or fashion). Personanpassaren anpassas efter kontinuerliga förändringar i verkligheten, men resultatet blir inte optimalt om det inte finns tillräckligt med händelser och data för att lära sig att identifiera och lösa nya mönster.Personalizer will adapt to continuous change in the real world, but results won't be optimal if there's not enough events and data to learn from to discover and settle on new patterns. Du bör välja ett användnings fall som ofta är tillräckligt.You should choose a use case that happens often enough. Överväg att söka efter användnings fall som inträffar minst 500 gånger per dag.Consider looking for use cases that happen at least 500 times per day.
Historiska dataHistorical data Ditt program kan lagra data tillräckligt länge för att samla en historik på minst 100 000 interaktioner.Your application can retain data for long enough to accumulate a history of at least 100,000 interactions. Detta gör att en Personanpassare kan samla in tillräckligt med data för att utföra offline-utvärdering och optimering av principer.This allows Personalizer to collect enough data to perform offline evaluations and policy optimization.

Använd inte personanpassare där det personliga beteendet inte är något som kan upptäckas för alla användare.Don't use Personalizer where the personalized behavior isn't something that can be discovered across all users. Till exempel är det bra att använda Personanpassare för att föreslå en första pizza-order från en lista med 20 möjliga meny alternativ, men vilken kontakt som ska anropas från användarnas kontakt lista när du behöver hjälp med Childcare (t. ex. "Grandma") är inte något som är personalizable i användar basen.For example, using Personalizer to suggest a first pizza order from a list of 20 possible menu items is useful, but which contact to call from the users' contact list when requiring help with childcare (such as "Grandma") is not something that is personalizable across your user base.

Så här använder du Personanpassare i ett webb programHow to use Personalizer in a web application

Att lägga till en inlärnings slinga till ett webb program innehåller:Adding a learning loop to a web application includes:

  • Bestäm vilken upplevelse som ska anpassas, vilka åtgärder och funktioner du har, vilka Sammanhangs funktioner som ska användas och vilken belöning du ställer in.Determine which experience to personalize, what actions and features you have, what context features to use, and what reward you'll set.
  • Lägg till en referens till anpassnings-SDK: n i ditt program.Add a reference to the Personalization SDK in your application.
  • Anropa rang-API: et när du är redo att anpassa.Call the Rank API when you are ready to personalize.
  • Lagra eventId.Store the eventId. Du skickar en belöning med belönings-API: et senare.You send a reward with the Reward API later.
  1. Anropa aktivera för händelsen när du är säker på att användaren har sett din anpassade sida.Call Activate for the event once you're sure the user has seen your personalized page.
  2. Vänta på att användare väljer Rankat innehåll.Wait for user selection of ranked content.
  3. Ring belönings-API för att ange hur väl utdata från rang-API: n gjorde.Call Reward API to specify how well the output of the Rank API did.

Så här använder du en Personanpassare med en chatt-robotHow to use Personalizer with a chat bot

I det här exemplet får du se hur du använder anpassning för att göra ett standard förslag istället för att skicka användaren en serie menyer eller alternativ varje gång.In this example, you will see how to use Personalization to make a default suggestion instead of sending the user down a series of menus or choices every time.

  • Hämta koden för det här exemplet.Get the code for this sample.
  • Konfigurera din bot-lösning.Set up your bot solution. Se till att publicera ditt LUIS-program.Make sure to publish your LUIS application.
  • Hantera rang-och belönings-API-anrop för bot.Manage Rank and Reward API calls for bot.
    • Lägg till kod för att hantera bearbetning av LUIS-avsikt.Add code to manage LUIS intent processing. Om ingen returneras som den främsta avsikten eller den främsta avsikts poängen är lägre än din affärs logiks tröskel, skickar du listan med intentor till personanpassaren för att rangordna intentarna.If the None is returned as the top intent or the top intent's score is below your business logic threshold, send the intents list to Personalizer to Rank the intents.
    • Visa avsikts lista till användare som valbara länkar med det första syftet som det främsta ordnade syftet från rang-API-svar.Show intent list to user as selectable links with the first intent being the top-ranked intent from Rank API response.
    • Avbilda användarens val och skicka detta i belönings-API-anropet.Capture the user's selection and send this in the Reward API call.
  • Gör en degrads-API-anrop varje gång en avtvetydighet behövs, i stället för att cachelagra resultat för varje användare.Make Personalizer Rank API calls every time a disambiguation is needed, as opposed to caching results for each user. Resultatet av kontrollerades kan ändras med tiden för en person, och att rang-API: et kan upptäcka varianser för att påskynda den övergripande inlärningen.The result of disambiguating intent may change over time for one person, and allowing the Rank API to explore variances will accelerate overall learning.
  • 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.Choose an interaction that is common with many users so that you have enough data to personalize. Till exempel kan introduktions frågor vara bättre än mindre tydliga i konversations diagrammet som bara några få användare kan komma åt.For example, introductory questions may be better fits than smaller clarifications deep in the conversation graph that only a few users may get to.
  • Använd rang-API-anrop för att aktivera "första förslaget är rätt"-konversationer, där användaren får frågan "vill du ha X?"Use Rank API calls to enable "first suggestion is right" conversations, where the user gets asked "Would you like X?" eller "menade du X?"or "Did you mean 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.and the user can just confirm; as opposed to giving options to the user where they must choose from a menu. Till exempel User: "Jag vill beställa en kaffe" robot: "vill du ha en dubbel espresso?".For example, User:"I'd like to order a coffee" Bot:"Would you like a double espresso?". På så sätt kan belönings signalen också vara stark eftersom den gäller direkt till ett förslag.This way the reward signal is also strong as it pertains directly to the one suggestion.

Så här använder du en Personanpassare med en rekommendations lösningHow to use Personalizer with a recommendation solution

Många företag använder rekommendations motorer, marknadsförings-och kampanj verktyg, mål grupp segmentering och klustring, samordnad filtrering och andra metoder för att rekommendera produkter från en stor katalog till kunder.Many companies use recommendation engines, marketing and campaigning tools, audience segmentation and clustering, collaborative filtering, and other means to recommend products from a large catalog to customers.

Microsoft-rekommendationerna GitHub-lagringsplatsen innehåller exempel och bästa metoder för att skapa rekommendations system, som tillhandahålls som Jupyter notebook-datorer.The Microsoft Recommenders GitHub repository provides examples and best practices for building recommendation systems, provided as Jupyter notebooks. Den innehåller exempel på hur du förbereder data, bygger modeller, utvärderar, justerar och genomför rekommendationer för att använda rekommendationer för många vanliga metoder, inklusive xDeepFM, SAR, sensorn, RINGPÄRMSMEKANISMER, DKN.It provides working examples for preparing data, building models, evaluating, tuning, and operationalizing the recommendation engines, for many common approaches including xDeepFM, SAR, ALS, RBM, DKN.

Personanpassaren kan arbeta med en rekommendations motor när den är närvarande.Personalizer can work with a recommendation engine when it's present.

  • Rekommendations motorer 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.Recommendation engines take large amounts of items (for example, 500,000) and recommend a subset (such as the top 20) from hundreds or thousands of options.
  • Personanpassaren tar ett litet antal åtgärder med mycket information om dem och rangordnar dem i real tid för en viss rik kontext, medan de flesta rekommendations motorer bara använder några få attribut om användare, produkter och deras interaktioner.Personalizer takes a small number of actions with lots of information about them and ranks them in real time for a given rich context, while most recommendation engines only use a few attributes about users, products and their interactions.
  • Personanpassaren är utformad för att på ett autonomt sätt utforska användar inställningarna hela tiden, vilket ger bättre resultat om innehållet ändras snabbt, till exempel nyheter, direktsända evenemang, innehåll i levande community, innehåll med dagliga uppdateringar eller säsongs innehåll.Personalizer is designed to autonomously explore user preferences all the time, which will yield better results where content is changing rapidly, such as news, live events, live community content, content with daily updates, or seasonal content.

Ett vanligt användnings sätt är att ta ut utdata från en rekommendations motor (till exempel de 20 främsta produkterna för en viss kund) och använda dem som ingångs åtgärder för Personanpassaren.A common use is to take the output of a recommendation engine (for example, the top 20 products for a certain customer) and use that as the input actions for Personalizer.

Lägga till innehålls skydd i ditt programAdding content safeguards to your application

Om ditt program tillåter stora varianser i innehåll som visas för användarna, och en del av innehållet kan vara osäkert eller olämpligt för vissa användare, bör du planera framåt för att se till att rätt skydd är på plats för att förhindra att användarna ser oacceptabelt innehåll.If your application allows for large variances in content shown to users, and some of that content may be unsafe or inappropriate for some users, you should plan ahead to make sure that the right safeguards are in place to prevent your users from seeing unacceptable content. Det bästa mönstret för att implementera säkerhets åtgärder är:The best pattern to implement safeguards is: * Hämta listan över åtgärder som ska rangordnas.Obtain the list of actions to rank. * Filtrera bort de som inte är livskraftiga för mål gruppen.Filter out the ones that are not viable for the audience. * Ranka bara de här lönsamma åtgärderna.Only rank these viable actions. * Visa den främsta rangordnade åtgärden för användaren.Display the top ranked action to the user.

I vissa arkitekturer kan ordningen ovan vara svår att implementera.In some architectures, the above sequence may be hard to implement. I så fall finns det en alternativ metod för att implementera skydd efter rangordning, men en bestämmelse måste göras så att åtgärder som faller utanför skyddet inte används för att träna en personanpassa modell.In that case, there is an alternative approach to implementing safeguards after ranking, but a provision needs to be made so actions that fall outside the safeguard are not used to train the Personalizer model.

  • Hämta listan med åtgärder som ska rangordnas med inlärning inaktiverat.Obtain the list of actions to rank, with learning deactivated.
  • Ranknings åtgärder.Rank actions.
  • Kontrol lera om den främsta åtgärden är livskraftig.Check if the top action is viable.
    • Om den främsta åtgärden är livskraftig aktiverar du inlärning för den här rangordningen och visar den sedan för användaren.If the top action is viable, activate learning for this rank, then show it to the user.
    • Om den översta åtgärden inte är livskraftig aktiverar du inte inlärning för den här rangordningen och bestämmer dig genom din egen logik eller alternativa metoder vad som ska visas för användaren.If the top action is not viable, do not activate learning for this ranking, and decide through your own logic or alternative approaches what to show to the user. Även om du använder det andra bästa rangordnings alternativet ska du inte aktivera inlärning för den här rangordningen.Even if you use the second-best ranked option, do not activate learning for this ranking.

Nästa stegNext steps

Etik & ansvarig användning.Ethics & responsible use.