Usare la modalità Apprendista per eseguire il training di Personalizer senza influire sull'applicazione già esistente

Importante

A partire dal 20 settembre 2023 non sarà possibile creare nuove risorse Personalizer. Il servizio Personalizer sarà ritirato il 1° ottobre 2026. È consigliabile eseguire la migrazione all'open-source microsoft/learning-loop.

Quando si distribuisce una nuova risorsa Personalizer, viene inizializzata con un modello non addestrato o vuoto. Ciò significa che non ha imparato da alcun dato e quindi non riuscirà bene in pratica. Questo problema è noto come "avvio a freddo" e viene risolto nel tempo eseguendo il training del modello con dati reali dall'ambiente di produzione. La modalità apprendista è un comportamento di apprendimento che consente di attenuare il problema di "avvio a freddo" e consente di acquisire fiducia nel modello prima di prendere decisioni nell'ambiente di produzione, senza richiedere alcuna modifica del codice.

Che cos'è la modalità apprendista?

Analogamente a come un apprendista può imparare un mestiere osservando un esperto, la modalità apprendista consente a Personalizza esperienze di apprendere osservando le decisioni prese dalla logica corrente dell'applicazione. Il modello Personalizer viene addestrato imitando lo stesso output decisionale dell'applicazione. Con ogni chiamata all'API Rank, Personalizer può apprendere senza influire sulla logica e sui risultati attuali. Le metriche, disponibili nel portale di Azure e nell'API, consentono di comprendere le prestazioni apprese dal modello. In particolare, quanto bene Personalize si abbina alla tua logica esistente (nota anche come politica di riferimento).

Una volta che Personalizer è in grado di assomigliare ragionevolmente alla logica esistente nel 60-80% delle volte, è possibile modificare il comportamento dalla modalità Apprentice alla modalità Online. In quel momento, Personalizer restituisce le migliori azioni nell'API di classificazione come determinato dal modello sottostante e può imparare ad adottare decisioni migliori rispetto alla politica di riferimento.

Perché usare la modalità Apprendista?

La modalità apprendista consente al modello di simulare la logica decisionale esistente prima di prendere decisioni online usate dall'applicazione. Ciò consente di attenuare il problema di avvio a freddo menzionato in precedenza e offre maggiore fiducia nel servizio Personalizza esperienze e garantisce che i dati inviati a Personalizza esperienze siano utili per il training del modello. Questa operazione viene eseguita senza rischiare o influire sul traffico online e sulle esperienze dei clienti.

I due motivi principali per usare la modalità Apprendista sono:

  • Mitigazione degli avvii a freddo: la modalità Apprendista consente di ridurre il costo di addestramento di un modello "nuovo" nell'ambiente di produzione senza la necessità di prendere decisioni non informate. Il modello apprende come simulare la logica dell'applicazione esistente.
  • Convalida delle funzionalità di azione e contesto: le funzionalità di contesto e azione possono essere inadeguate, imprecise o non ottimizzate. Se ci sono troppe, troppo poche, errate, rumorose o in formato non valido funzionalità, Personalize avrà difficoltà a eseguire il training di un modello ben performante. L'esecuzione di una valutazione delle funzionalità in Modalità Apprendista consente di scoprire quanto efficaci siano le funzionalità per l'addestramento di Personalizer e di identificare le aree che possono migliorare la qualità delle funzionalità.

Quando è consigliabile usare la modalità Apprendista?

Usare la modalità Apprendista per eseguire il training di Personalizer per migliorarne l'efficacia tramite gli scenari seguenti, senza alterare l'esperienza degli utenti da parte di Personalizer:

  • Stai implementando Personalizer in un nuovo scenario.
  • Sono state apportate modifiche importanti alle funzionalità contesto o azione.

Tuttavia, la modalità Apprendista non è un modo efficace per misurare l'impatto che il Personalizer può avere per migliorare il valore medio della ricompensa o gli indicatori di prestazione chiave (KPI) aziendali. Può solo valutare quanto bene il servizio sta imparando la tua logica esistente in base ai dati correnti che stai fornendo. Per valutare l'efficacia di Personalizer nella scelta dell'azione migliore possibile per ogni chiamata di classificazione rank, Personalizer deve essere in modalità Online, oppure è possibile utilizzare le valutazioni offline su un periodo di tempo in cui Personalizer era in modalità Online.

Chi deve usare la modalità Apprendista?

La modalità apprendista è utile per sviluppatori, data scientist e decision maker aziendali:

  • Gli sviluppatori possono usare la modalità Apprendista per assicurarsi che le API Classificazione e Ricompensa siano implementate correttamente nell'applicazione e che le funzionalità inviate a Personalizza esperienze siano libere da errori e errori comuni. Altre informazioni sulla creazione di buone funzionalità di contesto e azione.

  • Data scientist possono usare la modalità Apprendista per verificare che le caratteristiche siano efficaci per il training dei modelli di Personalizer. Cioè, le funzionalità contengono informazioni utili che consentono a Personalizer di imparare la logica decisionale esistente.

  • I decisori aziendali possono usare la modalità Apprendista per valutare il potenziale di Personalizer di migliorare i risultati (ovvero, premi) rispetto alla logica aziendale esistente. In particolare, se Personalizer può apprendere dai dati forniti prima di passare alla modalità online. Ciò consente loro di prendere una decisione informata sull'impatto sull'esperienza utente, in cui sono in gioco ricavi reali e soddisfazione degli utenti.

Confronto dei comportamenti - Modalità apprendista e modalità online

Imparare quando in Modalità Apprendista differisce dalla Modalità Online nei seguenti modi.

Zona Modalità apprendista Modalità online
Impatto sull'esperienza utente L'esperienza degli utenti e le metriche aziendali non cambieranno. Personalizer viene addestrato osservando le azioni di base della logica dell'applicazione corrente, senza influire su esse. L'esperienza degli utenti può cambiare quando la decisione viene presa da Personalizer e non dall'azione di base.
Velocità di apprendimento Personalizer apprenderà più lentamente quando si usa la modalità Apprendista rispetto all'apprendimento in modalità Online. La modalità apprendista può imparare solo osservando le ricompense ottenute dalla tua azione predefinita senza esplorazione, il che limita quanto Personalizer può apprendere. Apprende più velocemente perché può sfruttare l'azione migliore dal modello corrente ed esplorare altre azioni per ottenere risultati potenzialmente migliori.
Efficacia dell'apprendimento "Soglia" Personalizer può solo approssimarsi e non superare mai le prestazioni della logica corrente dell'applicazione (il totale della ricompensa media ottenuta dall'azione di base). È improbabile che Personalizer raggiunga una corrispondenza del 100% con la logica dell'applicazione corrente; si consiglia di passare alla modalità Online una volta raggiunta una corrispondenza del 60%-80%. Personalizer dovrebbe superare le prestazioni della logica di base dell'applicazione. Se le prestazioni di Personalizer si bloccano nel tempo, è possibile eseguire la valutazione offline e la valutazione delle funzionalità per perseguire miglioramenti aggiuntivi.
Valore restituito dell'API di classificazione per rewardActionId RewardActionId sarà sempre l'ID dell'azione predefinita. Cioè, l'azione che invii come prima azione nella richiesta JSON dell'API di classificazione. In altre parole, l'API Rank non è visibile per l'applicazione durante la modalità Apprendista. rewardActionId sarà uno degli ID forniti nella chiamata Rank API come determinato dal modello Personalizer.
Valutazioni Personalizer tiene un confronto dei totali di ricompensa ricevuti dalla tua logica applicativa corrente e dei totali di ricompensa che Personalizer riceverebbe se fosse in modalità online a quel punto. Questo confronto è disponibile nel pannello Monitor della risorsa Personalizer nel portale di Azure. Valutare l'efficacia di Personalizza esperienze eseguendo valutazioni offline, che consentono di confrontare le ricompense totali ottenute da Personalizza esperienze rispetto alle potenziali ricompense della baseline dell'applicazione.

Si noti che è improbabile che il Personalizer ottenga una corrispondenza delle prestazioni al 100% con la logica basilare dell'applicazione e non la supererà mai. Le prestazioni corrispondenti al 60%-80% dovrebbero essere sufficienti per passare alla modalità Online di Personalizer, in cui Personalizer può imparare decisioni migliori e superare le prestazioni della logica di base dell'applicazione.

Limitazioni della modalità apprendista

La modalità apprendista esegue il training del modello Personalizer tentando di imitare la logica di base dell'applicazione esistente, usando le caratteristiche di Contesto e Azione presenti nelle chiamate Rank. I fattori seguenti influiscono sulla capacità dell'apprendista di imparare.

Scenari in cui la modalità apprendista potrebbe non essere appropriata:

Contenuto scelto in modo editoriale:

In alcuni scenari, ad esempio notizie o intrattenimento, l'elemento di base potrebbe essere assegnato manualmente da un team editoriale. Ciò significa che gli esseri umani usano la loro conoscenza del mondo in generale e la comprensione di ciò che può costituire contenuto interessante, per scegliere articoli specifici o media da un insieme e contrassegnarli come articoli "preferiti" o "principali". Poiché questi editor non sono un algoritmo e i fattori considerati dagli editor possono essere soggettivi e possibilmente non correlati alle funzionalità contesto o azione. In questo caso, la modalità apprendista potrebbe avere difficoltà a prevedere l'azione di base. In queste situazioni è possibile:

  • Testare Personalizza esperienze in modalità online: provare a inserire Personalizza esperienze in modalità online per tempo o in un test A/B se si dispone dell'infrastruttura e quindi eseguire una valutazione offline per valutare la differenza tra la logica di base dell'applicazione e Personalizza esperienze.
  • Aggiungere considerazioni e consigli editoriali come funzionalità: chiedere agli editor quali fattori influenzano le proprie scelte e verificare se è possibile aggiungerli come funzionalità nel contesto e nell'azione. Ad esempio, gli editor di un'azienda multimediale possono evidenziare il contenuto quando una certa celebrità è spesso presente nelle notizie: questa conoscenza potrebbe essere aggiunta come funzionalità contesto.

Fattori che miglioreranno e accelerano la modalità apprendista

Se la modalità apprendimento sta imparando e ottenendo prestazioni corrispondenti al di sopra dello zero, ma le prestazioni migliorano lentamente (non arrivano al 60% al 80% delle ricompense corrispondenti entro due settimane), è possibile che ci siano troppo pochi dati inviati a Personalizer. I passaggi seguenti possono facilitare l'apprendimento più rapido:

  1. Aggiunta di funzionalità di differenziazione: è possibile eseguire un'ispezione visiva delle azioni in una chiamata di classificazione e le relative funzionalità. L'azione di base dispone di funzionalità che sono differenziate da altre azioni? Se sembrano per lo più uguali, aggiungere altre funzionalità che aumenteranno la diversità dei valori delle funzionalità.
  2. Riduzione delle azioni per evento: il Personalizer userà l'impostazione "% delle chiamate di classificazione da usare per l'esplorazione" per individuare preferenze e tendenze. Quando una chiamata di rango ha più azioni, la possibilità di scegliere un'azione specifica per l'esplorazione diventa inferiore. La riduzione del numero di azioni inviate in ogni chiamata rank a un numero minore (inferiore a 10) può essere una modifica temporanea che può indicare se la modalità apprendista ha dati sufficienti per imparare.

Uso della modalità Apprendista per eseguire il training con dati cronologici

Se si dispone di una quantità significativa di dati cronologici da usare per eseguire il training di Personalizza esperienze, è possibile usare la modalità Apprendista per riprodurre i dati tramite Personalizza esperienze.

Configurare Personalizer in modalità apprendista e creare uno script che invoca Rank con le azioni e le caratteristiche di contesto dai dati storici. Chiamare l'API Reward in base ai calcoli dei record in questi dati. Potrebbero essere necessari circa 50.000 eventi cronologici per vedere Personalizer raggiungere una corrispondenza del 60-80% con la logica di base dell'applicazione. È possibile ottenere risultati soddisfacenti con meno o più eventi.

Quando si esegue il training dai dati cronologici, è consigliabile che i dati inviati in [funzionalità per il contesto e le azioni, il layout nel codice JSON usato per le richieste di classificazione e il calcolo della ricompensa in questo set di dati di training], corrispondano ai dati [funzionalità e calcolo della ricompensa] disponibili nell'applicazione esistente.

I dati offline e cronologici tendono a essere più incompleti e più rumorosi e possono differire dal formato in produzione (o online). Anche se il training dai dati cronologici è possibile, i risultati di questa operazione possono essere inconcludenti e non sono necessariamente un buon indicatore di quanto Personalizer imparerà in modalità Online, soprattutto se le funzionalità variano tra i dati cronologici e lo scenario corrente.

Uso della modalità apprendista rispetto ai test A/B

È utile eseguire test A/B dei trattamenti del Personalizer solo dopo che è stato convalidato e sta apprendendo in modalità Online, poiché in modalità Apprendista viene utilizzata solo l'azione di base e si apprende la logica esistente. Ciò significa essenzialmente che Personalizer restituisce l'azione del braccio "controllo" del tuo test A/B, e quindi un test A/B in modalità Apprendista non ha alcun valore.

Una volta ottenuto un caso d'uso usando Personalizer e apprendimento online, gli esperimenti A/B possono consentire di creare gruppi controllati e condurre confronti di risultati che possono essere più complessi rispetto ai segnali usati per le ricompense. Una domanda di esempio alla quale un test A/B può rispondere è: "In un sito Web di vendita al dettaglio, Personalizer ottimizza un layout e fa sì che più utenti completino il checkout in precedenza, ma questo riduce i ricavi totali per transazione?"

Passaggi successivi