Passaggio 2.5: scegli un modello

A questo punto, abbiamo assemblato il nostro set di dati e acquisito informazioni sulle caratteristiche principali dei nostri dati. In base alle metriche raccolte nel Passaggio 2, decidiamo quale modello di classificazione dovremmo utilizzare. Ciò significa porre domande come "Come presentiamo i dati di testo a un algoritmo che prevede un input numerico?" (una cosiddetta "pre-elaborazione dei dati" e "vettorazione") o "Che tipo di modello dovremmo utilizzare?", "Quali parametri di configurazione dovremmo utilizzare per il modello?".

Grazie a decenni di ricerche, abbiamo accesso a una vasta gamma di opzioni di pre-elaborazione dei dati e configurazione del modello. Tuttavia, la disponibilità di un'ampia gamma di opzioni valide tra cui scegliere aumenta notevolmente la complessità e la portata del problema in questione. Considerato che le opzioni migliori potrebbero non essere ovvie, una soluzione naif sarebbe provare tutte le possibili opzioni in modo esaustivo, perfezionando alcune scelte tramite l'intuizione. Tuttavia, ciò sarebbe enormemente costoso.

In questa guida, cerchiamo di semplificare notevolmente il processo di selezione di un modello di classificazione del testo. Per un determinato set di dati, il nostro obiettivo è trovare l'algoritmo che raggiunge quasi la massima precisione e ridurre al minimo i tempi di calcolo necessari per l'addestramento. Abbiamo eseguito un numero elevato (~450.000) di esperimenti su problemi di diversi tipi (soprattutto analisi del sentiment e problemi di classificazione degli argomenti), utilizzando 12 set di dati, alternando per ogni set di dati tra diverse tecniche di pre-elaborazione dei dati e diverse architetture di modelli. Questo ci ha aiutato a identificare i parametri del set di dati che influenzano le scelte ottimali.

L'algoritmo e il diagramma di flusso per la selezione dei modelli riportati di seguito rappresentano un riepilogo della nostra sperimentazione. Non ti preoccupare se non hai ancora compreso tutti i termini utilizzati. Le sezioni successive di questa guida le spiegano in dettaglio.

Algoritmo per la preparazione dei dati e la creazione di modelli

1. Calculate the number of samples/number of words per sample ratio.
2. If this ratio is less than 1500, tokenize the text as n-grams and use a
simple multi-layer perceptron (MLP) model to classify them (left branch in the
flowchart below):
  a. Split the samples into word n-grams; convert the n-grams into vectors.
  b. Score the importance of the vectors and then select the top 20K using the scores.
  c. Build an MLP model.
3. If the ratio is greater than 1500, tokenize the text as sequences and use a
   sepCNN model to classify them (right branch in the flowchart below):
  a. Split the samples into words; select the top 20K words based on their frequency.
  b. Convert the samples into word sequence vectors.
  c. If the original number of samples/number of words per sample ratio is less
     than 15K, using a fine-tuned pre-trained embedding with the sepCNN
     model will likely provide the best results.
4. Measure the model performance with different hyperparameter values to find
   the best model configuration for the dataset.

Nel diagramma di flusso riportato di seguito, le caselle gialle indicano i processi di preparazione dei dati e dei modelli. Caselle grigie e riquadri verdi indicano le scelte che abbiamo preso in considerazione per ogni processo. Le caselle verdi indicano la nostra scelta consigliata per ogni processo.

Puoi utilizzare questo diagramma di flusso come punto di partenza per creare il tuo primo esperimento, che ti fornirà una buona precisione a costi di calcolo bassi. Puoi continuare a migliorare il modello iniziale nelle iterazioni successive.

Diagramma di flusso della classificazione del testo

Figura 5: Diagramma di flusso della classificazione del testo

Questo diagramma di flusso risponde a due domande chiave:

  1. Quale algoritmo o modello di apprendimento dovremmo utilizzare?

  2. Come dobbiamo preparare i dati per imparare in modo efficiente la relazione tra testo ed etichetta?

La risposta alla seconda domanda dipende dalla risposta alla prima domanda; la modalità di preelaborazione dei dati da inserire in un modello dipende dal modello scelto. I modelli possono essere classificati in genere in due categorie: quelli che utilizzano informazioni di ordinamento delle parole (modelli di sequenza) e quelli che visualizzano semplicemente il testo come "borse" (insiemi di parole) (modelli n-gram). I tipi di modelli di sequenza includono reti neurali convoluzionali (CNN), reti neurali ricorrenti (RNN) e le loro varianti. I tipi di modelli n-gram includono regressione logica, semplici perceptron multi livello (MLP, o reti neurali completamente collegate), alberi con potenziamento del gradiente e supporta macchine virtuali.

Dai nostri esperimenti, abbiamo osservato che il rapporto tra "numero di campioni" (S) e "numero di parole per campione" (W) è correlato a quale modello ha un buon rendimento.

Quando il valore di questo rapporto è piccolo (<1500), i piccoli perceptron multilivello che assumono n-grammi come input (che chiameremo Opzione A) hanno un rendimento migliore o almeno rispetto ai modelli di sequenza. I MLP sono semplici da definire e comprendere e richiedono molto meno tempo di calcolo rispetto ai modelli di sequenza. Quando il valore di questo rapporto è grande (>= 1500), utilizza un modello di sequenza (Opzione B). Nei passaggi seguenti, puoi passare alle sottosezioni pertinenti (A o B) relative al tipo di modello scelto in base al rapporto campioni/parole per campione.

Nel caso del nostro set di dati di revisione IMDb, il rapporto campioni/parole per campione è pari a ~144. Ciò significa che creeremo un modello MLP.