Le sottigliezze del linguaggio: l’ultimo venti percento

Riflettere su che cosa un programma informatico dovrebbe sapere per comprendere un testo o una conversazione, mi fa venire in mente quando cerchiamo di rispondere alle infinite domande che i bambini ci fanno da piccoli.

Pensate al vostro figlio che vi pone una semplice domanda: «Cos’è una banca?» La vostra risposta innesca una cascata, che sembra non poter avere mai fine, di “perché?”

 «Perché la gente usa i soldi?»; «perché la gente vuole avere un sacco di soldi?»; «perché la gente non può tenersi i soldi a casa?»; «perché non posso farmi da solo i miei soldi?» Tutte belle domande, ma a cui è difficile rispondere senza dover spiegare tutto quel genere di cose che esulano dall’esperienza di un bambino di quattro anni. 

Non dovrebbe dunque stupirci che usare e capire il linguaggio naturale sia una delle sfide più complicate per l’AI. Il linguaggio è intrinsecamente ambiguo, dipende strettamente dal contesto, e presume una grande quantità di conoscenze di fondo condivise dalle parti che comunicano.

Come per altre aree dell’IA, i primi decenni della ricerca sull’NLP (Natural Language Processing) si sono concentrati su approcci basati su regole — vale a dire programmi nei quali erano integrate regole grammaticali e linguistiche che essi applicavano a frasi di input. Questi approcci non hanno funzionato particolarmente bene. A quanto pare è impossibile cogliere le sottigliezze linguistiche applicando un insieme di regole esplicite.

Negli anni Novanta, gli approcci dell’Nlp basati su regole furono eclissati da metodi statistici più efficaci, che impiegavano enormi dataset per addestrare algoritmi di machine learning. Più recentemente, questa impostazione statistica basata sui dati si è concentrata sul deep learning. E dunque, può il deep learning, insieme ai Big Data, produrre macchine capaci di gestire il linguaggio umano in modo flessibile e affidabile? 

Se vi è capitato di usare, prima e dopo il 2012, una qualsiasi tecnologia di riconoscimento vocale, avrete notato un deciso miglioramento. Il riconoscimento vocale, che prima del 2012 da terribilmente frustrante poteva arrivare al massimo a moderatamente utile, era all’improvviso diventato in talune circostanze quasi perfetto: ora possiamo dettare i testi e le e-mail all’applicazione di riconoscimento vocale direttamente dal nostro smartphone.

Ciò detto, al contrario di quanto riportano alcuni media, il riconoscimento vocale automatico non ha ancora raggiunto un livello umano. Il rumore di fondo può alterare significativamente l’accuratezza di questi sistemi; sono molto meno efficaci dentro un’automobile in movimento che in una stanza silenziosa; sono talvolta disorientati da parole o da frasi insolite, a conferma del fatto che non capiscono il parlato che loro stessi stanno trascrivendo.

Qualsiasi complesso progetto di ingegneria contempla una ben nota regola empirica: il primo 80 per cento del progetto richiede il 20 per cento del tempo e l’ultimo 20 per cento ne richiede il’80. Il principio di pareto vale anche nel campo dell’IA (con buona pace dei sistemi che attualmente funzionano abbastanza bene) e varrà anche per il riconoscimento vocale.

L’ultimo 20 per cento include il dover gestire non soltanto il rumore, accenti non familiari e parole sconosciute, ma anche il fatto che l’ambiguità e la sensibilità al contesto del linguaggio possono interferire nell’interpretazione del parlato.

Classificare i sentimenti. 

Come primo esempio, diamo uno sguardo all’ambito conosciuto come classificazione dei sentimenti. Consideriamo queste brevi recensioni del film Indiana Jones e il tempio maledetto

«La trama è pesante e manca terribilmente di senso dell’umorismo».
«Un pò troppo cupo per i miei gusti». 
«Dà l’idea che i produttori abbiano voluto renderlo il più inquietante e spaventoso possibile». 
«Lo sviluppo e l’ironia del personaggio sono decisamente inferiori alla media». 
«L’atmosfera ha un che di strano e contiene spesso un umorismo che su di me non ha funzionato». 
«Manca il fascino o l’umorismo che permea gli altri film della serie». 

In ciascuno dei casi sopracitati il film è piaciuto al recensore? 
Un sistema di IA che sapesse classificare accuratamente una frase (o un testo più lungo) in base al sentimento che esso esprime – positivo, negativo o di altro tipo – sarebbe oro colato per le aziende che vogliono analizzare i commenti dei clienti sui propri prodotti, per trovare nuovi potenziali clienti, per rendere automatici i consigli dei prodotti (“alle persone che è piaciuto X piace anche Y”) o per indirizzare selettivamente le proprie pubblicità online.

I dati su film, libri e altri articoli preferiti da una persona possono essere sorprendentemente (e forse paurosamente) utili per prevedere i suoi acquisti futuri. Non solo, tali informazioni potrebbero avere un potere predittivo su altri aspetti della sua vita, come le probabili tendenze di voto e la sensibilità rispetto a certi notizie o di spot elettorali. Inoltre, diversi sono stati i tentativi, più o meno di successo, di utilizzare “l’estrazione dei sentimenti” (sentiment mining) – da tweet di natura economica per esempio – per predire le quotazioni in borsa e i risultati elettorali. 

I primi sistemi di Nlp andavano perlopiù in cerca di singole parole, o di brevi sequenze di parole, come indizi del sentimento di un testo. Per esempio, vi aspettereste che parole come cupo, strano, pesante, inquietante, orribile, carente e insufficiente siano indicatori di sentimenti negativi nelle recensioni del film.

In alcuni casi tutto questo funziona; in molti altri però tali sequenze trovano spazio anche in recensioni positive. Ecco alcuni esempi: 

«Nonostante la pesantezza dell’argomento, vi è umorismo a sufficienza per evitare che diventi troppo cupo». 
«Qui non vi è nulla di inquietante o di orribile come taluni hanno osservato».
«Se non lo vedi, non sai cosa ti perdi!» 

Considerare singole parole o brevi sequenze isolate non è in genere sufficiente per cogliere il sentimento complessivo: è necessario afferrare la semantica delle parole nel contesto dell’intera frase.

Quando parliamo di spazi semantici a più dimensioni, ci ritroviamo nel mondo della geometria. In effetti, nel campo dell’Nlp spesso si inquadra il significato delle parole entro concetti geometrici. La distanza semantica tra due parole è equiparata alla distanza geometrica tra i punti nello spazio multidimensionale.

L’idea alla base è che, una volta che tutte le parole del vocabolario sono state collocate adeguatamente nello spazio semantico, il significato di una parola può essere rappresentato dalla sua posizione nello spazio, ossia dalle coordinate che definiscono il suo vettore.

E a che cosa serve un vettore? Risulta che l’uso di vettori di parole come input numerico per rappresentare parole – a differenza dell’approccio a regole grammaticali – aumenta notevolmente la prestazione delle reti neurali nei compiti riguardanti la comprensione del testo. 

Il metodo oggi maggiormente adottato è stato proposto nel 2013 dai ricercatori di Google, denominato “word2vec” (abbreviazione di word to vector, conversione di parole in vettori). Il metodo impiega una rete neurale tradizionale per imparare automaticamente vettori corrispondenti a tutte le parole di un vocabolario. Ma in quale misura lo spazio semantico creato da word2vec coglie realmente la semantica delle parole? 

È una domanda alla quale è difficile dare una risposta, dato che non possiamo visualizzare lo spazio semantico a più di tre dimensioni appreso da word2vec. Possiamo però fare qualcosa per scrutare dentro a questo spazio. Per esempio, possiamo prendere una parola e trovare le parole che risultano più vicine a questa nello spazio semantico, considerando le distanze tra vettori di parole.

Per esempio, dopo che la rete è stata addestrata, le parole più vicine a Francia includono Spagna, Belgio, Paesi Bassi, Italia, Svizzera, Lussemburgo eccetera. All’algoritmo di word2vec non era stato suggerito il concetto di Paese né di Paese europeo; sono semplicemente le parole che compaiono nei dati di addestramento in contesti simili a Francia, proprio come hamburger e hot dog. In effetti, se domando quali sono le parole più vicine ad harmburger, la lista include burger, cheeseburger, sandwich, hot dog e patatine fritte.

Questo approccio vettoriale ha fatto pensare che word2vec potrebbe risolvere problemi di analogia come «Uomo sta donna come re sta a …». L’algoritmo prevede con alta probabilità il termine “regina”. Tale metodo produce spesso ottimi risultati: «Cera sta a sera come colazione sta a mattino», ma altrettanto spesso i risultati sono criptici: «Sete sta al bere come stanco sta a ubriaco» o decisamente assurdi: «Pesce sta ad acqua come uccello sta a idrante». 

Ora come ora, quasi tutti i sistemi di Nlp usano un qualche metodo statistico basato sui vettori (word2vec è solo uno di essi) come modo per introdurre parole nei testi. 

Diversi gruppi di ricerca hanno dimostrato, in modo forse poco sorprendente, che tali vettori colgono i pregiudizi insiti nei dati del linguaggio che li producono. Ecco, come esempio, un problema di analogia: «Uomo sta a donna come programmatore informatico sta a …

Se risolvete questo problema tramite i sistemi utilizzati da Google, la risposta sarà “casalinga”. Il problema inverso: «donna sta a uomo come programmatore informatico sta a … darà “ingegnere meccanico”. Ed ecco un altro caso: «Uomo sta a genio come donna sta a …». Risposta: “musa”. E che dire di «donna sta a genio come uomo sta a …»? Risposta: “geni”. Alla faccia di decenni di femminismo!

Non possiamo certamente incolpare i vettori che si limitano a catturare il sessismo o altri pregiudizi presenti nel nostro linguaggio che riflettono a loro volta i pregiudizi della nostra società. Ma per quanto incolpevoli possano essere, i vettori sono una componente essenziale di ogni sistema di Nlp odierno, dal riconoscimento vocale alla traduzione.

I pregiudizi nei vettori di parole potrebbero infiltrarsi e produrre pregiudizi inattesi, difficili da predire in applicazioni di Nlp ampiamente usate.
Gli scienziati che indagano tali pregiudizi stanno appena iniziando a capire quali sottili effetti questi pregiudizi potrebbero avere sugli output dei sistemi di Nlp; e diversi gruppi stanno lavorando ad algoritmi volti a liberare dai pregiudizi i vettori di parole.
Si tratta di una sfida complicata. Probabilmente però non così difficile quanto l’altra, quella di liberare dai pregiudizi il linguaggio e la società.

Cosa è necessario applicare per superare quell’ultimo tosto 20 per cento? Più dati? Più strati nelle reti neurali? Oppure, oserei dire, quell’ultimo 20 per cento richiederà una reale comprensione di quello che il soggetto parlante sta dicendo? 

Lascia un commento