di Federico Cussigh, Senior Partner IDSys e IBM Certified Specialist – contatti
Colmare l’ultimo miglio
Come ho già scritto nel mio precedente articolo, l’Era Cognitive porta in dote una serie di innovazioni tali da rivoluzionare il rapporto uomo-macchina. Lasciando per ora da parte gli scenari più estremi a volte dipinti a tinte fosche nei film di fantascienza, in realtà da quando i primi chatbot o i primi assistenti vocali degli smartphone (definiamoli per il momento software conversazionali) sono apparsi sul mercato, nel frattempo molti progressi sono avvenuti nella relazione uomo-macchina.
Nel tempo sono stati sviluppati vari tentativi per permettere alle macchine di rapportarsi con l’uomo in modo più efficace. Alcuni di questi tentativi hanno avuto esiti a volte anche comici… mi riferisco a certi assistenti vocali installati in passato in varie automobili che formalmente avrebbero dovuto assisterci nella guida, ma che in realtà non erano nemmeno in grado di capire gli ordini più elementari da noi impartiti.
Con questo articolo voglio fare il punto su una nuova serie di sistemi oggi disponibili sul mercato che sono finalizzati alla comprensione del linguaggio umano, sistemi che utilizzano le tecnologie tipiche dell’Era Cognitive per colmare in modo sostanzialmente diverso l’ultimo miglio, modificando come la macchina entra in comunicazione con l’uomo.
Come l’intelligenza artificiale Cognitiva interviene sulla comunicazione con l’uomo
Per le macchine Cognitive comprendere una sequenza di parole pronunciate o scritte da un uomo è un obiettivo minimale. Esse infatti fanno molto di più: hanno la capacità di approcciarsi alla relazione uomo-macchina potendo contare su un livello di conoscenza molto approfondito del linguaggio umano, tale da riuscire a capire il significato profondo di quanto comunicato dall’uomo.
Questi sistemi cognitivi vanno al di là della semplice comprensione delle sequenze di parole perché durante la loro formazione vengono eseguite due fasi ben distinte:
- per ogni lingua gestita viene svolta una prima fase di machine learning finalizzata allo studio semantico, dei vocabolari, dell’analisi logica e grammaticale, dei concetti tipici di alcuni settori e discipline scientifiche e di svariate fonti disponibili online/offline. Le parole vengono quindi studiate e categorizzate per quello che sono ed in relazione alle frasi all’interno delle quali esse compaiono.
- successivamente vengono apportate competenze fornite da esperti umani in svariate discipline tecniche, scientifiche, economiche, culturali, etc. con lo scopo di contestualizzare le parole all’interno di categorie. Vengono anche riconosciuti personaggi famosi, luoghi, eventi storici, relazioni tra soggetti, concetti astratti, etc.
In questo modo le parole vengono collegate ed analizzate all’interno dei contesti nelle quali esse sono state riscontrate considerando anche eventuali connessioni tra i vari contesti. Il tutto viene eseguito con l’assistenza fornita dall’intelligenza umana ed è anche grazie a questo apporto che sistema di NLP può essere definito come Cognitive.
I sistemi Cognitivi che si occupano di Natural Language Processing (NLP) si avvalgono di funzioni di:
- astrazione del linguaggio umano
- categorizzazione dei meta-concetti, identificando quelli più importanti
- identificazione delle entità coinvolte nella comunicazione
- identificazione delle parole chiave all’interno del testo
- identificazione delle opinioni
- identificazione del tono e dei sentimenti della comunicazione
- utilizzo di regole semantiche
- utilizzo di tecniche di Natural Language Understanding (NLU)
Questi sistemi vanno anche molto oltre: entro certi limiti e avendo a disposizione un sufficiente numero di parole scritte/dette da una persona, oggi è possibile estrarre dal testo anche informazioni su:
- le caratteristiche del profilo psicologico
- gli intenti e le caratteristiche comportamentali
di chi ha prodotto quei contenuti, informazioni queste che possono essere utilizzate al fine di arricchire ulteriormente il livello di comprensione di quanto comunicato da una persona.
Ribadisco ulteriormente che non si tratta infatti solo di individuare delle sequenze “già note” di parole, quanto di capire il significato che quelle parole assumono nel contesto in cui esse sono state proferite, in relazione alle persone coinvolte, ai toni assunti durante la comunicazione, etc.
Mi faccio aiutare da un esempio per cercare di spiegare in che modo una “parola” viene espansa e percepita da un sistema di NLP Cognitivo in base ai contesti.
Immaginiamo una persona che pronuncia la parola “Ciao” la quale viene percepita da un sistema di NLP Cognitivo. Tale parola, potrebbe essere riconosciuta come:
- presente nel linguaggio italiano come saluto
- già riscontrata in passato all’interno di una poesia che fa parte di un libro che contiene una intera raccolta di altre poesie
- tale libro a sua volta era inserito in uno scaffale, nelle cui vicinanze erano presenti dei mobili e suppellettili di arredamento che componevano un salotto
- che si trovava all’interno di una casa con un giardino
- e tale casa era localizzata in Italia, nel territorio europeo.
In questo caso la parola “Ciao” studiata durante la fase di machine learning viene “aumentata” di significato, in quanto essa viene messa in relazione a svariati contesti, entità, dettagli aggiuntivi, etc. E’ come se tali informazioni si stratificassero una dopo l’altra in una catena di relazioni.
Quindi il motivo per il quale un sistema di NLP è in grado di percepire in modo così “allargato” il linguaggio umano è determinato dalle due distinte fasi utilizzate durante l’apprendimento.
Ma quando il linguaggio utilizzato è molto specifico, come si fa?
Per permettere ad un sistema Cognitivo di comprendere dei linguaggi molto specifici come quelli tecnici, settoriali o in generale linguaggi non comuni, sono disponibili dei tool specifici che vengono utilizzati per insegnare al sistema NLP Cognitivo il “dialetto” parlato nel dominio su cui la macchina verrà chiamata ad operare.
Cerco di spiegarmi usando il concetto di “commessa”: cosa rappresenta per te una commessa?
Se hai:
- un background tecnico, probabilmente hai pensato ad un lotto di produzione di un’azienda metalmeccanica
- altrimenti avrai pensato ad una signora che lavora in un punto vendita
Entrambe le risposte sono giuste. Ma come fa un sistema Cognitive a capire se la commessa cui ti stai riferendo debba essere intesa come una signora o un lotto di produzione?
Tutto dipende dalla fase aggiuntiva di formazione che il sistema Cognitive ha subito per imparare un certo dialetto specifico. Essa permette di “insegnare” al sistema come:
- categorizzazione nuove parole/concetti/entità che sono specifiche di un nuovo dominio
- categorizzare significati alternativi per le parole già note, collegandole ad altri meta-concetti
- identificare entità aggiuntive coinvolte nella comunicazione
- creazione di nuove relazioni, etc.
La fase aggiuntiva di formazione si occupa quindi di “filtrare” alcuni contenuti “aggiungendone” di nuovi.
Tutto questo riguarda il nostro futuro? No, questo sta già accadendo oggi!
Già oggi le “macchine” (robot, automobili, impianti IOT domestici, software, chatbot, etc.) stanno iniziando ad interagire con l’uomo grazie all’intelligenza artificiale. Permettetemi però di segnalare che non tutte le tecnologie di “intelligenza artificiale” sono identiche: è obiettivamente molto più semplice porre ad un uomo una serie di domande “già preparate” e cercare di interpretare le relative risposte: infatti le possibili risposte ad una domanda pre-confezionata non sono poi moltissime e quantomeno il contesto nel quale la risposta verrà analizzata è già noto alla macchina che ha posto la domanda. E’ così che lavora l’intelligenza artificiale standard.
I sistemi Cognitivi invece sono in grado di fare cose molto più complesse, tipo:
- porre domande all’uomo di loro iniziativa al fine di ottenere maggiori informazioni
- tenere conto o meno di un determinato contesto o dominio specifico
- ricevere le risposte considerandole anche in base all’emozioni rilevate
- considerando nel contempo tutta una serie di informazioni “aggiuntive”
interagendo quindi con l’uomo in modo assolutamente più efficacie. Quando tutto ciò avviene, stiamo parlando di un sistema di Natural Language Processing Cognitivo evoluto.
Visto che un sistema di NLP Cognitivo è in grado di comprendere il linguaggio umano andando al di là delle mere parole utilizzate nella comunicazione, tra breve assisteremo ad uno sconvolgimento del modo con il quale tutti noi comunichiamo con le macchine: finalmente potremo sperare che queste diventino in grado di capire:
- cosa gli abbiamo detto (le parole)
- che cosa intendevamo in realtà dire (il significato).
Questo articolo è presente anche su LinkedIn…