La comunicazione umana è razionalmente codificabile?
5 min readNegli anni cinquanta, la programmazione logica, era la tecnologia più all’avanguardia. Una tecnologia che stava vivendo una fase di grande crescita e che attirava un forte interesse da parte delle aziende e delle università. La programmazione consiste nella stesura di una serie di istruzioni (righe di codice) che compongono l’algoritmo, il quale risolve svariati problemi, secondo un approccio logico: se si verifica questa condizione, allora agisci in questo modo. “Se piove prendi l’ombrello”.
Naturalmente potevano essere programmi molto lunghi ed elaborati, capaci di risolvere problemi anche complessi ma richiedevano una conoscenza precisa e rigorosa del problema, e quindi, di tutte le azioni da eseguire.
I problemi di cui si tentava di automatizzare la soluzione, in un certo senso, venivano elaborati da facoltà mentali come la razionalità, la logica ed il ragionamento. Tutte facoltà accessibili, almeno in buona parte, all’introspezione. Tuttavia, per queste facoltà, è possibile codificare il ragionamento umano e quindi descriverlo con una certa precisione. Altre nostre facoltà, invece, sono completamente inaccessibili all’introspezione. Questo significa che non sappiamo e non possiamo descrivere con precisione il modo con cui utilizziamo le nostre capacità; come ad esempio, distinguere i suoni della voce, riconoscere le immagini di un gatto o identificare un volto.
Nasce da qui un filone dell’automazione: l’intelligenza artificiale. Quella branca che si dedicò alla risoluzione di problemi difficilmente codificabili in quello che viene definito, in termini generali, “riconoscimento delle forme” (pattern recognition), cioè il riconoscimento di particolari “forme” di suono (nelle parole), di immagini, di movimenti o addirittura di odori.
Stando al riconoscimento del suono, l’attività che svolgiamo quotidianamente e che ci permette di trasferire i nostri pensieri, è la comunicazione. Oggi è quasi un’esperienza banale dialogare con il proprio smartphone con assistenti vocali come Alexa (Amazon), Siri (Apple), Cortana (Microsoft) o Google assistant per chiedere di comporre un numero di telefono, di inviare un messaggio o per richieste più fantasiose. Questi assistenti, quasi sempre rispondono a tono e capiscono cosa abbiamo detto in diverse lingue.
La sfida di riuscire a far capire a un computer il linguaggio umano, sia come testo sia come voce, è stata una delle più difficili nelle ricerche dell’intelligenza artificiale. Proprio perché il linguaggio umano funziona davvero bene e permette una comunicazione straordinariamente efficace, risulta essere un sistema estremamente complesso da razionalizzare.
Il linguaggio umano può essere considerato un sistema organizzato gerarchicamente su più livelli; partendo dal basso incontriamo i suoni che l’apparato vocale umano può emettere. La composizione di più suoni forma le parole e l’insieme delle parole (organizzate secondo precise regole) formano le frasi, il discorso, e quindi, il significato.
Ricapitolando, le varie discipline che formano lo studio del linguaggio sono:
Fonologia: studia i suoni;
Fonetica: studia come i suoni si compongono nelle parole;
Morfologia: studia come le parole si compongono e variano (singolare/plurale, coniugazione dei verbi);
Sintassi: studia la struttura delle parole, cioè le frasi (organizzati secondo regole);
Semantica: studia il significato delle frasi.
Esempio: “il cielo rosso senza colore urla silenziosamente” è una frase sintatticamente corretta ma non ha significato. Con l’analisi logica (la contraddizione fra rosso e senza colore, urla e silenziosamente) si può definirne il senso (o il non senso).
Soltanto da questo breve ed incompleto elenco delle discipline che affrontano il linguaggio ci si può fare un’idea della complessità del campo degli studi linguistici, anche senza doversi porre il problema di trasferire le capacità linguistiche ad una macchina.
Proprio per le difficoltà della sfida, inizialmente tutta la parte dei suoni e della voce, sia come comprensione sia come riproduzione, venne abbandonata dai pionieri dell’intelligenza artificiale che si dedicarono, negli anni sessanta, all’impresa che sembrava più semplice: la traduzione da una lingua ad un’altra. In fondo che ci vuole, basta caricare le parole del dizionario nella memoria dei (preistorici) computer con l’aggiunta di qualche piccolo ritocco sintattico, e voilà, la traduzione è fatta.
In realtà, basta provare uno dei migliori traduttori di oggi, quello di Google, per rendersi conto di quanto le speranze ed, in certi casi, l’euforia per qualche risultato incoraggiante non fossero – a quei tempi – del tutto ben riposte.
Dopo varie delusioni, i tentativi di automatizzare la traduzione da una lingua all’altra, vennero molto ridimensionati. Alcuni rapporti, come quello dell’accademia delle scienze Americana del 1966, concludevano che non c’era “allo stato attuale nessuna immediata o prevedibile prospettiva di traduzione automatica”.
Il problema di fondo era che le macchine non avevano quel bagaglio di conoscenza che serve nella traduzione per porre nell’esatto contesto le parole. Ecco un esempio: “Oggi ho trovato un posto nel parcheggio per il mio veicolo ma era troppo piccolo”. Per noi il senso è ovvio; è il posto ad essere troppo piccolo (non il veicolo). Per un computer, invece, privo di conoscenza riguardo alle dimensioni del veicolo e quelli del parcheggio, il dilemma sarebbe irrisolvibile. Probabilmente non ha la benché minima idea di cosa sia un parcheggio e dotare gli algoritmi di una conoscenza enciclopedica, soprattutto in tempi remoti, sembrava una missione impossibile.
Ora cerchiamo di arrivare ad una soluzione. Se doveste spiegare a qualcuno, che sia una macchina o una persona, come tradurre una frase da una lingua ad un’altra, come fareste?
La prima soluzione prevede di descrivere punto per punto tutti i passaggi necessari per analizzare la frase in input e tradurla (approccio logico della programmazione). Come abbiamo visto, però, è una strada assolutamente impraticabile. Oppure – e questa è la seconda strada – si possono fornire tantissimi esempi di traduzione di parole e frasi, sperando di coprire il ventaglio più ampio possibile di casi che si presentano in una traduzione.
D’altronde, quale miglior approccio all’apprendimento per l’essere umano se non quello degli esempi. Immaginiamo di dover spiegare ad una persona che non ha mai visto il colore verde che cosa sia il colore verde. Questo problema è, dal punto di visto logico e razionale, complicatissimo ma si può risolvere semplicemente mostrandogli esempi di oggetti di colore verde.
Quanto appena descritto, è il metodo principale che negli anni è stato usato dai ricercatori di AI per risolvere moltissimi problemi, tra i quali quello della traduzione. Ed è per questo motivo che, fino a pochi anni fa, i traduttori automatici non funzionavano molto bene. La tecnica logico-razionale, applicata ai problemi ben posti e privi di ambiguità, funziona molto bene; non si è dimostrata efficace, invece, per un compito del genere. Fortunatamente qualcuno ha cominciato ad investire nel machine learning.
Link utili:
Piattaforma dove è possibile dialogare con un algoritmo
Language and Machines
Pensiero lento e pensiero veloce
Sono un ricercatore presso Co.Mac – CFT, un importante gruppo italiano che opera nell’ambito degli impianti industriali. Laureato in ingegneria Meccanica con specializzazione in Meccatronica al Polimi. Attualmente studio automazione con particolare focus verso gli algoritmi di intelligenza artificiale e le sue applicazioni nel mondo reale.
Comunicare significa donare parte di noi stessi, ed è questo il motivo per cui la divulgazione scientifica è una delle mie più grandi passioni.