Negli ultimi anni, i modelli di trasformatori (Transformers) hanno rivoluzionato il campo dell’elaborazione del linguaggio naturale (NLP). Questi modelli, introdotti da Google nel 2017 con l’articolo di Vaswani et al., rappresentano una nuova classe di modelli di apprendimento automatico basati sull’attenzione, che sono stati applicati con successo in molte aree della NLP, come la traduzione automatica, l’analisi del sentimento, la classificazione del testo e la generazione di testo. In questo articolo, esploreremo cosa sono i transformers e come vengono utilizzati nella NLP.

Cosa sono i Transformers?

I transformers sono modelli di apprendimento automatico basati sull’attenzione (attention-based) che sono stati introdotti per la prima volta nel 2017 da Vaswani et al. nella loro pubblicazione “Attention Is All You Need”. Questi modelli hanno rivoluzionato il campo dell’elaborazione del linguaggio naturale, fornendo un’alternativa efficiente alle architetture di reti neurali ricorrenti (RNN) precedentemente utilizzate.

I transformers utilizzano l’attenzione per elaborare sequenze di input, come le sequenze di parole in un testo. L’attenzione permette al modello di dare maggiore peso a determinate parti dell’input, in modo da prestare maggiore attenzione a informazioni rilevanti e ignorare informazioni meno importanti.

Questa capacità di prestare attenzione a parti specifiche dell’input rende i transformers particolarmente adatti all’elaborazione del linguaggio naturale, dove l’informazione rilevante può essere dispersa all’interno di una sequenza di parole.

I transformers utilizzano due meccanismi principali: l’attenzione multi-testa e l’encoding basato sul trasformatore. L’attenzione multi-testa consente al modello di prestare attenzione a più parti dell’input contemporaneamente, mentre l’encoding basato sul trasformatore permette al modello di catturare informazioni di contesto a lungo termine.

Come funzionano i Transformers?

I transformers lavorano in modo simile ad altre architetture di reti neurali, come le reti neurali convoluzionali (CNN) e le reti neurali ricorrenti (RNN). Tuttavia, i transformers utilizzano una serie di blocchi di trasformazione che sono in grado di elaborare l’input in modo parallelo. Questo rende i transformers molto più efficienti delle RNN, che elaborano l’input in modo sequenziale.

Ogni blocco di trasformazione è composto da due parti principali: l’attenzione multi-testa (o multi-head attention) e l’encoding basato sul trasformatore. L’attenzione multi-testa consente al modello di prestare attenzione a parti specifiche dell’input, mentre l’encoding basato sul trasformatore cattura informazioni di contesto a lungo termine.L’attenzione multi-testa funziona suddividendo l’input in una serie di sottovettori, che vengono elaborati in parallelo. Ogni sottovettore viene poi confrontato con gli altri sottovettori, per determinare la sua rilevanza rispetto al resto dell’input.

L’encoding basato sul trasformatore utilizza una serie di operazioni matematiche per catturare le informazioni di contesto a lungo termine. Queste operazioni includono la normalizzazione del batch (batch normalization), la riduzione della dimensionalità (dimensionality reduction) e la trasformazione lineare (linear transformation). Queste operazioni consentono al modello di catturare informazioni di contesto a lungo termine senza dover ricorrere all’elaborazione sequenziale tipica delle RNN.

Inoltre, i transformers utilizzano un’architettura senza feedback, ovvero non utilizzano le informazioni di output precedente come input per le iterazioni successive, come invece avviene nelle RNN. Questo rende i transformers più efficienti in termini di elaborazione e consente loro di elaborare sequenze di lunghezza arbitraria senza dover ricorrere a tecniche di truncation.

Infine, i transformers utilizzano l’encoding posizionale per tenere traccia della posizione di ogni parola all’interno della sequenza di input. Questo è necessario perché l’attenzione multi-testa non tiene conto dell’ordine delle parole nella sequenza, ma solo della loro rilevanza relativa.

Applicazioni dei Transformers nella NLP

I transformers hanno rivoluzionato il campo dell’elaborazione del linguaggio naturale, fornendo un’alternativa efficiente alle architetture di reti neurali ricorrenti (RNN) precedentemente utilizzate. Questi modelli sono stati applicati con successo in molte aree della NLP, come la traduzione automatica, l’analisi del sentimento, la classificazione del testo e la generazione di testo.

La traduzione automatica è uno dei campi in cui i transformers hanno avuto il maggior impatto. I modelli di traduzione basati sui transformers, come il Transformer di Google, hanno superato le prestazioni delle architetture precedenti basate sulle RNN. Questi modelli sono in grado di catturare informazioni di contesto a lungo termine, che sono cruciali per la traduzione di frasi complesse.

L’analisi del sentimento è un altro campo in cui i transformers sono stati applicati con successo. I modelli di analisi del sentimento basati sui transformers sono in grado di catturare le sfumature del linguaggio naturale, come le ironie e le ambiguità, che possono influenzare la comprensione del sentimento di un testo. Questi modelli sono stati utilizzati in molti settori, come la pubblicità e la politica, per valutare la percezione del pubblico rispetto a determinati prodotti o temi.

La classificazione del testo è un altro campo in cui i transformers sono stati applicati con successo. I modelli di classificazione del testo basati sui transformers sono in grado di identificare il contenuto e la struttura di un testo, e di classificarlo in categorie come notizie, opinioni o informazioni. Questi modelli sono stati utilizzati in molti settori, come la pubblicità e il marketing, per identificare le tendenze del mercato e le preferenze dei consumatori.

La generazione di testo è un’altra applicazione dei transformers che sta diventando sempre più popolare. I modelli di generazione di testo basati sui transformers sono in grado di generare testo in modo autonomo, senza la necessità di input umani. Questi modelli sono stati utilizzati in molte applicazioni, come la generazione di testo per chatbot, la sintesi di testo per la lettura automatica di notizie e la generazione di testo per la creazione di contenuti.

Vantaggi dei Transformers nella NLP

I transformers hanno molti vantaggi rispetto alle architetture di reti neurali ricorrenti (RNN) precedentemente utilizzate nella NLP. Questi vantaggi includono:

  1. Efficienza: i transformers sono in grado di elaborare l’input in modo parallelo, il che li rende molto più efficienti delle RNN, che elaborano l’input in modo sequenziale.
  2. Elaborazione di sequenze di lunghezza arbitraria: i transformers sono in grado di elaborare sequenze di lunghezza arbitraria senza dover ricorrere a tecniche di truncation.
  3. Cattura di informazioni di contesto a lungo termine: i transformers sono in grado di catturare informazioni di contesto a lungo termine senza dover ricorrere all’elaborazione sequenziale tipica delle RNN.
  4. Prestazione: i transformers hanno dimostrato di avere prestazioni superiori rispetto alle architetture precedenti basate sulle RNN in molte aree della NLP, come la traduzione automatica, l’analisi del sentimento, la classificazione del testo e la generazione di testo.

I modelli di NLP basati su BERT

I modelli di NLP basati su BERT (Bidirectional Encoder Representations from Transformers) sono stati introdotti da Google nel 2018. Questi modelli sono basati sui transformers e sono in grado di catturare informazioni di contesto da entrambe le direzioni della sequenza di input, ovvero sia da sinistra a destra che da destra a sinistra.

Questa capacità di catturare informazioni di contesto bidirezionale ha permesso ai modelli di NLP basati su BERT di superare molte limitazioni dei modelli precedenti basati su RNN e di raggiungere prestazioni eccezionali in molte aree dell’elaborazione del linguaggio naturale.

I modelli di NLP basati su GPT

Tra i modelli di transformers più famosi nella NLP, vi sono i modelli GPT (Generative Pre-trained Transformer). Il primo modello, GPT, è stato introdotto da OpenAI nel 2018 e ha raggiunto prestazioni impressionanti nella generazione di testo, la traduzione automatica, la classificazione del testo e altri compiti di NLP.
Il successivo GPT-2, rilasciato nel 2019, ha ulteriormente migliorato le prestazioni di GPT in termini di generazione di testo. Infine, nel 2020, OpenAI ha presentato GPT-3, che rappresenta il modello più grande e avanzato della serie GPT. Con ben 175 miliardi di parametri, GPT-3 ha mostrato prestazioni incredibili in molti compiti di NLP, come la generazione di testo, la risposta alle domande, la traduzione automatica e la generazione di codice.

ChatGPT è ad oggi il modello basato sui transformers della famiglia GPT-3 sicuramente più potente.

Conclusioni

In sintesi, i transformers rappresentano una nuova classe di modelli di apprendimento automatico basati sull’attenzione, che hanno rivoluzionato il campo dell’elaborazione del linguaggio naturale (NLP).

Questi modelli utilizzano l’attenzione per elaborare sequenze di input, come le sequenze di parole in un testo, e sono in grado di catturare informazioni di contesto a lungo termine senza dover ricorrere all’elaborazione sequenziale tipica delle reti neurali ricorrenti (RNN).

I transformers hanno dimostrato di avere prestazioni superiori rispetto alle architetture precedenti basate sulle RNN in molte aree della NLP, come la traduzione automatica, l’analisi del sentimento, la classificazione del testo e la generazione di testo. In futuro, ci si aspetta che i transformers continueranno a essere utilizzati sempre di più in molti campi dell’elaborazione del linguaggio naturale, fornendo risultati sempre più precisi e affidabili.

Approfondimenti

Vaswani, Ashish, et al. “Attention is all you need.” Advances in neural information processing systems 30 (2017).

Gillioz, A., Casas, J., Mugellini, E., & Khaled, O. A. (2020). Overview of the Transformer-based Models for NLP Tasks. Proceedings of the 2020 Federated Conference on Computer Science and Information Systems, FedCSIS 2020, 179–183. https://doi.org/10.15439/2020F20

Rothman, D. (2021). Transformers for Natural Language Processing: Build innovative deep neural … – Denis Rothman – Google Kitaplar.

Khan, S., Naseer, M., Hayat, M., Zamir, S. W., Khan, F. S., & Shah, M. (2022). Transformers in Vision: A Survey. ACM Computing Surveys (CSUR), 54(10s), 1–41. https://doi.org/10.1145/3505244