De apprentice-modus gebruiken om Personalizer te trainen zonder dat dit van invloed is op uw bestaande toepassing

Belangrijk

Vanaf 20 september 2023 kunt u geen nieuwe Personalizer-resources maken. De Personalizer-service wordt op 1 oktober 2026 buiten gebruik gesteld.

Bij het implementeren van een nieuwe Personalizer-resource wordt deze geïnitialiseerd met een niet-getraind of leeg model. Dat wil gezegd, het heeft niet geleerd van gegevens en presteert daarom niet goed in de praktijk. Dit staat bekend als het 'koude startprobleem' en wordt in de loop van de tijd opgelost door het model te trainen met echte gegevens uit uw productieomgeving. Apprentice-modus is een leergedrag waarmee het probleem 'koude start' kan worden beperkt en u vertrouwen kunt krijgen in het model voordat het beslissingen neemt in productie, allemaal zonder dat er code hoeft te worden gewijzigd.

Wat is de leerlingmodus?

Net als bij hoe een leerling een ambacht kan leren door een expert te observeren, stelt Apprentice-modus Personalizer in staat om te leren door de beslissingen te observeren die door de huidige logica van uw toepassing zijn genomen. Het Personalizer-model traint door dezelfde beslissingsuitvoer na te bootsen als de toepassing. Met elke Rank API-aanroep kan Personalizer leren zonder dat dit van invloed is op de bestaande logica en resultaten. Metrische gegevens, die beschikbaar zijn via Azure Portal en de API, helpen u inzicht te krijgen in de prestaties terwijl het model leert. Hoe goed Personaliseren overeenkomt met uw bestaande logica (ook wel het basislijnbeleid genoemd).

Zodra Personalizer uw bestaande logica 60-80% van de tijd redelijk kan aanpassen, kunt u het gedrag van de apprentice-modus wijzigen in de onlinemodus. Op dat moment retourneert Personalizer de beste acties in de Rank-API, zoals bepaald door het onderliggende model en kan leren hoe u betere beslissingen kunt nemen dan uw basislijnbeleid.

Waarom de apprentice-modus gebruiken?

De leerlingmodus biedt een manier voor uw model om uw bestaande beslissingslogica na te bootsen voordat deze online beslissingen neemt die door uw toepassing worden gebruikt. Dit helpt om het bovengenoemde probleem met koude start te beperken en biedt u meer vertrouwen in de Personalizer-service en de zekerheid dat de gegevens die naar Personalizer worden verzonden waardevol zijn voor het trainen van het model. Dit gebeurt zonder risico's te lopen of van invloed te zijn op uw onlineverkeer en klantervaringen.

De twee belangrijkste redenen voor het gebruik van de leerlingmodus zijn:

  • Koude start beperken: de apprentice-modus helpt de kosten van een training te beperken tot een nieuw model in productie door te leren zonder dat u niet-geïnformeerde beslissingen hoeft te nemen. Het model leert uw bestaande toepassingslogica na te bootsen.
  • Het valideren van actie- en contextfuncties: context- en actiefuncties zijn mogelijk ontoereikend, onjuist of suboptimaal ontworpen. Als er te weinig, te veel, onjuiste, luidruchtige of onjuiste functies zijn, heeft Persoonlijke instellingen moeite met het trainen van een goed presterend model. Door een functie-evaluatie uit te voeren in de apprentice-modus, kunt u ontdekken hoe effectief de functies zijn bij het trainen van Personalizer en gebieden identificeren om de kwaliteit van functies te verbeteren.

Wanneer moet u de leerlingmodus gebruiken?

Gebruik de apprentice-modus om Personalizer te trainen om de effectiviteit ervan te verbeteren door de volgende scenario's, terwijl de ervaring van uw gebruikers niet wordt beïnvloed door Personalizer:

  • U implementeert Personalizer in een nieuw scenario.
  • U hebt belangrijke wijzigingen aangebracht in de context- of actiefuncties.

De Apprentice-modus is echter geen effectieve manier om de impact van Personalizer te meten op het verbeteren van de gemiddelde beloning of uw zakelijke KPI's. Het kan alleen evalueren hoe goed de service uw bestaande logica leert op basis van de huidige gegevens die u levert. Als u wilt meten hoe effectief Personalizer is bij het kiezen van de best mogelijke actie voor elke Rank-aanroep, moet Personalizer zich in de onlinemodus bevinden of kunt u offlineevaluaties gebruiken gedurende een bepaalde periode waarin Personalizer zich in de onlinemodus bevond.

Wie moet de leerlingmodus gebruiken?

De leerlingmodus is handig voor ontwikkelaars, gegevenswetenschappers en besluitvormers:

  • Ontwikkelaars kunnen de Apprentice-modus gebruiken om ervoor te zorgen dat de Rank- en Reward-API's correct worden geïmplementeerd in de toepassing en dat functies die naar Personalizer worden verzonden, vrij zijn van fouten en veelvoorkomende fouten. Meer informatie over het maken van goede context- en actiefuncties.

  • Gegevenswetenschappers kunnen de Apprentice-modus gebruiken om te controleren of de functies effectief zijn bij het trainen van de Personalizer-modellen. Dat wil gezegd, de functies bevatten nuttige informatie waarmee Personalizer de bestaande beslissingslogica kan leren.

  • Zakelijke besluitvormers kunnen de apprenticemodus gebruiken om het potentieel van Personalizer te beoordelen om de resultaten (dat wil gezegd beloningen) te verbeteren in vergelijking met bestaande bedrijfslogica. Met name of Personalizer kan leren van de opgegeven gegevens voordat u naar de onlinemodus gaat. Hierdoor kunnen ze een weloverwogen beslissing nemen over het beïnvloeden van de gebruikerservaring, waarbij echte omzet en gebruikerstevredenheid op het spel staan.

Gedrag vergelijken - Leerlingmodus en onlinemodus

Leren wanneer in de apprentice-modus verschilt van de onlinemodus op de volgende manieren.

Oppervlak Leerlingmodus Onlinemodus
Invloed op gebruikerservaring De gebruikerservaring en metrische zakelijke gegevens veranderen niet. Personalizer wordt getraind door de basislijnacties van uw huidige toepassingslogica te observeren, zonder dat dit van invloed is op deze acties. De ervaring van uw gebruikers kan veranderen wanneer de beslissing wordt genomen door Personalizer en niet uw basislijnactie.
Leersnelheid Personalizer leert langzamer wanneer in de leerlingmodus vergeleken met leren in de onlinemodus. De leerlingmodus kan alleen leren door de beloningen te observeren die zijn verkregen door uw standaardactie zonder verkenning, waardoor wordt beperkt hoeveel Personalizer kan leren. Leert sneller omdat het de beste actie van het huidige model kan benutten en andere acties voor potentieel betere resultaten kan verkennen .
Leereffectiviteit "Plafond" Personalizer kan alleen bij benadering en nooit groter zijn dan de prestaties van de huidige logica van uw toepassing (de totale gemiddelde beloning die wordt bereikt door de basislijnactie). Het is onwaarschijnlijk dat Personalizer 100% overeenkomt met de logica van uw huidige toepassing en wordt aanbevolen dat wanneer 60%-80% overeenkomend is bereikt, Personalizer moet worden overgeschakeld naar de onlinemodus. Personalizer moet de prestaties van uw basislijntoepassingslogica overschrijden. Als de prestaties van Personalizer in de loop van de tijd vastlopen, kunt u offline evaluatie en functie-evaluatie uitvoeren om extra verbeteringen aan te gaan.
Rangschikkings-API-retourwaarde voor rewardActionId De rewardActionId is altijd de id van de standaardactie. Dat wil gezegd, de actie die u verzendt als de eerste actie in de Rank API-aanvraag JSON. Met andere woorden, de Rank-API doet niets zichtbaar voor uw toepassing tijdens de app-modus. De rewardActionId is een van de id's die zijn opgegeven in de rank-API-aanroep, zoals bepaald door het Personalizer-model.
Evaluaties Personalizer houdt een vergelijking bij van de beloningstotalen die door uw huidige toepassingslogica zijn ontvangen en de beloningstotalen die Personalizer zou krijgen als deze zich op dat moment in de onlinemodus bevond. Deze vergelijking is beschikbaar om weer te geven op de blade Monitor van uw Personalizer-resource in Azure Portal. Evalueer de effectiviteit van Personalizer door offline evaluaties uit te voeren, waarmee u de totale beloningen van Personalizer kunt vergelijken met de potentiële beloningen van de basislijn van de toepassing.

Personalizer zal waarschijnlijk geen 100% prestatieovereenkomst bereiken met de basislijnlogica van de toepassing en zal deze nooit overschrijden. Prestatiekoppeling van 60%-80% moet voldoende zijn om personalizer over te schakelen naar de onlinemodus, waar Personalizer betere beslissingen kan leren en de prestaties van de basislijnlogica van uw toepassing kan overschrijden.

Beperkingen van de leerlingmodus

De leerlingmodus traint het Personalizer-model door de basislijnlogica van uw bestaande toepassing te imiteren met behulp van de context- en actiefuncties die aanwezig zijn in de Rank-aanroepen. De volgende factoren zijn van invloed op het vermogen van de leerlingmodus om te leren.

Scenario's waarin de leerlingmodus mogelijk niet geschikt is:

Op de redactionele wijze gekozen inhoud:

In sommige scenario's, zoals nieuws of entertainment, kan het basislijnitem handmatig worden toegewezen door een redactioneel team. Dit betekent dat mensen hun kennis over de bredere wereld gebruiken en begrijpen wat aantrekkelijke inhoud kan zijn, om specifieke artikelen of media uit een pool te kiezen en ze te markeren als 'voorkeursartikelen' of 'hero'. Omdat deze editors geen algoritme zijn en de factoren die door editors worden overwogen, kunnen subjectief zijn en mogelijk niet gerelateerd zijn aan de context- of actiefuncties. In dit geval kan de leerlingmodus problemen hebben bij het voorspellen van de basislijnactie. In deze situaties kunt u het volgende doen:

  • Test Personalizer in de onlinemodus: Overweeg personalizer in de onlinemodus te plaatsen voor tijd of in een A/B-test als u de infrastructuur hebt en voer vervolgens een offlineevaluatie uit om het verschil tussen de basislijnlogica van uw toepassing en Personalizer te beoordelen.
  • Voeg redactionele overwegingen en aanbevelingen toe als functies: vraag uw editors welke factoren van invloed zijn op hun keuzes en kijk of u deze kunt toevoegen als functies in uw context en actie. Editors in een mediabedrijf kunnen bijvoorbeeld inhoud markeren wanneer een bepaalde beroemdheid vaak in het nieuws is: Deze kennis kan worden toegevoegd als een contextfunctie.

Factoren die de leerlingmodus verbeteren en versnellen

Als de leerlingmodus leert en een overeenkomende prestatie boven nul bereikt, maar de prestaties langzaam verbeteren (niet binnen twee weken tot 60% overeenkomende beloningen krijgen), is het mogelijk dat er te weinig gegevens naar Personalizer worden verzonden. Met de volgende stappen kunt u sneller leren:

  1. Verschillende functies toevoegen: u kunt een visuele inspectie van de acties uitvoeren in een Rank-aanroep en de bijbehorende functies. Heeft de basislijnactie functies die zijn onderscheiden van andere acties? Als ze er voornamelijk hetzelfde uitzien, voegt u meer functies toe waarmee de diversiteit van de functiewaarden wordt verhoogd.
  2. Acties per gebeurtenis verminderen: Personalizer gebruikt de instelling %of Rank-aanroepen die moeten worden gebruikt voor verkenning om voorkeuren en trends te ontdekken. Wanneer een Rank-aanroep meer acties heeft, wordt de kans op een bepaalde actie die wordt gekozen voor verkenning lager. Het verminderen van het aantal acties dat wordt verzonden in elke Rank-aanroep naar een kleiner getal (minder dan 10) kan een tijdelijke aanpassing zijn die kan aangeven of de leerlingmodus voldoende gegevens heeft om te leren.

Apprentice-modus gebruiken om te trainen met historische gegevens

Als u een aanzienlijke hoeveelheid historische gegevens hebt die u wilt gebruiken om Personalizer te trainen, kunt u de modus Apprentice gebruiken om de gegevens opnieuw af te spelen via Personalizer.

Stel de Personalizer in de Apprentice-modus in en maak een script dat Rank aanroept met de acties en contextfuncties van de historische gegevens. Roep de Reward-API aan op basis van uw berekeningen van de records in deze gegevens. Mogelijk hebt u ongeveer 50.000 historische gebeurtenissen nodig om Personalizer een overeenkomst van 60-80% te laten bereiken met de basislijnlogica van uw toepassing. U kunt mogelijk bevredigende resultaten bereiken met minder of meer gebeurtenissen.

Bij het trainen van historische gegevens wordt aanbevolen dat de gegevens die worden verzonden in [functies voor context en acties, hun indeling in de JSON die wordt gebruikt voor Rank-aanvragen en de berekening van beloning in deze trainingsgegevensset] overeenkomen met de gegevens [functies en berekening van beloning] die beschikbaar zijn in uw bestaande toepassing.

Offline- en historische gegevens zijn meestal onvollediger en lawaaierig en kunnen verschillen in indeling van uw scenario in productie (of online). Hoewel training van historische gegevens mogelijk is, zijn de resultaten hiervan mogelijk niet overtuigend en zijn ze niet noodzakelijkerwijs een goede voorspelling van hoe goed Personalizer in de onlinemodus leert, met name als de functies verschillen tussen de historische gegevens en het huidige scenario.

Apprentice-modus versus A/B-tests gebruiken

Het is alleen nuttig om A/B-tests van Personalizer-behandelingen uit te voeren zodra deze is gevalideerd en leert in de onlinemodus, omdat in de modus Leerlinggebruik alleen de basislijnactie wordt gebruikt en de bestaande logica wordt geleerd. Dit betekent in wezen dat Personalizer de actie van de 'controlearm' van uw A/B-test retourneert, waardoor een A/B-test in de apprentice-modus geen waarde heeft.

Zodra u een use-case hebt met Personalizer en online leren, kunt u met A/B-experimenten gecontroleerde cohorten maken en vergelijkingen uitvoeren van resultaten die complexer kunnen zijn dan de signalen die worden gebruikt voor beloningen. Een voorbeeld van een vraag die een A/B-test kan beantwoorden, is: "In een retailwebsite optimaliseert Personalizer een indeling en krijgt meer gebruikers die eerder moeten uitchecken , maar vermindert dit de totale omzet per transactie?"

Volgende stappen