Frontiere Della Comunicazione: Linguaggio E Intelligenza Artificiale

by Silvia Mazzetta Date: 19-01-2021 IA linguaggio comunicazione Google Facebook


Nel libro "Come la vita imita gli scacchi" Garry Kasparov racconta la sua storia e le sue memorabili partite contro Karpov o Deep Blue.

Deep Blue, come veniva chiamato il programma sviluppato da IBM, ha disputato due partite contro il campione del mondo di scacchi alla fine degli anni Novanta. La prima partita si è svolta a Philadelphia nel 1996. La grande precisione della macchina ha consentito alcune vittorie, ma non è stata sufficiente per sconfiggere la strategia di Kasparov, che ha permesso la vittoria del primo incontro uomo/macchina.

Un anno dopo si giocò la seconda partita, il grande duello nella storia degli scacchi.

La partita, si concluse con la vittoria dei Deep Blue, nonostante le mosse irregolari di Kasparov impegnato nella ricerca della nuova vittoria.

Proprio come nel Gioco dell'imitazione di cui parla il matematico A. Turing.

Deep Blue si è nutrito di codici di conoscenza attraverso l'imitazione delle mosse di Kasparov.

Negli ultimi anni, gli algoritmi di Deep learning si sono evoluti per essere in grado di battere i migliori giocatori del mondo ai giochi da tavolo e riconoscere i volti con la stessa precisione di un umano (o forse anche meglio).

Non possiamo evitare di menzionare il ruolo che l'Intelligenza Artificiale sta giocando durante la pandemia COVID-19. Un esempio di ciò sono state le diverse tecnologie e applicazioni che sono state utilizzate in Asia, soprattutto in Cina, per accelerare il sequenziamento del genoma.

Tuttavia, padroneggiare le complessità uniche e di vasta portata del linguaggio umano rimane una delle sfide più difficili dell'IA.

Il prossimo passo per l'evoluzione umana?

Immaginate di essere in una stanza, da soli.

La stanza non ha né finestre né porte, solo un piccolo foro in una delle pareti e scaffali pieni di libri.

I libri sono scritti con strani simboli che sono accompagnati da istruzioni in inglese per trasformarli in altri simboli altrettanto strani.

Improvvisamente, un pezzo di carta cade dal buco. Lo prendete. Contiene una serie di simboli che non capite, simili a quelli che si trovano nei libri. Sfogliate le pagine di ogni libro fino a trovare i caratteri che corrispondono e seguite le istruzioni, che vi dicono cosa scrivere sotto il messaggio originale e che dovete rimettere la carta nel buco.

Seguite le istruzioni alla lettera.

Dall'altra parte della sala ci sono alcuni cinesi, che hanno appena ricevuto una risposta perfetta alla domanda che hanno posto. Arrivano alla logica conclusione che nell'altra stanza sia presente una persona di madrelingua cinese.

Solo che noi lo sappiamo che non è così.

Questo è un esperimento mentale molto dibattuto conosciuto come la "stanza cinese".

Fu proposto dal filosofo John Searle nel 1980. Nell'esperimento, i libri danno semplicemente istruzioni su come ricevere un'informazione, manipolare i personaggi in base alle relazioni che hanno tra loro e fornire un risultato, non sono dizionari.

I libri si comportano come un programma del computer.

Searle riteneva che il test di Turing fosse inaffidabile nel testare l'intelligenza delle macchine. Qualsiasi programma di IA potrebbe imparare le regole di una lingua e dare l'impressione di avere la stessa conoscenza della lingua di un madrelingua.

Queste interazioni tra computer e lingue umane sono alla base dell'elaborazione del linguaggio naturale o PNL: il riconoscimento vocale, nella sintesi del testo, l'analisi dei sentimenti, la traduzione automatica, sono migliorati molto dagli anni Ottanta.

Oggigiorno i traduttori più famosi riescono a tradurre abbastanza bene le espressioni idiomatiche.

Ma come fanno?

Cosa significano parole e frasi per un computer che capisce solo zeri e uno?

Anche se i computer non capiscono il linguaggio allo stesso modo in cui lo comprendono gli esseri umani, addestrarli ad imparare non è poi così diverso dalla nostra esperienza di apprendimento della lingua. Se si insegnano abbastanza modelli ed esempi ad un computer, questo comincerà a riconoscere i modelli.

Ma qual è il sostituto della comprensione umana? Le matrici di parole, che sono le unità fondamentali di qualsiasi compito di elaborazione del linguaggio naturale.

Una matrice di parole è fondamentalmente una sequenza di numeri che memorizza informazioni sul significato della parola.

Le matrici delle parole catturano efficacemente qualcosa chiamato "ipotesi distributiva", un concetto che il linguista britannico John Rupert Firth ha definito molto bene nella sua opera del 1957, "A synopsis of lingustic theory".

"Per conoscere una parola, osserva le parole che la accompagnano".

Il campo della semantica distributiva sostiene che parole e frasi che appaiono in contesti simili (distribuzioni simili) hanno significati simili.

La capacità dei computer di comprendere efficacemente tutto il linguaggio umano trasformerebbe completamente il modo in cui ci relazioniamo con marchi, aziende e organizzazioni in tutto lo scibile.

I metodi di calcolo delle matrici di parole si basano proprio su questo: sull'idea che il contesto di una parola può aiutarci a determinare il significato di quella parola se vediamo un numero sufficiente di esempi variegati.

Infine, arriviamo a veri e propri algoritmi di calcolo a matrice di parole, come Word2Vec, sviluppati da Tomas Mikolov e dai suoi colleghi ricercatori di Google nel 2013.

L'obiettivo principale dell'algoritmo è, per una data parola, prevedere le parole vicine utilizzando una grande quantità di testo come dati di formazione.

Oggigiorno, la maggior parte delle aziende non ha il tempo di rispondere a tutte le richieste dei clienti. Ma immaginate se un'azienda potesse davvero ascoltare, capire e rispondere ad ogni domanda, in qualsiasi momento e su qualsiasi canale (alzate la mano se avete Alexa in casa o in ufficio).

Ci è voluto fino al 2015 per costruire un algoritmo in grado di riconoscere i volti con una precisione paragonabile a quella umana. DeepFace di Facebook è accurato al 97,4%, poco meno del 97,5% delle prestazioni umane. Come punto di riferimento, l'algoritmo di riconoscimento facciale dell'FBI è accurato solo all'85%, il che significa che è ancora difettoso in più di un caso su sette.

L'algoritmo dell'FBI è stato realizzato a mano da un team di ingegneri. Ogni caratteristica, come la dimensione di un naso e la relativa posizione degli occhi, è stata programmata manualmente. L'algoritmo di Facebook funziona con funzioni apprese passo dopo passo. Facebook ha usato una speciale architettura di apprendimento profondo chiamata Convolutional Neural Networks (Reti Neurali Convoluzionali) che imita il modo in cui i diversi strati della nostra corteccia visiva elaborano le immagini. Poiché non sappiamo esattamente come vediamo, le connessioni tra questi strati vengono apprese dall'algoritmo.

Facebook è riuscito a raggiungere questo obiettivo perché ha scoperto come mettere in atto due componenti essenziali dell'IA a livello umano: un'architettura in grado di imparare le funzionalità e dati di alta qualità taggati da milioni di utenti che avevano taggato i loro amici nelle foto condivise.

Il linguaggio: questo sconosciuto

La visione, è un problema che l'evoluzione ha risolto in milioni di specie diverse, ma il linguaggio sembra essere molto più complesso. Per quanto ne sappiamo, siamo attualmente l'unica specie che comunica con un linguaggio complesso.

Come abbiamo già accennato, meno di dieci anni fa, gli algoritmi contavano solo la frequenza di alcune parole.

Ma questo approccio ignora chiaramente il fatto che le parole hanno dei sinonimi e hanno un significato solo se si trovano all'interno di un certo contesto.

Nel 2013, l'algoritmo word2vec di Tomas Mikolov ha mappato i sinonimi : è stato in grado di modellare il significato come dimensione, genere, velocità, e persino di imparare relazioni funzionali come i paesi e le loro capitali.

Il pezzo mancante, tuttavia, era il contesto.

La vera svolta in questo campo è arrivata nel 2018, quando Google ha introdotto il modello BERT.

Jacob Devlin e il suo team hanno riciclato un'architettura tipicamente usata per la traduzione automatica e le hanno fatto imparare il significato di una parola in relazione al suo contesto in una frase.

Insegnando al modello a riempire le parole mancanti negli articoli di Wikipedia, il team è stato in grado di incorporare la struttura linguistica nel modello BERT. Con una quantità limitata di dati di alta qualità, sono stati in grado di mettere a punto il BERT per una moltitudine di compiti che vanno dalla ricerca della risposta giusta a una domanda alla comprensione effettiva di cosa sia una frase. Sono stati i primi ad individuare i due elementi essenziali per la comprensione della lingua: la giusta architettura e una grande quantità di dati di alta qualità da cui imparare.

Nel 2019 i ricercatori di Facebook sono riusciti ad andare ancora oltre. Hanno formato un modello simile al BERT in oltre 100 lingue contemporaneamente. Il modello è stato in grado di imparare alcune attività in una lingua, ad esempio in inglese, e di utilizzarlo per lo stesso compito in una qualsiasi delle altre lingue, come l'arabo, il cinese e l'hindi. Questo modello linguistico-agnostico si comporta esattamente come il BERT nella lingua in cui è addestrato e ha un impatto limitato quando si passa da una lingua all'altra.

Tutte queste tecniche sono davvero impressionanti di per sé, ma all'inizio del 2020 i ricercatori di Google sono stati finalmente in grado di superare le prestazioni umane su una vasta gamma di attivitá di comprensione della lingua.

Google ha spinto l'architettura del BERT ai suoi limiti addestrando una rete molto più grande con ancora più dati.

Il cosiddetto modello T5 supera ora gli esseri umani nell'etichettare le frasi e nel trovare le risposte giuste a un quesito. Il modello mT5 è praticamente equivalente a degli esseri umani bilingui nel passaggio da una lingua all'altra, ma può farlo con più di 100 lingue contemporaneamente.

Possibilità

Immaginate un robot che risponde ad una chat e che è in grado di capire quello che si scrive in qualsiasi lingua. Capirà il contesto e ricorderà le conversazioni precedenti. Si otterranno risposte che non generiche, ma precise ed esaurienti.

I motori di ricerca saranno in grado di capire qualsiasi domanda. Forniranno le risposte giuste e non si dovranno nemmeno usare le parole chiave giuste. Avrete un collaboratore virtuale che saprà tutto quello che c'è da sapere sulle procedure della vostra azienda (o un'assistente in casa).

Emergerà una nuova era di banche dati.

Eventuali promemoria, e-mail, rapporti, ecc. saranno automaticamente interpretati, memorizzati e indicizzati.

E questa è solo la punta dell'iceberg. Qualsiasi procedura che attualmente richiede ancora la comprensione del linguaggio da parte di un essere umano sta per essere superata e automatizzata.

Vi sembra un film di fantascienza?

Purtroppo (o no) è la realtà.

Fonti:

Language AI is really heating up, Pieter Buteneers is Director of Engineering in Machine Learning and AI

 A synopsis of lingustic theory, 1957, John Rupert Firth

Palabra de Robot, Inteligencia Artificial y comunicación, 2006,Óscar Villarroya

 
by Silvia Mazzetta Date: 19-01-2021 IA linguaggio comunicazione Google Facebook visite : 481  
 
Silvia Mazzetta

Silvia Mazzetta

Web Developer, Blogger, Creative Thinker, Social media enthusiast, Italian expat in Spain, mom of little 6 years old geek, founder of  @manoweb. A strong conceptual and creative thinker who has a keen interest in all things relate to the Internet. A technically savvy web developer, who has multiple  years of website design expertise behind her.  She turns conceptual ideas into highly creative visual digital products. 

 
 
 

Articoli correlati

Un approccio a Java: switch statement

Ciao a tutti e bentornati! Dopo una pausa, torniamo oggi con un'altra parte del corso introduttivo alla programmazione, parlando di switch statement, conosciuto anche come costrutto di selezione multipla.  Intuizione L'idea dello switch statement…

Un approccio a Java: Il ciclo while

Ciao a tutti e bentornati! Dopo aver fatto una breve, ma corposa, introduzione sui cicli, andiamo oggi a vedere finalmente le prime implementazioni che utilizzano quello che abbiamo definito ciclo precondizionale. In Java, come…

Un approccio a Java: I cicli - Introduzione

Ciao a tutti e bentornati! Sino ad ora, abbiamo parlato di variabili e di strutture di selezione, andando a considerare alcuni degli aspetti fondamentali di questi due concetti. Teoricamente, per…

Un approccio a Java: strutture di selezione - casi d'uso

Ciao a tutti e bentornati! Sino ad ora ci siamo preoccupati di fare una carrellata quanto più completa riguardo i concetti fondamentali di cui abbiamo bisogno per approcciarci all'utilizzo delle…

Un approccio a Java: operatori booleani

La volta precedente, abbiamo ampiamente parlato delle variabili booleane, cercando di delineare quali siano le principali operazioni che si possono effettuare proprio a livello pratico.  Di tutti i casi esaminati, non abbiamo…

Un approccio a Java: le variabili booleane

Ciao a tutti e bentornati! La volta precedente, ho fatto un'introduzione alle strutture condizionali, definendo il loro funzionamento. Prima di poter dare qualche esempio pratico, è necessario chiarire in che modo ci…

Un approccio a Java: strutture condizionali

Ciao a tutti e bentornati! Le volte precedenti abbiamo introdotto il concetto di variabile, tentando di definire alcuni concetti basilari a riguardo.  Alcune situazioni fanno però intuire come il solo concetto…

Un approccio a Java: Le variabili - caso d'uso

Ciao a tutti amici e bentornati! Dopo l'introduzione fatta sulle variabili, cerchiamo di analizzare alcune criticità che si possono presentare in situazioni alquanto comuni. Partiamo quindi analizzando degli esempi pratici.  Esempio 1: divisione…

Un approccio a Java: Le variabili

Ciao a tutti e bentornati! Quest'oggi inizieremo un percorso che ci porterà a studiare, ed eventualmente ripassare, quelle che sono le basi della programmazione. Inizieremo parlando di variaibli. Introduzione Chiunque voglia approcciarsi al…

Hashmap con Concatenamento: hashing, collisioni e prime funzioni

Oggi andremo a vedere dei concetti strettamente legati alle hashmap. I concetti che andremo a vedere sono quelli di hashing e collisioni. Hashing L'idea dell'hashing con concatenamento è quella di creare una sorta di array di…

Hashmap con concatenamento: liste di trabocco

In questa breve serie di articoli andremo a vedere com'è possibile realizzare in C la struttura dati Hashmap. Nell'implementazione andremo ad usare le liste doppiamente concatenate come strutture dati ausiliarie. Andiamo…

Come eseguire il backup delle foto e dei video di Facebook su Google Photos

Sebbene Instagram o TikTok siano attualmente due dei social network più utilizzati, la verità è che Facebook ha ancora molti utenti attivi da anni. Sia che siate un utente veterano…

Utilizziamo i nostri cookie e quelli di terzi per migliorare i nostri servizi, compilare informazioni statistiche e analizzare le vostre abitudini di navigazione. Questo ci permette di personalizzare i contenuti che offriamo e di mostrarvi le pubblicità relative alle vostre preferenze. Cliccando su "Accetta tutto" acconsentite alla memorizzazione dei cookie sul vostro dispositivo per migliorare la navigazione del sito web, analizzare il traffico e assistere le nostre attività di marketing. Potete anche selezionare "Solo cookies di sistema" per accettare solo i cookies necessari al funzionamento del sito web, oppure potete selezionare i cookies che desiderate attivare cliccando su "Impostazioni". Tradotto con www.DeepL.com/Translator (versione gratuita)" o "Rifiuta".

Accetta tutti Solo cookies del sistema Configurazione