Questo sito web utilizza cookie tecnici e, previo Suo consenso, cookie di profilazione, nostri e di terze parti. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsente all'uso dei cookie. Leggi la nostra Cookie Policy per esteso.OK

gli sviluppi

Linguaggio naturale e intelligenza artificiale: a che punto siamo

Lo stato attuale e uno sguardo al futuro della ricerca nel campo del Natural Language Processing, considerando i più recenti progressi determinati dai big data e dal deep learning, gli obiettivi che si stanno perseguendo, con un riferimento particolare ai sistemi conversazionali, e le sfide da affrontare nei prossimi anni

06 Feb 2019

Massimo Esposito

Ricercatore presso l’Istituto di Calcolo e Reti ad Alte Prestazioni del Consiglio Nazionale delle Ricerche


Tra gli ambiti in cui le tecniche di intelligenza artificiale per il Natural Language Processing (comprensione ed elaborazione del linguaggio naturale) stanno producendo risultati più soddisfacenti, troviamo i sistemi conversazionali intelligenti. Questi sistemi – tra i più famosi, Alexa di Amazon e Siri di Apple – sono in grado non solo di imitare il dialogo umano, ma anche di rispondere a domande su argomenti di diversa natura (dalle ultime news ai film in TV) e di eseguire task complessi (come pianificare un viaggio).

Grandi i progressi compiuti in questo campo e importanti i risultati ottenuti, soprattutto grazie all’applicazione di algoritmi di deep learning, ma restano ancora differenti sfide di ricerca aperte. Vediamo come affrontarle, ma prima di approfondirle ricostruiamo la nascita e l’evoluzione delle tecniche NLP.

Social network e big data alla base dei progressi del Natural Language Processing

A partire dalla nascita di Internet e fino al 2003, anno in cui i primi social networks come Facebook e Linkedin hanno fatto la comparsa sul panorama internazionale, poche dozzine di exabyte di dati erano disponibili sul Web. Oggi, quella stessa mole di dati viene creata settimanalmente. Tale fenomeno di generazione e diffusione massiva di dati è riconducibile a diversi fattori.

In primo luogo, l’avvento del Social Web e la disponibilità di dispositivi tecnologici pervasivi (smartphone, tablet), hanno modificato le caratteristiche dell’utente medio, che da fruitore passivo e saltuario di informazioni prevalentemente diffuse da fonti istituzionali, è divenuto protagonista attivo e costantemente operativo, sempre più coinvolto nella produzione di contenuti propri, nella modifica di contenuti altrui e in attività relative ad acquisti e vendite di oggetti e servizi. Ciò ha comportato la generazione di una incredibile mole di dati testuali di natura estremamente eterogenea, espressi in lingue e formati differenti.

In secondo luogo, l’informatizzazione dei processi aziendali e la digitalizzazione documentale hanno comportato un aumento continuo ed esponenziale dei dati, per la maggior parte di tipo testuale, prodotti e detenuti da pubblica amministrazione, ospedali, banche, studi legali, aziende private.

L’incontro tra Natural Language Processing e Deep Learning

È in questo contesto, caratterizzato da una estrema varietà e quantità di contenuti espressi in linguaggio naturale, che l’uso dell’intelligenza artificiale assume rilevanza strategica, favorendo la realizzazione di soluzioni innovative per l’elaborazione, la comprensione e la produzione in maniera automatica di dati testuali. In particolare, negli ultimi anni si è assistito alla nascita di nuovi approcci, che integrano l’elaborazione del linguaggio naturale con gli algoritmi di apprendimento profondo (deep learning), producendo risultati straordinari in differenti scenari applicativi.

Grazie ad essi, infatti, è possibile, oggi, tradurre testi o parlato tra lingue differenti in maniera automatica con prestazioni sorprendenti, dialogare e fare domande alle macchine in linguaggio naturale su domini specifici, estrarre conoscenza e insight rilevanti, con valore sia informativo che predittivo, da enormi quantità di dati testuali, generare contenuto in linguaggio naturale, ad esempio per sintetizzare le informazioni chiave di uno o più documenti, o determinare la polarità di testo che contiene opinioni, ad esempio su prodotti, servizi, individui, eventi.

Cos’è il Natural Language Processing

Il Natural Language Processing è un campo di ricerca interdisciplinare che abbraccia informatica, intelligenza artificiale e linguistica, il cui scopo è quello di sviluppare algoritmi in grado di analizzare, rappresentare e quindi “comprendere” il linguaggio naturale, scritto o parlato, in maniera similare o addirittura più performante rispetto agli esseri umani. Tale “comprensione” è determinata dal capire, e quindi essere poi in grado di usare, il linguaggio a varie granularità, dalle parole, in relazione al loro significato ed alla appropriatezza d’uso rispetto ad un contesto, fino alla grammatica ed alle regole di strutturazione sia delle frasi a partire dalle parole sia dei paragrafi e delle pagine a partire dalle frasi.

In maggior dettaglio, in primo luogo, l’NLP fornisce soluzioni per analizzare la struttura sintattica del testo, associando alle singole parole le rispettive categorie morfologiche (ad es. nome, verbo, aggettivo), identificando entità e classificandole in categorie predefinite (ad es. persona, data, luogo), estraendo dipendenze sintattiche (ad es. soggetti e complementi) e relazioni semantiche (ad es. iperonimia, meronimia). In secondo luogo, consente di comprendere la semantica del testo, identificando il significato delle parole, anche relazionato al contesto e alle modalità di utilizzo (ad es. ironia, sarcasmo, sentimento, umore), classificandolo in categorie predefinite (ad es. sport, geografia, medicina) o sintetizzandone il contenuto.

La storia di questo campo di ricerca viene fatta partire solitamente negli anni cinquanta, quando Alan Turing pubblicò il suo articolo “Machine and Intelligence”, in cui propose il suo famoso test per valutare l’abilità di un computer nel mostrare comportamenti intelligenti, indistinguibili da quelli di un essere umano, conversando in linguaggio naturale.

Fino agli anni ottanta, la maggior parte degli approcci di NLP hanno provato a formalizzare nei computer i vocabolari e le regole del linguaggio naturale, con risultati però non sempre soddisfacenti. La rigidità e non scalabilità delle regole scritte a mano non hanno, infatti, reso possibile una gestione estensiva dell’estrema variabilità ed ambiguità, funzionale, lessicale e sintattica, del linguaggio naturale. Agli inizi degli anni ottanta e, in maniera più estesa negli anni novanta, sono apparsi i primi approcci di NLP statistico o basato su corpora. In particolare, essi hanno cercato di risolvere le problematiche degli approcci a regole, imparando autonomamente le preferenze lessicali e strutturali da corpora di grandi dimensioni, senza richiederne una codifica manuale preliminare. La maggior parte degli approcci di NLP statistico, ancora oggi largamente utilizzati in diversi prodotti commerciali, elabora il set di parole presenti in un testo (bag-of-words), a volte arricchito con le differenti categorie morfologiche, consentendo una migliore gestione dei differenti tipi di ambiguità del linguaggio ed, al contempo, garantendo robustezza, capacità di generalizzazione e resilienza in presenza di errori.

Nonostante i risultati convincenti ottenuti in differenti applicazioni, ad esempio coi motori di ricerca e nell’estrazione della conoscenza, l’esigenza di migliorare ulteriormente le capacità di comprensione automatica di contenuti in linguaggio naturale, raggiungendo livelli similari a quelli dell’essere umano, rappresenta, tuttora, una sfida aperta su cui il mondo della ricerca sta lavorando.

Deep learning per l’elaborazione e comprensione del linguaggio naturale

Nel 2011, per la prima volta un semplice algoritmo basato sul deep learning è stato applicato a differenti problemi di NLP, tra cui l’identificazione di entità e l’assegnazione di categorie morfologiche a parole, mostrando prestazioni sensibilmente migliori rispetto ad altri approcci rappresentativi dello stato dell’arte. Da allora, sono stati realizzati algoritmi sempre più complessi basati sul deep learning per affrontare problemi di NLP ancora non risolti o trattati in passato ma con risultati non soddisfacenti.

Il deep learning, in sintesi, si basa sul concetto di rete neurale artificiale, ossia un modello matematico ispirato, dal punto di vista funzionale, ai sistemi neurali biologici del cervello umano. Una rete neurale artificiale profonda è composta da una serie di neuroni che sono disposti su più livelli collegati fra loro.

Una prima caratteristica fondamentale di tali reti è che sono in grado di apprendere, in maniera autonoma e contestuale, sia una rappresentazione di tipo gerarchico delle migliori caratteristiche descrittive dei dati di ingresso (non necessariamente intellegibili dall’essere umano) sia le modalità con le quali combinare al meglio tali informazioni per la risoluzione di un compito specifico.

Una seconda caratteristica di rilievo è che tali reti, in maniera similare al cervello umano, sono in grado di imparare dalle loro esperienze, ossia di migliorare le proprie prestazioni nella risoluzione di un problema complesso in funzione della quantità di esempi con cui sono addestrati.

Tali reti sono in grado di elaborare, però, come input, solo dati numerici e non stringhe testuali. Questa è una delle motivazioni per le quali le prime applicazioni di successo del deep learning hanno riguardato il trattamento di immagini o segnali.

A partire dal 2013 sono state proposte differenti tecniche per la rappresentazione del linguaggio in maniera numerica, ossia in grado di trasformare ogni parola di un dizionario in un vettore continuo di numeri reali (word embeddings). Queste tipologie di vettori sono risultate estremamente efficienti sia nel catturare similarità di contesto, similarità di tipo morfologico, e analogie tra parole, e sia nell’essere applicate per la rappresentazione dei dati di ingresso di reti neurali profonde per la risoluzione di problemi di NLP. Tra le tipologie di reti neurali profonde maggiormente adoperate per problemi di NLP vi sono sicuramente sia le reti convolutive, in grado di estrarre caratteristiche complesse operando localmente su piccole porzioni di testo, che quelle ricorrenti, in grado invece di trattare dati sequenziali e quindi apprendere dipendenze più lunghe all’interno di un testo.

Ad oggi, il deep learning, attraverso la combinazione di word embeddings e reti convolutive e ricorrenti, rappresenta l’approccio maggiormente adottato per affrontare problematiche relative all’elaborazione e comprensione del linguaggio naturale, non solo in ambito accademico ma anche, e soprattutto, in ambito industriale, assumendo la forma di prodotti ed applicazioni, ormai di uso quotidiano, rilasciate da aziende multinazionali come Microsoft, Google, Facebook e Amazon.

NLP in sistemi conversazionali

Una delle sfide di ricerca in cui le tecniche di NLP basate su deep learning stanno trovando sempre più applicazione riguarda lo sviluppo di sistemi conversazionali intelligenti, in grado di emulare il dialogo umano, di rispondere a domande su diversi argomenti di diversa e di eseguire compiti articolati. Essi offrono funzionalità evolute anche molto eterogenee fra loro, con risultati promettenti sia nel mondo della ricerca che nell’industria. Esempi estremamente noti di tali sistemi sono Cortana di Microsoft, Alexa di Amazon, Siri di Apple e Assistant di Google.

In maggior dettaglio, ad oggi i sistemi conversazionali sono in grado di fornire risposte dirette e coincise a domande poste dall’utente in linguaggio naturale su uno specifico dominio di competenza (sistemi di Question Answering). Per fare ciò, adoperano approcci di deep learning in grado di analizzare e classificare domande ed estrarre risposte in linguaggio naturale, interrogando basi di conoscenza strutturate di grosse dimensioni e/o collezioni di documenti testuali (anche il Web) ed, al contempo, risolvendo ambiguità, supportando parafrasi e favorendo inferenze di tipo semantico.

Possono, poi, “chiacchierare” in maniera naturale con gli esseri umani, fornendo supporto, assistenza e raccomandazioni (chatbot generativi). Ciò è reso possibile grazie ad algoritmi di deep learning analoghi a quelli utilizzati nei sistemi di traduzione automatica, che consentono di apprendere differenti tipologie di risposte su domini aperti a partire da esempi di dialogo (“traducendo” ogni domanda in una risposta).

In ultimo, supportano l’utente nell’espletamento di compiti più o meno complessi, che vanno dall’organizzazione di un meeting alla pianificazione di una vacanza (sistemi conversazionali task-oriented). Per fare ciò, utilizzano soluzioni di deep learning addestrate per comprendere le intenzioni dell’utente, espresse mediante richieste formulate in linguaggio naturale, aggiornare lo stato della conversazione in funzione di tali intenzioni, selezionare la prossima azione da effettuare e convertire quest’ultima in una risposta anch’essa espressa in linguaggio naturale.

Questi sono solo alcuni esempi delle possibili funzionalità dei sistemi conversazionali di ultima generazione, realizzate adoperando tecniche di NLP. Gli enormi progressi ottenuti nel campo sono stati raggiunti solo grazie all’utilizzo di algoritmi di deep learning ed alla disponibilità di grandi quantità di dati da utilizzare per il loro addestramento, con riferimento, ad esempio, alla classificazione di domande o all’articolazione di dialoghi.

Visione computerizzata, così l’AI (deep learning) può davvero cambiare la società

Le nuove sfide per il NLP

Nonostante gli enormi progressi ed innumerevoli risultati ottenuti di recente nel campo del NLP, soprattutto grazie all’applicazione di algoritmi di deep learning, restano ancora differenti sfide di ricerca aperte, che possono essere così riassunte.

  • L’elaborazione automatica del linguaggio naturale per lingue o scenari applicativi con scarsa disponibilità di dati annotati. Gli approcci di deep learning, ad esempio per classificare o assegnare la polarità ad un testo, utilizzano una modalità di apprendimento di tipo supervisionato, ossia necessitano di dataset di addestramento etichettati con le classi o fenomeni che si vogliono determinare (il topic o la polarità). Annotare dataset è un processo intensivo che richiede tempo e risorse umane per il suo espletamento. Mentre per lingue maggiormente utilizzate, come l’inglese, o per scenari applicativi di uso diffuso, come la sentiment analysis, vi è una più ampia disponibilità di dataset annotati e quindi, una maggiore possibilità di addestrare modelli di deep learning performanti, per molte altre lingue o scenari vi è carenza di dati utilizzabili a tal scopo. Attualmente, sono in studio differenti approcci per far fronte a tale problematica, dalla definizione di un modello “universale” del linguaggio a partire da aspetti comuni identificati tra differenti lingue, al trasferimento di conoscenze e modelli di rappresentazione e comprensione del linguaggio tra lingue, domini o task differenti, fino a strategie di addestramento non supervisionate o supervisionate con piccoli insiemi di dati annotati.
  • La “reale” comprensione del linguaggio naturale in maniera automatica, ossia la capacità di leggere e capire un testo in maniera similare ad un essere umano. Da una prospettiva più specificatamente cognitiva, la comprensione del linguaggio naturale nell’essere umano non avviene in isolamento, senza alcuna informazione sul contesto e sull’ambiente circostante, ma è strettamente correlata all’esperienza percettiva ed alle interazioni sensomotorie con il mondo esterno. Alla luce di ciò, riprodurre nelle macchine le capacità di comprensione e produzione del linguaggio dell’essere umano non può prescindere dal creare e correlare fra loro rappresentazioni concettuali e sensomotorie di oggetti dell’ambiente circostante. A tal scopo, attualmente, sta emergendo un numero sempre maggiore di approcci che integrano conoscenze provenienti dalle scienze cognitive e dalle neuroscienze per realizzare sistemi conversazionali in grado di simulare funzioni cognitive di alto livello alla base dello sviluppo del linguaggio infantile nel cervello umano, apprendendole attraverso l’esperienza e l’interazione con l’ambiente esterno.
  • La capacità di effettuare ragionamenti di senso comune per la comprensione del linguaggio al fine di risolvere ambiguità dovute a conoscenza implicita o non specificata. Per ragionamenti di senso comune si intendono, ad esempio, quelli che permettono di capire a chi si riferisce un pronome in una frase oppure che il pinguino non vola, nonostante sia un uccello e gli uccelli volino. Ad oggi, nonostante diversi progressi effettuati, insegnare ad una macchina ad effettuare ragionamenti di senso comune resta ancora un problema non risolto. D’altra parte, l’assenza di senso comune nelle macchine rappresenta una delle barriere che, a tutt’oggi, ne hanno limitato le capacità sia di comprensione dei fenomeni che accadono nel mondo circostante sia di comunicazione naturale con gli esseri umani, non consentendo ad esse di comportarsi in maniera ragionevole in situazioni sconosciute e di apprendere da nuove esperienze non contemplate in fase di addestramento. Di recente, sono stati realizzati dataset ad hoc e sono stati proposti programmi di ricerca internazionali specificatamente volti a fornire soluzioni a tale sfida, richiedendo l’integrazione di conoscenze provenienti da settori eterogenei, dalla psicologia cognitiva, alla linguistica fino all’informatica.

In conclusione, la chiave per affrontare queste sfide risiederà, da un lato, nello sviluppare soluzioni avanzate che prendano ispirazione da diverse discipline, dalle neuroscienze alla psicologia cognitiva, fino alla linguistica e all’informatica, per rappresentare, comprendere e generare testo o parlato in linguaggio naturale in maniera similare all’uomo, e dall’altro, nell’avere a disposizione grandi quantità di dati, anche allineati tra differenti lingue, per addestrarne e validarne le prestazioni.

@RIPRODUZIONE RISERVATA

Articolo 1 di 3