Il meccanismo di attenzione nell’NLP

Nell’articolo di oggi vediamo una breve introduzione al meccanismo di attenzione, una tecnica molto importante che permette di migliorare sensibilmente i task di NLP.

E’ noto che il linguaggio umano sia ambiguo, a differenza dei linguaggi di programmazione.

Spesso però non si fa abbastanza caso al fatto che, oltre ad essere ambiguo, il linguaggio naturale può anche essere inefficiente. Alcune parole sono vitali. Altre, invece, sono del tutto superflue.

concentriamoci sull’essenziale

Se si rilegge per esempio la frase in grassetto nel paragrafo precedente, si può vedere come probabilmente le parole che esauriscono buona parte del significato della frase siano poche. Le sole “linguaggio” e “inefficiente” trasmettono quasi l’intero significato della frase.

L’importanza delle parole chiave è alla base di un nuovo popolare strumento per l’elaborazione del linguaggio naturale: il meccanismo di attenzione.

Il meccanismo di attenzione si concentra sulle parole chiave invece di trattare ogni parola con uguale importanza. Ciò produce risultati migliori nei classici task dell’NLP, come rilevare sentimenti positivi o negativi (sentiment analysis) o classificare un documento (text classification). Se vuoi approfondire questo argomento, ne abbiamo parlato qui: https://pulplearning.altervista.org/introduzione-al-natural-language-processing-nlp-e-ai-suoi-ambiti/

“Il nostro sistema è simile al modo in cui il cervello umano elabora il linguaggio. Leggiamo molto velocemente e ci concentriamo solo sulle parole chiave.”

Hanrui Wang, MIT

Fin dalla sua nascita, la tecnica ha segnato subito un punto di svolta importante per l’NLP (qui uno degli articoli più rilevanti sul tema). Basti pensare che modelli di elaborazione del linguaggio naturale all’avanguardia come BERT di Google e GPT-3 di OpenAI se ne servono in modo molto profuso.

come funziona il meccanismo di attenzione

L’innovazione chiave del meccanismo di attenzione è la selettività: può dedurre quali parole o frasi in una frase sono più importanti, sulla base di confronti con modelli di parole che l’algoritmo ha precedentemente incontrato in una fase di addestramento.

Il modo in cui questo meccanismo riesce a pescare le parole giuste, è dato dalla sua capacità di comprendere il contesto in cui le parole stesse si celano. Nel caso per esempio della traduzione, il meccanismo di attenzione prende due frasi di lingue diverse, le trasforma in una matrice dove le parole di una frase formano le colonne e le parole di un’altra frase formano le righe, e poi fa corrispondenze, identificando il contesto rilevante.

Questa tecnica permette quindi di ottenere ottimi risultati in termini di qualità e precisione, a scapito però della velocità e della potenza di calcolo necessarie per farlo funzionare. Uno dei principali problemi in questo senso è dettato dalla RAM, necessaria per eseguire tutti i calcoli in memoria. E più si andrà avanti, più i modelli saranno complessi, più il meccanismo di attenzione avrà bisogno di risorse.

la proposta del mit

In questa ottica, i ricercatori del MIT hanno sviluppato un sistema chiamato SpAtten per eseguire il meccanismo di attenzione in modo più efficiente. Il loro design comprende sia software che hardware specializzati. Un progresso chiave del software è l’uso da parte di SpAtten dell’eliminazione di dati non necessari dai calcoli. Una volta che il meccanismo di attenzione aiuta a scegliere le parole chiave di una frase (chiamate token), SpAtten elimina i token non importanti ed elimina i calcoli e i movimenti di dati corrispondenti.

Per ridurre ulteriormente l’uso della memoria, i ricercatori hanno anche sviluppato una tecnica che consente all’algoritmo di gestire i dati in blocchi di larghezza di bit più piccoli e di recuperarne il minor numero possibile dalla memoria.