Blog.

Transformer Seq2Seq


Autore
Andrea Provino
Data
Tempo di lettura
3 minuti
Categoria
AI

transformers-deep-learning-data-science-natural-language-processing-artificial-intelligence

Un Transformer è una particolare struttura di rete neurale artificiale particolarmente utile in Natural Langiage Processing.

Nel nostro post introduttivo alle Reti Neurali Ricorrenti (Recurrent Neural Network) abbiamo distinto 4 tipologie di architteture differenti.

Le Sequence-to-Sequence (Seq2Seq) in particolare trasformano una sequenza di elementi, come ad esempio le lettere in una parola, in un’altra sequenza.

What a surprising explanation!

Per questa ragione i Seq2Seq risultano particolarmente utili per la creazione di traduttori, in cui sequenze di lettere (parole) in una lingua sono convertite in un’altra lingua.

Per questo task specifico usiamo i così detti Long-Short-Term-Memory-based models (LSTM) che ricordano le parti importanti, dimenticano quelle menu tili.

Le frasi che il nostro sopraffino intelletto è in grado di concepire, sono sequence-dependent poiché l’ordine delle parole ne influenza il significato.

Le reti Seq2Seq consistono in un Encoder e un Decoder.

L‘Encoder elabora i dati in ingresso mappandoli in uno spazio a dimensione maggiore (vettore n-dimensionale).

Questo vettore astratto è poi gestito dal Decoder che produce una sequenza di ouput: simbolo, copia d’input o traduzione in altra lingua.

Fine.

Come fine? E il transformer?

Attention

Abbiamo bisogno di un termine tecnico in più per rendere assimilabile il concetto di Transformer: attention.

Accuratamente descritto in questa pubblicazione, dal titolo Attention Is All You Need, il meccanismo dell’attenzione identifica le parti importanti un testo.

Pensaci un attimo.

E’ geniale.

Quando leggiamo, il nostro cervello è costantemente alla ricerca di parti utili e informazioni superflue.

Analogamente il meccanismo dell’attenzione, o attention-mechanism, riconosce la semantica di una frase fornendole al Decoder come informazioni aggiuntive sotto forma di keywords.

Per ogni parola letta dal LSTM (Encoder), l’attention-mechanism prende in considerazione altri input allo stesso tempo, decidendo quali siano importanti e attribuendo loro un peso differente.

Il Decorer è quindi incaricato di prendere le parole corredate di un peso (weight).

Per approfondire il concetto di attention, ti consiglio di leggere questo post.

Non posso non citarti la pubblicazione Effective Approaches to Attention-based Neural Machine Translation’, che puoi trovare qui, e nella quale leggere approcci più scientifici.

E veniamo ora al nostro amato Transformer.

Transformer

In Attention Is All You Need viene presentata una nuova architettura chiamata Transformer.

Come LSTM, un Transformer gestisce sequenze di dati e ne produce altrettante.

A differenza di LSTM, questa architettura non prevede l’impiego di RNN.

Recurrent Networks sono tra i modi migliori per catturare le dipendenze temporali nelle sequenze dati.

I ricercatori hanno però appurato come sia possibile ottenere risultati migliori modificano la struttura di base, eliminando le reti neurali ricorrenti, attraverso l’attention-mechanism.

Quindi… cos’è di preciso un Transformer? Ecco qui:

L’Encoder sulla sinistra e il Decoder sulla destra, entrambi modulari, sono il risultato dell’impilazione di livelli Feed Forward e Multi-Head Attention.

Per approfondire ulteriormente la questione, ti rimando a questo ottimo articolo.

Per il momento è tutto!

Un caldo abbraccio, Andrea.

TaggedAI


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum