Dela via


Använd lärlingsläge för att träna Personanpassning utan att påverka ditt befintliga program

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.

När du distribuerar en ny Personalizer-resurs initieras den med en otränad eller tom modell. Det vill: den har inte lärt sig från några data och kommer därför inte att fungera bra i praktiken. Detta kallas "kallstart"-problemet och löses över tid genom att modellen tränas med verkliga data från produktionsmiljön. Lärlingsläge är ett inlärningsbeteende som hjälper till att minska problemet med "kallstart" och gör att du kan få förtroende för modellen innan den fattar beslut i produktion, allt utan att kräva någon kodändring.

Vad är lärlingsläge?

På samma sätt som en lärling kan lära sig ett hantverk genom att observera en expert, gör lärlingsläget det möjligt för Personanpassning att lära sig genom att observera de beslut som fattas av programmets aktuella logik. Personanpassningsmodellen tränar genom att efterlikna samma beslutsutdata som programmet. Med varje Rank API-anrop kan Personalizer lära sig utan att påverka den befintliga logiken och resultaten. Mått, som är tillgängliga från Azure-portalen och API:et, hjälper dig att förstå prestanda som modellen lär sig. Mer specifikt hur väl Anpassa matchar din befintliga logik (kallas även baslinjeprincipen).

När Personanpassningen rimligen kan matcha din befintliga logik 60–80 % av tiden kan du ändra beteendet från Lärlingsläge till Onlineläge. Vid den tidpunkten returnerar Personalizer de bästa åtgärderna i ranknings-API:et enligt den underliggande modellen och kan lära sig att fatta bättre beslut än din baslinjeprincip.

Varför använda lärlingsläge?

Lärlingsläge är ett sätt för din modell att efterlikna din befintliga beslutslogik innan den fattar onlinebeslut som används av ditt program. Detta hjälper till att minska ovan nämnda problem med kallstart och ger dig större förtroende för personanpassningstjänsten och försäkrar dig om att de data som skickas till Personanpassning är värdefulla för att träna modellen. Detta görs utan att riskera eller påverka din onlinetrafik och dina kundupplevelser.

De två främsta orsakerna till att använda lärlingsläge är:

  • Minimera kalla starter: Lärlingsläget hjälper till att minska kostnaden för en träning av en "ny" modell i produktion genom att lära sig utan att behöva fatta oinformerade beslut. Modellen lär sig att efterlikna din befintliga programlogik.
  • Verifiera åtgärds- och kontextfunktioner: Kontext- och åtgärdsfunktioner kan vara otillräckliga, felaktiga eller underoptimally utformade. Om det finns för få, för många, felaktiga, bullriga eller felaktiga funktioner har Personalize svårt att träna en modell med bra prestanda. Genom att utföra en funktionsutvärdering i lärlingsläge kan du upptäcka hur effektiva funktionerna är på träningsanpassningen och kan identifiera områden för att förbättra funktionskvaliteten.

När ska du använda lärlingsläge?

Använd Lärlingsläge för att träna Personanpassning för att förbättra dess effektivitet genom följande scenarier samtidigt som användarnas upplevelse inte påverkas av Personanpassning:

  • Du implementerar Personanpassning i ett nytt scenario.
  • Du har gjort större ändringar i kontext- eller åtgärdsfunktionerna.

Lärlingsläget är dock inte ett effektivt sätt att mäta vilken inverkan Personanpassning kan ha på att förbättra den genomsnittliga belöningen eller dina affärs-KPI:er. Den kan bara utvärdera hur väl tjänsten lär sig din befintliga logik med tanke på de aktuella data som du tillhandahåller. Om du vill mäta hur effektiv personanpassning är när du väljer bästa möjliga åtgärd för varje Rankningsanrop måste Personanpassningen vara i onlineläge, eller så kan du använda offlineutvärderingar under en tidsperiod när personanpassningen var i onlineläge.

Vem bör använda lärlingsläge?

Lärlingsläge är användbart för utvecklare, dataforskare och beslutsfattare:

  • Utvecklare kan använda lärlingsläge för att säkerställa att API:erna rankning och belöning implementeras korrekt i programmet, och att funktioner som skickas till Personanpassning är fria från fel och vanliga misstag. Läs mer om att skapa bra funktioner för kontext och åtgärd.

  • Dataforskare kan använda lärlingsläge för att verifiera att funktionerna är effektiva för att träna personanpassningsmodellerna. Det vill: funktionerna innehåller användbar information som gör det möjligt för Personalizer att lära sig den befintliga beslutslogik.

  • Beslutsfattare för företag kan använda lärlingsläge för att utvärdera personaliserarens potential för att förbättra resultaten (dvs. belöningar) jämfört med befintlig affärslogik. Mer specifikt, om Personanpassning kan lära sig av angivna data innan du går in i onlineläge. Detta gör det möjligt för dem att fatta ett välgrundat beslut om hur användarupplevelsen påverkas, där verkliga intäkter och användarnöjdhet står på spel.

Jämföra beteenden – lärlingsläge och onlineläge

Inlärning när du är i lärlingsläge skiljer sig från onlineläget på följande sätt.

Ytdiagram Lärlingsläge Onlineläge
Påverkan på användarupplevelsen Användarnas upplevelse och affärsmått ändras inte. Personanpassning tränas genom att observera baslinjeåtgärderna i din aktuella programlogik, utan att påverka dem. Användarnas upplevelse kan ändras när beslutet fattas av Personalizer och inte din baslinjeåtgärd.
Inlärningshastighet Personanpassning lär sig långsammare i lärlingsläge jämfört med inlärning i onlineläge. Lärlingsläge kan bara lära sig genom att observera de belöningar som erhålls av din standardåtgärd utan utforskning, vilket begränsar hur mycket Personanpassning kan lära sig. Lär dig snabbare eftersom det både kan utnyttja den bästa åtgärden från den aktuella modellen och utforska andra åtgärder för potentiellt bättre resultat.
Utbildningseffektivitet "Tak" Personanpassning kan bara uppskatta och aldrig överskrida prestanda för programmets aktuella logik (den totala genomsnittliga belöningen som uppnås av baslinjeåtgärden). Det är osannolikt att Personanpassning kommer att uppnå 100 % matchning med det aktuella programmets logik, och rekommenderas att när 60%-80% matchning uppnås bör Personanpassning växlas till Online-läge. Personanpassningen bör överskrida prestandan för din baslinjeprogramlogik. Om Personanpassningens prestanda stannar över tid kan du utföra offlineutvärdering och funktionsutvärdering för att genomföra ytterligare förbättringar.
Rang-API-returvärde för rewardActionId RewardActionId kommer alltid att vara ID för standardåtgärden. Det vill: den åtgärd som du skickar som den första åtgärden i JSON för ranknings-API-begäran. Med andra ord gör Rank-API:et inget synligt för ditt program under lärlingsläget. RewardActionId är ett av de ID:n som tillhandahålls i sedan Rank API-anropet enligt personanpassningsmodellen.
Recensioner Personalizer håller en jämförelse av de belöningssummor som tas emot av din aktuella programlogik, och belöningssummorna Personanpassning skulle få om det var i onlineläge vid den tidpunkten. Den här jämförelsen är tillgänglig för visning på bladet Övervaka för din Personalizer-resurs i Azure-portalen. Utvärdera Personalizers effektivitet genom att köra offlineutvärderingar, vilket gör att du kan jämföra de totala belöningar som Personanpassning har uppnått mot de potentiella belöningarna i programmets baslinje.

Observera att det är osannolikt att personanpassningen uppnår en prestandamatchning på 100 % med programmets baslinjelogik och att den aldrig överskrider den. Prestandamatchning på 60%-80 % bör vara tillräcklig för att växla Personanpassning till Online-läge, där Personanpassning kan lära sig bättre beslut och överskrida prestanda för programmets baslinjelogik.

Begränsningar i lärlingsläge

Lärlingsläget tränar personanpassningsmodellen genom att försöka imitera det befintliga programmets baslinjelogik med hjälp av de kontext- och åtgärdsfunktioner som finns i rankningsanropen. Följande faktorer påverkar lärlingslägets förmåga att lära sig.

Scenarier där lärlingsläget kanske inte är lämpligt:

Redaktionellt valt innehåll:

I vissa scenarier, till exempel nyheter eller underhållning, kan baslinjeobjektet tilldelas manuellt av en redaktion. Det innebär att människor använder sin kunskap om den bredare världen, och förståelse för vad som kan vara tilltalande innehåll, för att välja specifika artiklar eller medier ur en pool och flagga dem som "föredragna" eller "hero"-artiklar. Eftersom dessa redigerare inte är en algoritm, och de faktorer som beaktas av redigerare kan vara subjektiva och eventuellt inte relaterade till kontext- eller åtgärdsfunktionerna. I det här fallet kan lärlingsläget ha svårt att förutsäga baslinjeåtgärden. I dessa situationer kan du:

  • Testanpassning i onlineläge: Överväg att placera Personanpassning i onlineläge i tid eller i ett A/B-test om du har infrastrukturen och kör sedan en offlineutvärdering för att utvärdera skillnaden mellan programmets baslinjelogik och Personanpassning.
  • Lägg till redaktionella överväganden och rekommendationer som funktioner: Fråga dina redigerare vilka faktorer som påverkar deras val och se om du kan lägga till dem som funktioner i din kontext och åtgärd. Till exempel kan redigerare i ett medieföretag markera innehåll när en viss kändis ofta är i nyheterna: Den här kunskapen kan läggas till som en kontextfunktion.

Faktorer som förbättrar och påskyndar lärlingsläget

Om lärlingsläget lär sig och uppnår en matchande prestanda över noll, men prestandan förbättras långsamt (inte får till 60% till 80% matchade belöningar inom två veckor), är det möjligt att det finns för lite data som skickas till Personanpassning. Följande steg kan underlätta snabbare inlärning:

  1. Lägga till differentieringsfunktioner: Du kan göra en visuell kontroll av åtgärderna i ett rankningsanrop och deras funktioner. Har baslinjeåtgärden funktioner som skiljer sig från andra åtgärder? Om de mest ser likadana ut lägger du till fler funktioner som ökar mångfalden i funktionsvärdena.
  2. Minska åtgärder per händelse: Personanpassning använder inställningen "% av rankningsanrop som ska användas för utforskning" för att identifiera inställningar och trender. När ett rankningsanrop har fler åtgärder blir risken för att en viss åtgärd väljs för utforskning lägre. Att minska antalet åtgärder som skickas i varje rankningsanrop till ett mindre nummer (under 10) kan vara en tillfällig justering som kan indikera om lärlingsläget har tillräckligt med data för att lära sig.

Använda lärlingsläge för att träna med historiska data

Om du har en betydande mängd historiska data som du vill använda för att träna Personanpassning kan du använda lärlingsläget för att spela upp data via Personanpassning.

Konfigurera personanpassningen i lärlingsläge och skapa ett skript som anropar Rank med åtgärder och kontextfunktioner från historiska data. Anropa Reward API baserat på dina beräkningar av posterna i dessa data. Du kan behöva cirka 50 000 historiska händelser för att se Personanpassning uppnå en 60–80 %-matchning med programmets baslinjelogik. Du kanske kan uppnå tillfredsställande resultat med färre eller fler händelser.

När du tränar från historiska data rekommenderar vi att data som skickas i [funktioner för kontext och åtgärder, deras layout i JSON som används för Rank-begäranden och beräkningen av belöning i den här träningsdatauppsättningen] matchar de data [funktioner och beräkning av belöning] som är tillgängliga från ditt befintliga program.

Offlinedata och historiska data tenderar att vara mer ofullständiga och bullrigare och kan skilja sig i format från ditt produktionsscenario (eller online). Även om det är möjligt att träna från historiska data kan resultatet av detta vara ofullständigt och är inte nödvändigtvis en bra prediktor för hur väl Personanpassning lär sig i onlineläge, särskilt om funktionerna varierar mellan historiska data och det aktuella scenariot.

Använda lärlingsläge jämfört med A/B-tester

Det är bara användbart att göra A/B-tester av personanpassningsbehandlingar när det har verifierats och lär sig i onlineläge, eftersom endast baslinjeåtgärden används i lärlingsläget och den befintliga logiken lärs in. Detta innebär i princip att Personanpassning returnerar åtgärden för "kontroll"-armen i ditt A/B-test, därför har ett A/B-test i lärlingsläge inget värde.

När du har ett användningsfall med personaliserare och inlärning online kan du med A/B-experiment skapa kontrollerade kohorter och göra jämförelser av resultat som kan vara mer komplexa än de signaler som används för belöningar. En exempelfråga som ett A/B-test kan besvara är: "På en detaljhandelswebbplats optimerar Personanpassning en layout och får fler användare att checka ut tidigare, men minskar detta totala intäkter per transaktion?"

Nästa steg