NLP è l’acronimo di Natural Language Processing il cui significato letterale è “Elaborazione del Linguaggio Naturale. Il NLP è il campo di ricerca dell’Intelligenza Artificiale che si occupa della comprensione ed elaborazione del linguaggio naturale e in particolare dell’interazione uomo-macchina attraverso il linguaggio umano.
Il NLP è utilizzato dai cosiddetti sistemi conversazionali intelligenti ovvero chatbot, assistenti vocali e agenti intelligenti in grado di elaborare il linguaggio umano, molto utili alle aziende per la gestione delle conversazioni online e telefoniche con clienti, utenti e prospect.
Questa definizione di NLP include tre elementi molto importanti nel campo dell’intelligenza artificiale: il riconoscimento vocale, la comprensione del linguaggio naturale e la capacità di generazione del linguaggio naturale. In questo articolo la nostra panoramica includerà solo il secondo e il terzo, presupponendo che abbiamo già dei dati, come un grande corpus scritto, pronto per essere elaborato.
La sfida di consentire ai computer di analizzare, elaborare e reagire di conseguenza a uno stimolo linguistico esterno è lungi dall’essere un lavoro facile e, se guardiamo indietro solo a pochi anni fa, l’industria è stata in grado di eseguire prestazioni simili agli esseri umani su un piccolo insieme di sotto-task.
Questa area è stata segmentata in più sottocampi, ognuno dei quali si rivolge a un task più specifico. Alcuni di questi sono noti da tempi addietro, quando arrivò la rivoluzione informatica, ottenendo risultati già decorosi. Altri si sono palesati solo in tempi più recenti insieme alle tecniche di Deep Learning applicate al Natural Language Processing. In ogni caso, l’intero campo ha ottenuto un enorme aumento delle prestazioni grazie all’era del Deep Learning.
Il dominio dell’Natural Language Processing, in cui sono attualmente applicate le tecniche di apprendimento profondo, potrebbe essere diviso in 10 aree correlate a task minori.
- Risposte alle domande
- Traduzione automatica (Machine Translation)
- Dialogo
- Riassunto
- Inferenza del linguaggio naturale
- Classificazione del sentiment (Sentiment Classification)
- Etichettatura semantica dei ruoli
- Estrazione delle relazioni
- Analisi semantica (Semantic Parsing)
- Ragionamento di buon senso
Analizziamoli uno alla volta ed evidenziamo alcuni dei concetti e degli aspetti chiave.
Presumiamo almeno una conoscenza di base di cosa siano una rete neurale e una rete neurale ricorrente. Potreste non avere familiarità con ciò che chiameremo “suddivisione dell’architettura” in ciascuna sezione: è semplicemente un modo rapido per visualizzare la lunghezza degli input con cui il modello viene alimentato, rispetto al numero di output che il modello produce. Inoltre, verranno spiegati i concetti e le idee principali adottati dai modelli, per i quali non sono stati ancora introdotti.
1. Risposte alle domande
Il modello prende un passaggio o un paragrafo e una domanda su qualcosa incluso nel paragrafo. Ha lo scopo di essere in grado di rispondere correttamente.
La domanda può essere di dominio aperto oppure no.
Il modello base di riferimento per questo task è Bi-LSTM, abbreviazione di Bidirectional Long Short-Term Memory, una particolare variante di Recurrent NN che ha una maggiore capacità di far fluire le informazioni dai passaggi temporali precedenti attraverso il modello, riducendo così al minimo la tendenza di un RNN standard a essere influenzato in una determinata fase temporale principalmente dalle informazioni provenienti dalle fasi temporali precedenti più vicine. +
La componente Bidirezionale consente al modello di elaborare le informazioni in entrambi gli ordini temporali, avanti e indietro. In termini di numero di input e output, l’architettura è many to many, dove la lunghezza di input e output non è uguale. Una caratteristica fondamentale da adottare per avere prestazioni accettabili è il meccanismo di attenzione. Questo metodo consente al modello di concentrarsi su parti diverse del testo di origine durante la generazione della risposta.
Le metriche di valutazione per questo task possono variare a seconda dei dataset. Tuttavia, alcuni tra i più comuni sono i punteggi EM e F1.
Attualmente, le classifiche sono governate da modelli basati su Transformers, come BERT di Google.
L’architettura Transformers esplora più nel dettaglio l’idea di Attenzione, applicando lo stesso meccanismo non solo nella fase di generazione della risposta ma anche nella fase di comprensione della lettura: il modello può apprendere migliori dipendenze tra le parole nel testo di partenza, producendo una migliore comprensione del brano.
2. Traduzione automatica
Questo task è tanto semplice da spiegare quanto complesso da realizzare.
La Traduzione automatica, o Machine Translation, è stata un punto di riferimento per il NLP sin dall’inizio.
Il modello mira a produrre la traduzione in un’altra lingua per una frase specifica data come input.
Il modello base di riferimento è Bi-LSTM, che abbiamo già menzionato prima. La suddivisione dell’architettura è many to many, con input e output di diverse lunghezze.
Una caratteristica fondamentale da adottare è ancora il meccanismo di Attenzione. Un’altra cosa che vale la pena introdurre è il framework Encoder/Decoder: la struttura ha due parti principali. L’Encoder è il primo, prende il testo di origine come input ed è responsabile dell’output di una rappresentazione del testo, una comprensione della sequenza di input. Questa informazione viene successivamente immessa nella parte restante del modello, il Decoder, che prende l’uscita dell’Encoder come input iniziale e cerca di generare la parola successiva rispetto alla frase in ingresso.
Questa procedura esatta viene ripetuta ogni volta, alimentando come nuova sequenza di input l’output precedente e cercando di prevedere la parola successiva, producendo una frase in output di una parola più lunga a ogni iterazione. Il lavoro del Decoder consiste nel prendere la frase prevista fino a quel momento ed emettere la parola successiva, fino a quando non produce un segnale di stop, che significa che il processo di generazione è completato.
La metrica di valutazione per questo task è specificamente assegnata e si chiama BLUE (BiLingual Understudy Evaluation).
Le prestazioni allo stato dell’arte sono ancora una volta raggiunte dai modelli basati su Transformers.
3. Dialogo
Il campo del dialogo è probabilmente il più ampio e con una varietà significativa di task secondari.
Fondamentalmente ogni tipo di conversazione, in qualsiasi contesto, di qualsiasi argomento, potrebbe essere raggruppato nell’area di dialogo.
Parlare con una controparte è tutto ciò che il modello deve fare. Sembra facile, vero? In realtà, non lo è assolutamente! Vorremmo menzionare qui alcune delle carenze più comuni che potreste incontrare: genericità, risposte irrilevanti, ripetizione, mancanza di contesto, mancanza di personalità coerente. Queste sono solo alcune delle insidie da evitare quando si ha a che fare con modelli di Natural Language Processing e soprattutto in un ambiente correlato al dialogo.
Il modello base di riferimento è Bi-LSTM e la suddivisione dell’architettura è many to many, con input e output di diverse lunghezze. Le caratteristiche principali di questo task sono Attenzione e il framework Encoder/Decoder, di cui abbiamo già discusso.
La metrica di valutazione di solito varia a seconda del dataset: il punteggio F1 e la perplexity sono alcune delle metriche che potreste incontrare. È fondamentale tenere presente che nel campo del dialogo spesso la valutazione umana viene utilizzata come metrica principale quando le formule empiriche non sono sufficientemente esplicative.
4. Riassunto
L’ultimo task nel dominio della generazione del linguaggio è il riassunto.
Dato un testo di input, il modello mira a produrre un riassunto come output, che è più breve e contiene solo le informazioni principali del testo di input.
Il modello base di riferimento è ancora Bi-LSTM e le caratteristiche principali sono Attenzione, struttura del Encoder/Decoder, come altri task di Language Modelling. La suddivisione dell’architettura è many to many, con una lunghezza di input e output diversa.
Viene utilizzata una metrica di valutazione speciale chiamata ROUGE (Recall-Oriented Understudy for Gisting Evaluation). Anche qui i primi posti nelle classifiche sono occupati da modelli basati su Transformers.
Lasciando il mondo del Language Modelling, passiamo al blocco successivo che ha due aree di task che non si riferiscono al Language Modelling nello specifico ma che non avrebbero ottenuto risultati soddisfacenti senza le tecniche di Deep Learning.
5. Inferenza del linguaggio naturale
Data una premessa, il modello mira a determinare se un’ipotesi sia vera, falsa o indeterminata.
Il modello di base è Bi-LSTM. La suddivisione dell’architettura è many to one: significa che abbiamo molti input (la lunghezza della frase) e un solo output (un’etichetta che indica se l’ipotesi è implicita, contraddittoria o neutra).
La metrica di valutazione utilizzata è l’accuratezza.
6. Classificazione del sentiment
Il task Sentiment Classification consiste nel classificare la polarità di un dato testo o semplicemente classificare il testo di input in alcune classi predefinite (rientra nell’insieme di attività dette anche Sentiment Analysis).
Il modello base di riferimento per questo task potrebbe essere un RNN standard o Convolutional NN (CNN).
CNN è un’architettura di rete neurale nata nel mondo della Computer Vision. Una convoluzione è la trasformazione matematica che si trova tra i livelli della CNN. La particolarità di una Convoluzione è quella di poter rilevare le caratteristiche da estrarre indipendentemente dalla loro posizione assoluta nella frase. Quindi, ad esempio, ciò che rende rilevante una certa caratteristica è semplicemente avere la stessa occorrenza nelle vicinanze ogni volta, ignorando la sua particolare posizione nella frase.
Questo approccio a volte può essere molto efficace nella classificazione dei sentiment, in cui il modello mira a estrarre le caratteristiche del sentiment complessivo del testo ed espressioni molto simili portano allo stesso sentiment anche se si trovano in modo diverso nella frase. La divisione dell’architettura è many to one. La metrica di valutazione utilizzata è l’accuratezza.
Come si può facilmente immaginare, anche per questo task, le classifiche sono governate da modelli basati su Transformers.
Il paragrafo successivo è dedicato ai rami presenti in NLP fin dai suoi albori e che sono riusciti a ottenere buoni risultati grazie ad algoritmi basati su regole e funzionalità artigianali. Ha due grandi aree di task e moltissimi sotto-task importanti, che sono a volte considerati come task di pre-elaborazione in NLP e tendono a essere raggruppati insieme al loro interno.
7. Etichettatura semantica dei ruoli
Questo task mira a modellare la struttura dell’argomento-predicato di una frase ed è spesso descritto come una risposta “Chi ha fatto cosa a chi”. Il modello base di riferimento è Bi-LSTM. La suddivisione dell’architettura è many to many, in cui la lunghezza di input e output è esattamente la stessa. La metrica di valutazione è l’accuratezza.
8. Estrazione delle relazioni
Questo è il task di estrarre relazioni semantiche da un testo. Le relazioni estratte di solito si verificano tra due o più entità di un certo tipo (ad esempio persona, organizzazione, posizione) e rientrano in una serie di categorie semantiche (ad esempio sposato, impiegato da, vive in).
Bi-LSTM e CNN sono le linee di base il task. La divisione dell’architettura è many to many con un numero uguale di input e output. La metrica di valutazione è il punteggio F1.
L’ultimo paragrafo comprende due task complessi che prima dell’ascesa del Deep Learning non erano idonei per essere applicati nel modello end-to-end.
9. Analisi semantica
L’analisi semantica, o Semantic Parsing, è il task di tradurre il linguaggio naturale in una forma logica: una rappresentazione comprensibile dalla macchina del suo significato.
Le rappresentazioni possono essere un linguaggio eseguibile come SQL o rappresentazioni più astratte come la rappresentazione del significato astratto (AMR).
Il modello base di riferimento dell’analisi semantica è Bi-LSTM. La suddivisione dell’architettura è many to many e una lunghezza di input/output diversa. La metrica utilizzata per la valutazione delle prestazioni è l’accuratezza.
10. Ragionamento di buon senso
Questo task innovativo richiede che il modello utilizzi ciò che gli esseri umani connotano come buon senso. Ciò implica la capacità di andare oltre i modelli nel testo e teoricamente non utilizzare alcuna informazione proveniente dal testo sorgente di input effettivo. Per fare ciò, il modello deve acquisire una certa conoscenza del mondo circostante, che in seguito sarà permanente.
Di volta in volta, durante l’elaborazione di un nuovo testo, il modello dovrebbe usare la sua conoscenza generale per trarre conclusioni e prevedere i risultati, inclusi giudizi sulle proprietà fisiche, lo scopo, le intenzioni e il comportamento di persone e oggetti, nonché i possibili risultati di le loro azioni e interazioni.
Il modello base di riferimento è rappresentata da Bi-LSTM e la suddivisione dell’architettura è many to many, con input e output di diverse lunghezze. In genere, quando il modello cerca di produrre output diversi come scopo e intenzione, utilizza più strutture Encoder/Decoder. La metrica di valutazione viene scelta in base al dataset e in base al sotto-task specifico che il modello cerca di realizzare.
Ragioni del successo del Deep Learning in alcune aree del Natural Language Processing
Il Deep Learning ha rappresentato una vera svolta per l’intero campo del Natural Language Processing e soprattutto per alcune aree. Al momento siamo in grado di ottenere prestazioni simili a quelle umane per la stragrande maggioranza dei compiti. I nuovi parametri di riferimento sono fissati a un ritmo incredibile, tanto che la community riesce a stento a stare al passo. Ricercatori e professionisti stanno facendo progressi enormi traendone un grande beneficio che risulta in un vantaggio per tutti.
Qual è la ragione per la quale il Deep Learning ha avuto un così grande successo ultimamente? Ciò può essere attribuito a quattro fattori principali: abbondanza di dati e accessibilità, capacità delle reti neurali di aumentare le dimensioni, integrate da framework funzionali e un’enorme quantità di potenza di calcolo. Considerando che tutti questi fattori non fanno altro che aumentare e migliorare, sarebbe ragionevole pensare che questo campo abbia ancora immensi margini di crescita e che le prestazioni aumenteranno sempre più in futuro.