Guida per nuovi Natural Language di AutoML Natural Language

Introduzione

Immagina che la tua attività abbia un modulo di contatto sul suo sito web. Ogni giorno ricevi molti messaggi dal modulo, molti dei quali sono utili in qualche modo, ma tutti interagiscono tra loro ed è facile rimanere indietro con la gestione dei messaggi, perché diversi dipendenti gestiscono tipi diversi di messaggi. Sarebbe fantastico se un sistema automatico potesse classificarli in modo che la persona giusta veda i commenti giusti.

Immagini categorizzate

Hai bisogno di un sistema per esaminare i commenti e decidere se rappresentare reclami, elogiare per un servizio passato, un tentativo di saperne di più sulla tua attività, fissare un appuntamento o stabilire una relazione.

Perché il machine learning (ML) è lo strumento giusto per questo problema?

La programmazione classica richiede al programmatore di specificare istruzioni dettagliate che il computer possa seguire. Ma questo approccio diventa rapidamente inattuabile. I commenti dei clienti utilizzano un vocabolario e una struttura ampi e diversificati, troppo vari per essere acquisiti da un semplice insieme di regole. Se provavi a creare filtri manuali, non hai mai potuto suddividere la maggior parte dei commenti dei clienti. Hai bisogno di un sistema che possa generalizzare una grande varietà di commenti. In uno scenario in cui è prevista l'espansione esponenziale di una sequenza di regole specifiche, è necessario un sistema in grado di apprendere dagli esempi. Fortunatamente, i sistemi di machine learning sono ben posizionati per risolvere questo problema.

L'API Cloud Natural Language o AutoML Natural Language sono lo strumento giusto per me?

L'API Natural Language rileva la sintassi, le entità e il sentiment nel testo e classifica il testo in un insieme predefinito di categorie. Se il testo è costituito da articoli di notizie o da altri contenuti da classificare o se vuoi scoprire il sentiment dei tuoi esempi, vale la pena provare l'API Natural Language. Tuttavia, se gli esempi di testo non si adattano perfettamente allo schema di classificazione basato sul sentiment o sul verticale disponibile nell'API Natural Language e vuoi utilizzare le tue etichette, vale la pena sperimentare con un classificatore personalizzato per vedere se soddisfa le tue esigenze.

Confronta l'API Natural Language con AutoML Natural Language

Prova l'API Natural Language Inizia a utilizzare AutoML

Cosa comporta il machine learning in AutoML Natural Language?

Il machine learning prevede l'utilizzo dei dati per addestrare gli algoritmi in modo da raggiungere il risultato auspicato. Le specifiche dell'algoritmo e i metodi di addestramento cambiano in base al caso d'uso. Esistono diverse sottocategorie di machine learning, che sono tutte risolvibili da problemi diversi e funzionano con vincoli diversi. AutoML Natural Language ti consente di eseguire l'apprendimento supervisionato, che prevede l'addestramento di un computer al riconoscimento di pattern da dati etichettati. Con l'apprendimento supervisionato, puoi addestrare un modello personalizzato in modo che riconosca i contenuti che ti interessano nel testo.

Preparazione dei dati

Per addestrare un modello personalizzato con AutoML Natural Language, fornisci esempi etichettati dei tipi di elementi di testo (input) che vuoi classificare e delle categorie o delle etichette (la risposta) che il sistema ML deve prevedere.

Valuta il tuo caso d'uso

Quando completi il set di dati, inizia sempre con il caso d'uso. Puoi iniziare con le seguenti domande:

  • Quale obiettivo vuoi raggiungere?
  • Quali tipi di categorie devi identificare per ottenere questo risultato?
  • Le persone possono riconoscere queste categorie? AutoML Natural Language può gestire più categorie di quelle che le persone possono ricordare e assegnare in qualsiasi momento, ma se una persona non è in grado di riconoscere una categoria specifica, anche AutoML Natural Language avrà delle difficoltà.
  • Quali tipi di esempi potrebbero rispecchiare meglio il tipo e l'intervallo di dati classificati dal tuo sistema?

Uno dei principi alla base di tutti i prodotti di machine learning di Google è il machine learning incentrato sulle persone, un approccio che mette in primo piano le pratiche dell'AI responsabili, inclusa l'equità. L'obiettivo dell'equità nel machine learning è comprendere e prevenire un trattamento ingiusto o pregiudiziale delle persone in relazione a gruppo etnico, reddito, orientamento sessuale, religione, genere e altre caratteristiche storicamente associate a discriminazione ed emarginazione, quando e dove si manifestano in sistemi algoritmici o favoriti da processi decisionali. Per saperne di più, consulta la guida al machine learning inclusivo e cerca le note "fair-aware" di nelle linee guida riportate di seguito. Man mano che segui le linee guida per mettere insieme il tuo set di dati, ti invitiamo a prendere in considerazione l'equità nel machine learning se pertinente al tuo caso d'uso.

Origine dati

Dopo aver stabilito quali dati ti serviranno, dovrai trovare un modo per ricavarli. Puoi iniziare prendendo in considerazione tutti i dati raccolti dalla tua organizzazione. Potresti aver già raccolto i dati necessari per l'addestramento di un modello. Se non disponi dei dati necessari, puoi recuperarli manualmente o esternali a un fornitore di terze parti.

Includi un numero sufficiente di esempi etichettati in ogni categoria

Il minimo minimo richiesto da AutoML Natural Language per l'addestramento è di 10 esempi di testo per categoria/etichetta. La probabilità di riconoscere correttamente un'etichetta aumenta il numero di esempi di alta qualità per ciascuna. In generale, più dati etichettati puoi portare al processo di addestramento, migliore sarà il modello. Il numero di campioni necessari varia anche in base al grado di coerenza dei dati da prevedere e al livello di precisione del target. Puoi utilizzare meno esempi per set di dati coerenti o per ottenere una precisione dell'80% anziché del 97%. Addestra un modello utilizzando 50 esempi per etichetta e valuta i risultati. Aggiungi altri esempi e ripeti l'addestramento fino a raggiungere i tuoi obiettivi di precisione, il che potrebbe richiedere centinaia o addirittura migliaia di esempi per etichetta.

Distribuisci gli esempi in modo uniforme tra le categorie

È importante acquisire un numero approssimativo di esempi di addestramento per ogni categoria. Anche se disponi di un'abbondanza di dati per un'etichetta, è meglio avere una distribuzione uniforme per ogni etichetta. Per capire il motivo, immagina che l'80% dei commenti dei clienti che utilizzi per creare il tuo modello rappresenti una stima delle richieste. Con una distribuzione non bilanciata delle etichette, è molto probabile che il tuo modello apprenderà che è sempre sicuro dirti che il commento di un cliente è una richiesta di stima, invece di cercare di prevedere un'etichetta molto meno comune. È come scrivere un test a scelta multipla in cui la maggior parte delle risposte corrette è:

Potrebbe non essere sempre possibile generare un numero approssimativamente uguale di esempi per ogni etichetta. Per alcune categorie, potrebbe essere più difficile reperire esempi di alta qualità e imparziali. In questi casi, l'etichetta con il numero più basso di esempi dovrebbe avere almeno il 10% degli esempi come etichetta con il numero più alto di esempi. Pertanto, se l'etichetta più grande contiene 10.000 esempi, l'etichetta più piccola dovrebbe contenere almeno 1000 esempi.

Acquisisci la variante nello spazio del problema

Per motivi simili, prova a fare in modo che i dati acquisiscano la varietà e la diversità del tuo spazio problematico. Quando fornisci un insieme più ampio di esempi, il modello è in grado di generalizzare meglio ai nuovi dati. Supponiamo che tu stia cercando di classificare gli argomenti relativi all'elettronica di consumo in argomenti. Più nomi brand e specifiche tecniche vengono forniti, più facile sarà per il modello comprendere l'argomento di un articolo, anche se tale articolo riguarda un brand che non è stato incluso nel set di formazione. Puoi anche prendere in considerazione l'inclusione di un'etichetta "none_of_the_sopra" per i documenti che non corrispondono a nessuna delle etichette definite per migliorare ulteriormente le prestazioni del modello.

Associa i dati all'output previsto per il tuo modello

Testi e output

Trova esempi di testo simili a quelli su cui prevedi di fare previsioni. Se stai cercando di classificare i post sui social media in merito al soffiaggio del vetro, probabilmente non avrai ottenuto ottimi risultati da un modello addestrato su siti web di informazione sulla soffiatura del vetro, poiché il vocabolario e lo stile potrebbero essere molto diversi. Idealmente, i tuoi esempi di addestramento sono dati reali ricavati dallo stesso set di dati che hai intenzione di utilizzare per classificare il modello.

Prendi in considerazione in che modo AutoML Natural Language utilizza il tuo set di dati per la creazione di un modello personalizzato

Il set di dati contiene set di addestramento, convalida e test. Se non specifichi le suddivisioni come spiegato in Prepara i tuoi dati, AutoML Natural Language utilizza automaticamente l'80% dei tuoi documenti di contenuti per l'addestramento, il 10% per la convalida e il 10% per i test.

Set di addestramento, convalida e test

Set di addestramento

La maggior parte dei dati deve rientrare nel set di addestramento. Questi sono i dati "vedi" durante l'addestramento: sono utilizzati per apprendere i parametri del modello, ovvero i pesi delle connessioni tra i nodi della rete neurale.

Set di convalida

Il set di convalida, a volte chiamato anche "set" di sviluppo, viene utilizzato anche durante il processo di addestramento. Dopo che il framework di apprendimento dei modelli incorpora i dati di addestramento durante ogni iterazione del processo di addestramento, utilizza le prestazioni del modello nella convalida impostata per ottimizzare gli iperparametri di tale modello, che sono variabili che specificano la struttura del modello. Se hai provato a utilizzare il set di addestramento per ottimizzare gli iperparametri, è probabile che il modello finisca per concentrarsi sui dati di addestramento e hai difficoltà a generalizzare gli esempi che non corrispondono esattamente. L'utilizzo di un set di dati innovativo per ottimizzare la struttura del modello significa che il tuo modello sarà più generico.

Set di test

Il set di test non è coinvolto nel processo di formazione. Una volta completato l'addestramento del modello, AutoML Natural Language utilizza il set di test come sfida per il modello. Le prestazioni del modello sul set di test hanno lo scopo di farti un'idea delle prestazioni del modello sui dati reali.

Suddivisione manuale

Puoi suddividere il tuo set di dati in autonomia. La suddivisione manuale dei dati ti consente di esercitare un controllo maggiore sulla procedura o se esistono esempi specifici che vuoi includere in una determinata parte del ciclo di vita dell'addestramento del modello.

 

prepara i dati per l'importazione

Dopo aver deciso se una suddivisione manuale o automatica dei dati è adatta alle tue esigenze, puoi aggiungere dati in AutoML Natural Language in tre modi:

  • Puoi importare i dati con gli esempi di testo ordinati e archiviati in cartelle corrispondenti alle tue etichette.
  • Puoi importare i dati dal tuo computer o da Cloud Storage in formato CSV con le etichette incorporate, come specificato in Preparare i dati di addestramento. Se vuoi suddividere manualmente il set di dati, devi scegliere questa opzione e formattare il file CSV di conseguenza.
  • Se i tuoi dati non sono stati etichettati, puoi caricare esempi di testo senza etichetta e utilizzare l'interfaccia utente di AutoML Natural Language per applicare etichette a ciascuno di essi.

Valuta

Dopo aver addestrato il modello, riceverai un riepilogo delle sue prestazioni. Per visualizzare un'analisi dettagliata, fai clic su Valuta o visualizza la valutazione completa.

Cosa devo tenere a mente prima di valutare il mio modello?

Il debug di un modello è più importante del debug dei dati che del modello stesso. Se il modello inizia ad agire in modo inaspettato mentre valuti le sue prestazioni prima e dopo il push alla produzione, dovresti tornare e controllare i dati per individuare eventuali miglioramenti.

Che tipo di analisi posso eseguire in AutoML Natural Language?

Nella sezione di valutazione di AutoML Natural Language, puoi valutare le prestazioni del tuo modello personalizzato utilizzando l'output del modello su esempi di test e metriche comuni di machine learning. Questa sezione tratta i seguenti concetti:

  • L'output del modello
  • La soglia di punteggio
  • Veri positivi, falsi negativi, falsi positivi e falsi negativi
  • Precisione e richiamo
  • Curve di precisione/richiamo
  • Precisione media

Come devo interpretare l'output del modello?

AutoML Natural Language estrae esempi dai tuoi dati di test per presentare nuove sfide per il tuo modello. Per ogni esempio, il modello restituisce una serie di numeri che indicano in che misura associa ogni etichetta all'esempio. Se il numero è elevato, il modello ha un'elevata probabilità che l'etichetta deve essere applicata al documento.

Qual è la soglia del punteggio?

La soglia di punteggio consente ad AutoML Natural Language di convertire le probabilità in valori binari &on39;off'off'. La soglia di punteggio si riferisce al livello di confidenza che il modello deve assegnare a una categoria di elemento di test. Il dispositivo di scorrimento della soglia del punteggio nell'interfaccia utente è uno strumento visivo per testare l'impatto delle diverse soglie nel tuo set di dati. Nell'esempio riportato sopra, se impostiamo la soglia di punteggio su 0,8 per tutte le categorie, verrà assegnata l'opzione "Ottimo servizio" e "Suggerimento", ma non "Richiesta di informazioni". Se la soglia di punteggio è bassa, il modello classifica più elementi di testo, ma corre il rischio di classificare in modo errato più elementi di testo durante il processo. Se la soglia di punteggio è alta, il modello classifica meno elementi di testo, ma avrà un rischio minore di classificare in modo errato gli elementi di testo. Puoi modificare le soglie per categoria nella UI per sperimentare. Tuttavia, quando utilizzi il modello in produzione, devi applicare le soglie che hai trovato ottimali.

Soglie di affidabilità

Che cosa sono i veri positivi, i falsi negativi, i falsi positivi, i falsi negativi?

Dopo aver applicato la soglia di punteggio, le previsioni effettuate dal tuo modello rientrano in una delle seguenti quattro categorie.

Descrizioni delle categorie di confidenza

Puoi utilizzare queste categorie per calcolare precisione e richiamo, ovvero metriche che ti consentono di valutare l'efficacia del modello.

Che cosa sono la precisione e il richiamo?

La precisione e il richiamo ci aiutano a capire fino a che punto il nostro modello stia acquisendo informazioni e quanto è trascurata. La precisione ci rivela, tra tutti gli esempi di test a cui è stata assegnata un'etichetta, quanti avrebbero dovuto essere classificati con tale etichetta. Il richiamo ci dice, da tutti gli esempi di test che avrebbero dovuto essere assegnate l'etichetta, quanti sono stati effettivamente assegnati.

Devo ottimizzare la precisione o il richiamo?

A seconda del caso d'uso, puoi ottimizzare la precisione o il richiamo. Esaminiamo ora come potresti affrontare questa decisione con i due casi d'uso riportati di seguito.

Caso d'uso: documenti urgenti

Supponiamo che tu voglia creare un sistema in grado di dare priorità ai documenti urgenti rispetto a quelli che non lo sono.

Un falso positivo in questo caso sarebbe un documento non urgente, ma viene contrassegnato come tale. L'utente può ignorarli come non urgenti e andare avanti.

Un falso negativo in questo caso potrebbe essere un documento urgente, ma il sistema non riesce a contrassegnarlo come tale. Questo potrebbe causare problemi.

In questo caso, ti conviene ottimizzare per il recall. Questa metrica misura, per tutte le previsioni effettuate, quanto è stato omesso. È probabile che un modello a richiamo elevato contrassegni le etichette marginalmente pertinenti, utile per i casi in cui la tua categoria abbia pochi dati di addestramento.

Caso d'uso: filtro antispam

Supponiamo di voler creare un sistema che filtri automaticamente i messaggi email spam provenienti da messaggi non spam.

Un falso negativo in questo caso potrebbe essere un'email di spam che non viene intercettata e che vedi di vedere nella tua posta in arrivo. Di solito è un po' fastidioso.

Un falso positivo in questo caso potrebbe essere un'email che viene falsamente contrassegnata come spam e che viene rimossa dalla Posta in arrivo. Se l'email era importante, l'utente potrebbe essere interessato.

In questo caso, ti consigliamo di eseguire l'ottimizzazione per ottenere la precisione. Questa metrica misura la correttezza di tutte le previsioni effettuate. È probabile che un modello ad alta precisione etichetta solo gli esempi più pertinenti, utile per i casi in cui la categoria è comune nei dati di addestramento.

Come si usa la matrice di confusione?

Possiamo confrontare il rendimento del modello in ogni etichetta utilizzando una matrice di confusione. In un modello ideale, tutti i valori in diagonale saranno alti, mentre tutti gli altri valori saranno bassi. Ciò indica che le categorie desiderate sono state identificate correttamente. Se altri valori sono elevati, questo ci dà un indizio sul modo in cui il modello definisce in modo errato gli elementi di test.

Matrice di confusione

Come devo interpretare le curve di precisione-richiamo?

Curve di precisione-richiamo

Lo strumento Soglia di punteggio ti consente di esplorare in che modo la soglia del punteggio scelta influisce sulla precisione e sul richiamo. Quando trascini il dispositivo di scorrimento sulla barra della soglia del punteggio, puoi vedere dove si trova la soglia nella compromesso di precisione-richiamo, nonché come tale soglia influisce singolarmente su precisione e richiamo (per i modelli multiclasse, su questi grafici, precisione e richiamo significano che l'unica etichetta utilizzata per calcolare le metriche di precisione e richiamo è l'etichetta con il punteggio più alto nell'insieme di etichette che riceviamo). Questo può aiutarti a trovare un buon equilibrio tra i falsi positivi e i falsi negativi.

Dopo aver scelto una soglia che sembra accettabile per il tuo modello nel suo complesso, puoi fare clic sulle singole etichette e vedere dove tale soglia rientra nella loro curva di precisione-richiamo per etichetta. In alcuni casi, potrebbe significare che molte previsioni non sono corrette per alcune etichette, aiutandoti a scegliere una soglia per classe personalizzata per tali etichette. Ad esempio, supponiamo che tu esamina il set di dati dei commenti dei clienti e noti che una soglia di 0,5 ha una precisione e un richiamo ragionevoli per ogni tipo di commento tranne "Suggerimento", forse perché è una categoria molto generale. Per questa categoria vengono visualizzati moltissimi falsi positivi. In questo caso, puoi decidere di utilizzare una soglia di 0,8 solo per "Suggerimenti" quando chiami la categoria di classificazione per le previsioni.

Che cos'è la precisione media?

Una metrica utile per l'accuratezza del modello è l'area sotto la curva di precisione-richiamo. Misura il rendimento del modello in tutte le soglie di punteggio. In AutoML Natural Language, questa metrica è chiamata Precisione media. Più vicino è a 1,0, migliore sarà il rendimento del modello sul set di test; un modello casuale per ogni etichetta otterrà una precisione media intorno a 0,5.

Test del modello

AutoML Natural Language utilizza il 10% dei dati automaticamente (o, se scegli personalmente la suddivisione dei dati, qualsiasi percentuale tu abbia deciso di utilizzare) per testare il modello, mentre la pagina"Valuta"valuta le prestazioni del modello su tali dati di test. Tuttavia, se vuoi controllare attentamente il tuo modello, ci sono vari modi per farlo. Il modo più semplice è inserire esempi di testo nella casella di testo nella pagina "Previsione" e osservare le etichette scelte dal modello per i tuoi esempi. Ci auguriamo che questo corrisponda alle tue aspettative. Prova alcuni esempi di ogni tipo di commento che vuoi ricevere.

Se vuoi utilizzare il tuo modello nei tuoi test automatici, la pagina "Previsione" indica come effettuare chiamate al modello in modo programmatico.