SlideShare a Scribd company logo
1 of 6
Download to read offline
Kea s.r.l. | Via Strà, 102 | 37042 Caldiero (VR)
Tel.: +39 045 6152381
Web: www.keanet.it | E –mail: info@keanet.it
1
Dialogare con le macchine in linguaggio
naturale... Finalmente! Ma ci voleva tanto?
La storia del Natural Language Processing (NLP) parte negli anni Cinquanta del secolo scorso, ma fino a una
decina di anni fa traduzioni automatiche, chatbot e assistenti vocali erano perlopiù fonte di ilarità o
frustrazione, mentre ora - superato il magico stupore iniziale - dialogare in linguaggio naturale con una
macchina è una comune esperienza quotidiana - che sia Google Translate, Alexa, ChatGPT o il chatbot di un
sito, ecc. Come dire: “Finalmente le macchine hanno imparato a parlare la nostra lingua! Ci voleva tanto?”.
Sì, tantissimo: il linguaggio è un fenomeno molto complesso - perché intrinsecamente legato all’umana
esperienza del mondo, a livello personale, relazionale, socio-culturale e storico -, un fenomeno che
padroneggiamo con naturalezza, ma che abbiamo dovuto anzitutto capire come rendere “comprensibile”
alle macchine. Padroneggiare il linguaggio non significa solo conoscere il significato delle parole e le
regole sintattico grammaticali di una lingua, significa anche e soprattutto come generare senso mediante
questi utensili linguistici. La questione centrale è come rendere “comprensibili” alle macchine i sistemi di
produzione di senso in assenza del fatto che le macchine possano basarsi sul contesto esperienziale e
relazionale che guida l’umana comprensione delle eccezioni, delle ambiguità, della semantica e della
pragmatica della lingua.
Comprensibile è fra virgolette, perché la comprensione del linguaggio da parte della macchina è simulata:
usando strumenti matematici siamo riusciti a mettere la macchina nella condizione di ascoltarci e parlarci
come se il linguaggio naturale fosse il nostro terreno comune. Non lo è, perché il risultato è originato da
processi profondamente diversi fra loro e ha un significato profondamente diverso per l’umano e per la
macchina; ma al tempo stesso lo è, perché il livello del dialogo è già oggi strabiliante.
Grazie a interessanti letture sul tema (mi sono stati particolarmente utili Machine Learning Algorithms
Simplified di Lino A Tharakan e Introduction to Natural Language Processing with Transformers: Decoding
Language with AI edito da Cuantum Technologies) ho cercato di capirne di più su come siamo arrivati ai
risultati attuali del NLP e quali sono le prospettive future. Avendo una formazione umanistica, con
rammarico mi è precluso l’accesso diretto alla matematica che sta alla base delle rivoluzioni ed evoluzioni
del NLP, ma ho fatto del mio meglio per cogliere le logiche generali, che spero possano risultare utili.
Partiamo dal presupposto che gli aspetti che il NLP deve considerare sono molteplici:
• Fonetico e fonologico (rilevante nelle applicazioni speech-to-text e viceversa)
• Morfologico della parola
• Sintattico e grammaticale della frase
• Semantico del contesto parole/frasi
• Pragmatico dell’uso del linguaggio in un determinato ambito.
Kea s.r.l. | Via Strà, 102 | 37042 Caldiero (VR)
Tel.: +39 045 6152381
Web: www.keanet.it | E –mail: info@keanet.it
2
Agli albori del NLP furono i sistemi basati su regole, cioè il tentativo di insegnare alla macchina una lingua
codificandone tutti gli aspetti.
Questo approccio richiede moltissimo lavoro umano, garantisce accuratezza, ma non mette la macchina
nelle condizioni di gestire in modo autonomo la complessità del linguaggio, né tanto meno di attingere al
livello semantico e pragmatico.
La rivoluzione fu di approcciare i problemi linguistici come problemi matematici.
In questo approccio - seguito dal Machine Learning, dalle Recurrent Neural Networks e dai Transformer
Models di cui parleremo in seguito - il Text Preprocessing è cruciale ai fini dell’elaborabilità del testo da
parte dei modelli (intesi come rappresentazione matematica di un processo del mondo reale con l’obiettivo
di eseguire previsioni, comunque intese, il più possibile accurate).
Nell’ambito del NLP il Text Preprocessing è finalizzato a:
• Eseguire attività di Truncation o Padding (normalmente i modelli si aspettano frasi tutte di
lunghezza uguale, predefinita. Le frasi più lunghe possono essere troncate oppure si possono
allungare ad arte le frasi più brevi, usando es. il token PAD e istruendo poi il modello a non
considerare questo token come una parola valida ai fini dell’elaborazione testuale)
• Pulire il testo da caratteri, simboli e parole non funzionali alla “comprensione” del testo da parte
della macchina, es. le Stop Words (codificati per molte lingue) che occorrono spesso senza
apportare contributi semantici o pragmatici decisivi
• Eseguire attività di Stemming e Lemmatization (riduzione della parola alla forma radice, es. ridurre
running a run, e alla sua forma canonica, es. ridurre better a good)
• Convertire tutto il testo in lettere minuscole
• Tokenizzare, suddividendo il testo in segmenti più piccoli, es. singole lettere, gruppi radicali (che
supportano il tentativo della macchina di dedurre il significato di parole non presenti nel suo
vocabolario da altre presenti e affini) o parole intere
• Codificare il testo in formato numerico, es. sotto forma di Word Embeddings. Modelli come
Word2Vec e Glove codificano le parole come vettori che ne rappresentano le caratteristiche es.
morfologiche, sintattiche, semantiche e - nel caso dei Transformer Models - anche la posizione
della parola nella frase (Positional Encoding). Nello spazio vettoriale in cui il modello le proietta,
parole con caratteristiche simili sono vicine, aiutando la macchina a “comprendere” la relazione fra
le parole, e quindi in una certa misura anche a “comprendere” anche concetti e topics.
La rappresentazione vettoriale delle parole è un aspetto importante anche per comprendere il
funzionamento delle nuove versioni dei motori di site search per e-shop e knowledge base. Questi motori
tendono a integrare la ricerca basata su Large Language Models (LLMs) con quella classica su database: la
ricerca basata su LLMs migliora la completezza dei risultati, poiché la macchina restituisce risultati anche
per parole simili a quelle cercate dall’utente, parole che afferiscono allo stesso torno concettuale e
tematico; la completezza ottenibile mediante la ricerca vettoriale, però, va a discapito della precisione che
necessita dell’integrazione della ricerca su database per poter essere recuperata.
Kea s.r.l. | Via Strà, 102 | 37042 Caldiero (VR)
Tel.: +39 045 6152381
Web: www.keanet.it | E –mail: info@keanet.it
3
Il Machine Learning (ML) è il primo metodo usato per approcciare i problemi linguistici come problemi
matematici.
Si tratta di un metodo statistico, probabilistico, che mette la macchina nelle condizioni di ricavare dal testo
le regole linguistiche, in particolare morfologiche e sintattico-grammaticali, applicandole poi per prevedere,
in una sequenza, la parola successiva più probabile.
Richiede molto lavoro umano, è poco generalizzabile e scalabile, e non permette ancora alla macchina di
“comprendere” semantica e pragmatica del linguaggio.
Il ML può essere di tipo supervisionato, non supervisionato e semi-supervisionato.
ML Supervisionato: dato un fenomeno con caratteristiche misurabili note (es. l’ubicazione, la metratura, il
numero di stanze di una casa), obiettivo è mettere la macchina nelle condizioni di prevedere, cioè di
inferire il valore della variabile target non nota, risolvendo così problemi di classificazione (previsione della
categoria di appartenenza di un fenomeno, es. del fatto che una data e-mail sia Spam o Non spam) o di
regressione (previsione di un valore numerico, es. del prezzo della casa).
Il ML è detto supervisionato, quando il training della macchina avviene su un dataset in cui la variabile
target è valorizzata (labeled data).
L’algoritmo di ML supervisionato permette alla macchina di apprendere dai labeled data la funzione di
previsione, che non ci è nota a priori.
Ecco una panoramica sui principali algoritmi di ML supervisionato:
• Regressione lineare (previsione del valore numerico della variabile target)
• Regressione logistica (previsione dell’appartenenza del fenomeno a una delle 2 classi date)
• Albero decisionale (costruito in fase di training sulla base delle caratteristiche dei labeled data, è
utilizzato per previsioni es. negli ambiti medicale, di fraud detection, manutenzione predittiva,
raccomandazione di prodotti)
• Random Forest (combina alberi decisionali e randomizzazione. Più alberi decisionali sono allenati su
subset randomici di dati e caratteristiche. In fase applicativa, ogni albero analizza tutti i dati, ma
solo le caratteristiche su cui si è allenato. La previsione finale avviene a maggioranza, considerando
le previsioni di tutti gli alberi della foresta)
• Naive Bayes (si basa sul teorema di Bayes. Il training si basa sulla probabilità di una data classe in un
dato dataset, es. 30% classe Spam, 70% classe Non spam, nonché sulla probabilità condizionale di
osservare in una data classe un dato valore in una data caratteristica, es. il valore “acquista” nella
classe “Spam”)
• Support Vector Machine (SVM) (dato un insieme di fenomeni rappresentato ognuno da un vettore
di caratteristiche/valori, mira a individuare la linea di confine fra due o più classi che massimizza la
distanza fra il bordo e il vettore più vicino con l’obiettivo di rendere la previsione più accurata)
• K-Nearest Neighbors (KNN) (in fase di training memorizza i dati e li rappresenta in un feature space
in cui fenomeni con caratteristiche/valori simili sono vicini. In fase applicativa i nuovi fenomeni
Kea s.r.l. | Via Strà, 102 | 37042 Caldiero (VR)
Tel.: +39 045 6152381
Web: www.keanet.it | E –mail: info@keanet.it
4
sono proiettati nel feature space e si collocano vicino ai vicini più prossimi per
caratteristiche/valori).
ML Non supervisionato: il ML è detto non supervisionato, quando il dataset di training non contiene labeled
data.
Obiettivo del training è mettere la macchina nelle condizioni di scoprire:
• Cluster e associazioni (ecco alcuni algoritmi di ML non supervisionato finalizzati alla scoperta di
regolarità e relazioni: K-Means Clustering: scelti K datapoint iniziali - in modo randomico o in base
alla loro lontananza per caratteristiche - il modello classifica iterativamente i dati raggruppandoli
per similarità intorno ai centri, la cui posizione è aggiornata in base alla media della posizione dei
datapoint via via assegnati ai K centri; Clustering gerarchico: il più usato è quello agglomerativo in
cui il modello parte da 1 cluster per ogni datapoint e iterativamente esegue il merge delle coppie
più simili per caratteristiche al fine di formare insiemi più ampi e omogenei; DBSCAN: usato per
eseguire il clustering di dati con riferimenti spaziali, es. la propagazione di una malattia in un
territorio; Gaussian Mixture Model; Sprectral Clustering)
• Possibilità di eseguire Dimensionality Reduction (ridurre il numero delle caratteristiche del dataset,
salvaguardando quanto più le informazioni originali, ma diminuendo la complessità di
computazione, il rischio di overfitting - cioè di eccessiva aderenza del modello allenato ai dati di
training - e di diffcoltà di visualizzazione e interpretazione. Metodo usato es. nel NLP, nell’image
processing, nella genomica)
• Anomalie.
ML Semi-supervisionato. Il ML semi-supervisionato può seguire vari gli approcci:
• Self-training (il primo training avviene sul set limitato di labeled data disponibili. Quanto appreso è
usato per prevedere i valori non noti della variabile target dei dati non labeled. Le previsioni più
probabili sono incluse nel set di labeled data su cui avviene il secondo training e così via, iterando i
cicli con l’obiettivo di aumentare il volume dei labeled data e di rendere più attendibile la
previsione)
• Co-training (N modelli sono allenati su subset distinti di labeled data, le loro previsioni sui valori
della variabile target dei dati non labeled sono messe a confronto, iterando i cicli fino a far
convergere gli N modelli)
• Multiple-view (il training avviene su caratteristiche distinte del fenomeno, es. forma, colore,
texture del pixel di un’immagine. In fase applicativa le informazioni provenienti da ogni “punto di
vista” sono combinate per rendere più attendibile la previsione)
• Graph-based learning (in training serve per costruire il grafo che rappresenta le caratteristiche dei
labeled data. In fase applicativa il grafo è usato per prevedere i valori della variabile target dei dati
non labeled).
Kea s.r.l. | Via Strà, 102 | 37042 Caldiero (VR)
Tel.: +39 045 6152381
Web: www.keanet.it | E –mail: info@keanet.it
5
L’evoluzione del ML verso il Deep Learning porta a una rivoluzione nel NLP, poiché mette la macchina nelle
condizioni di “comprendere” in modo sempre più ricco semantica e pragmatica del linguaggio, facendoci
esclamare: “Finalmente le macchine hanno imparato a parlare la nostra lingua!”.
Deep Learning (quello non supervisionato nel caso del NLP) è basato sull’uso di reti neurali.
Le Neural Networks (NN) sono rilevanti nel NLP per la qualità della capacità di scoprire cluster e
associazioni.
Nelle NNs il neurone è una funzione matematica che prende in carico un input, lo elabora e produce un
output.
Ogni rete neurale è formata da:
• 1 Input Layer (contiene 1 neurone per ogni caratteristica del fenomeno. es. 1 per ogni pixel di
immagini di dimensioni fisse. Questi neuroni normalizzano i dati in ingresso e soprattutto decidono
quali informazioni veicolare al primo degli hidden layer)
• N Hidden Layer (numero di hidden layer, numero di neuroni e valori di pesi e bias influenzano il
livello di complessità gestibile da una data rete neurale. Ogni neurone di un dato hidden layer
elabora tutti i dati dell’input layer in base a pesi e bias elaborati in fase di training con l’obiettivo di
massimizzare l’attendibilità della previsione. Al termine dell’elaborazione, il neurone passa il suo
output al neurone dello hidden layer successivo, come valore di input, ecc.)
• 1 Output Layer (contiene 1 neurone per ogni valore della variabile target da prevedere, es. 10
neuroni se è vogliamo classificare immagini che contengono cifre da 0 a 9).
Nell’ambito del NLP le reti neurali sono presenti in vari stadi evolutivi.
Primo stadio evolutivo. In questo stadio rientrano es. i seguenti tipo di reti neurali:
• Recurrent Neural Network (RNN) (processano il testo in modo sequenziale, parola per parola,
memorizzando il contesto di quanto già processato, che guida la “comprensione” semantica della
parola successiva e la “comprensione” delle relazioni fra le parole. Il meccanismo di
memorizzazione delle RNN presenta limiti nel caso di testi lunghi)
• Long Short-Term Memory Networks (LSTMs) (tipo di RNN che, grazie a un meccanismo di gating
che guida la decisione di quali informazioni memorizzare e di quali scartare, “comprende” meglio le
relazioni fra parole tra loro distanti)
• Gated Recurrent Network (GRUs) (tipo di RNN simile alle LSTMs nell’applicazione del meccanismo
di gating, ma più semplice e meno avido di risorse computazionali)
• Convolutional Neural Network (CNN) (apprendono dai dati le gerarchie spaziali delle
caratteristiche. Usate soprattutto nell’image processing, nel NLP hanno il limite di non
“comprendere” il cambio di significato di una frase in base all’ordine delle parole).
Kea s.r.l. | Via Strà, 102 | 37042 Caldiero (VR)
Tel.: +39 045 6152381
Web: www.keanet.it | E –mail: info@keanet.it
6
Il secondo stadio evolutivo è dominato dai Transformer Models (TMs).
Sono diversi dalle RNN, poiché non processano il testo in modo sequenziale. Grazie all’applicazione del
caratteristico meccanismo dell’auto-attenzione, i TMs processano simultaneamente elementi multipli
dell’input (es. parole di una frase); in base ai cosiddetti Attention Scores pesano la rilevanza degli elementi;
accendono l’attenzione sugli elementi rilevanti; “comprendono” le relazioni fra elementi anche tra loro
distanti, migliorando quindi la “comprensione” semantica e pragmatica del testo.
Il meccanismo dell’auto-attenzione può essere semplice oppure Multi-Head. Il meccanismo multi-head
guida il modello a prestare tipi diversi di auto-attenzione a elementi diversi, es. un’attenzione può essere
specializzata in named entities, un’altra in sintassi, un’altra in semantica. La combinazione degli output
delle diverse teste aiuta il modello a “comprendere” il fenomeno linguiastico in modo più ampio e
profondo. Il meccanismo dell’auto-attenzione ha contribuito in maniera determinante ai progressi
nell’ambito della Machine Translation, della Speech Recognition, della Text Summarization e del Question
Answering, ecc.).
Dal punto di vista strutturale ogni modello di Transformer è costituito da un Encoder e da un Decoder.
L’encoder è uno stack di layer fra loro uguali, costituiti ognuno da 2 sotto-layer: un meccanismo di
attenzione multi-teste e una rete neurale a flusso in avanti. Il decoder è uno stack di layer fra loro uguali,
costituiti ognuno da 3 sotto-layer: i primi due sono uguali a quelli dell’encoder, mentre il terzo è ancora un
meccanismo di attenzione multi-teste che il modello applica all’output (es. alla traduzione) per migliorarne
la qualità
Fra i modelli di Transformer spiccano:
• BERT (funzionamento bidirezionale e pre-allenamento sono caratteristiche importanti di questo
modello il cui punto di forza è la “comprensione” della relazione anche tra frasi, specializzandolo in
compiti di Encoding)
• GPT (specializzato in compiti di Generazione del linguaggio naturale)
• Transformer-XL (capace di gestire sequenze di testo più lunghe, a vantaggio della coerenza interna
dell’output, es. della traduzione)
• T5 (modello particolarmente versatile, poiché approccia ogni problema NLP come un problema di
text-to-text transformation).
Le linee evolutive future vanno in particolare in direzione dell’apprendimento multimodale da sorgenti
multiple, non solo testi, ma anche immagini, audio.
Vision Transformer (ViT) è un modello che applica i Transformer Model all’image processing, anziché le
CNN, aiutando la macchina a raggiungere una “comprensione” più ampia e profonda del fenomeno.
CLIP è un Transformer Model multimodale capace es. di cercare immagini da testo senza supervisione.

More Related Content

Similar to Dialogare con le macchine in linguaggio naturale... Finalmente! Ma ci voleva tanto?

Estendere Java con il Meta Programming System di JetBrains
Estendere Java con il Meta Programming System di JetBrains Estendere Java con il Meta Programming System di JetBrains
Estendere Java con il Meta Programming System di JetBrains
Federico Tomassetti
 
Materiale seminario l'efficacia della compesazione tecnologica per gli alunni...
Materiale seminario l'efficacia della compesazione tecnologica per gli alunni...Materiale seminario l'efficacia della compesazione tecnologica per gli alunni...
Materiale seminario l'efficacia della compesazione tecnologica per gli alunni...
iva martini
 
Guido Vetere - Introduzione e critica al web semantico
Guido Vetere - Introduzione e critica al web semanticoGuido Vetere - Introduzione e critica al web semantico
Guido Vetere - Introduzione e critica al web semantico
Social Media Lab
 
Presentazione tesi - Francesca Germani
Presentazione tesi - Francesca GermaniPresentazione tesi - Francesca Germani
Presentazione tesi - Francesca Germani
Rubina Beneduce
 
Informatica
InformaticaInformatica
Informatica
RGoroz
 

Similar to Dialogare con le macchine in linguaggio naturale... Finalmente! Ma ci voleva tanto? (20)

L’importanza dei metadati nella comunicazione tecnica e di prodotto e come ge...
L’importanza dei metadati nella comunicazione tecnica e di prodotto e come ge...L’importanza dei metadati nella comunicazione tecnica e di prodotto e come ge...
L’importanza dei metadati nella comunicazione tecnica e di prodotto e come ge...
 
Algoritmi di Semantica e P2P
Algoritmi di Semantica e P2PAlgoritmi di Semantica e P2P
Algoritmi di Semantica e P2P
 
Sviluppo di un Framework semantico per la contestualizzazione delle activity
Sviluppo di un Framework semantico per la contestualizzazione delle activitySviluppo di un Framework semantico per la contestualizzazione delle activity
Sviluppo di un Framework semantico per la contestualizzazione delle activity
 
ORM - Introduzione
ORM - IntroduzioneORM - Introduzione
ORM - Introduzione
 
Estendere Java con il Meta Programming System di JetBrains
Estendere Java con il Meta Programming System di JetBrains Estendere Java con il Meta Programming System di JetBrains
Estendere Java con il Meta Programming System di JetBrains
 
Algoritmi E P2P
Algoritmi E P2PAlgoritmi E P2P
Algoritmi E P2P
 
Algoritmi E P2P
Algoritmi E P2PAlgoritmi E P2P
Algoritmi E P2P
 
Elaborazione automatica dei dati: computer e matlab
Elaborazione automatica dei dati: computer e matlabElaborazione automatica dei dati: computer e matlab
Elaborazione automatica dei dati: computer e matlab
 
Coding, pattern e pensiero computazionale
Coding, pattern e pensiero computazionaleCoding, pattern e pensiero computazionale
Coding, pattern e pensiero computazionale
 
Guida del perfetto Algoritmista I
Guida del perfetto Algoritmista IGuida del perfetto Algoritmista I
Guida del perfetto Algoritmista I
 
Predisposizione di un dataset per applicazioni di natural language generation...
Predisposizione di un dataset per applicazioni di natural language generation...Predisposizione di un dataset per applicazioni di natural language generation...
Predisposizione di un dataset per applicazioni di natural language generation...
 
WinRT 8.1: speech API e NUI in Windows 8.1
WinRT 8.1: speech API e NUI in Windows 8.1WinRT 8.1: speech API e NUI in Windows 8.1
WinRT 8.1: speech API e NUI in Windows 8.1
 
Riconoscimento vocale v1.4
Riconoscimento vocale v1.4Riconoscimento vocale v1.4
Riconoscimento vocale v1.4
 
Langue&parole traduzione automatica e post-editing 2015 finale
Langue&parole   traduzione automatica e post-editing 2015 finaleLangue&parole   traduzione automatica e post-editing 2015 finale
Langue&parole traduzione automatica e post-editing 2015 finale
 
Materiale seminario l'efficacia della compesazione tecnologica per gli alunni...
Materiale seminario l'efficacia della compesazione tecnologica per gli alunni...Materiale seminario l'efficacia della compesazione tecnologica per gli alunni...
Materiale seminario l'efficacia della compesazione tecnologica per gli alunni...
 
Guido Vetere - Introduzione e critica al web semantico
Guido Vetere - Introduzione e critica al web semanticoGuido Vetere - Introduzione e critica al web semantico
Guido Vetere - Introduzione e critica al web semantico
 
Presentazione tesi - Francesca Germani
Presentazione tesi - Francesca GermaniPresentazione tesi - Francesca Germani
Presentazione tesi - Francesca Germani
 
Adottare con successo un software CMS per realizzare manuali e documentazione...
Adottare con successo un software CMS per realizzare manuali e documentazione...Adottare con successo un software CMS per realizzare manuali e documentazione...
Adottare con successo un software CMS per realizzare manuali e documentazione...
 
Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...
Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...
Progetto e sviluppo di un sistema di rilevamento di anomalie su sistemi infor...
 
Informatica
InformaticaInformatica
Informatica
 

More from KEA s.r.l.

More from KEA s.r.l. (20)

Argo CCMS: come usare al meglio i file di configurazione per export in Word, ...
Argo CCMS: come usare al meglio i file di configurazione per export in Word, ...Argo CCMS: come usare al meglio i file di configurazione per export in Word, ...
Argo CCMS: come usare al meglio i file di configurazione per export in Word, ...
 
Argo CMS: assegnare in modo rapido le Proprietà ai Livelli con export/import ...
Argo CMS: assegnare in modo rapido le Proprietà ai Livelli con export/import ...Argo CMS: assegnare in modo rapido le Proprietà ai Livelli con export/import ...
Argo CMS: assegnare in modo rapido le Proprietà ai Livelli con export/import ...
 
Software per realizzare manuali e documentazione tecnica: Argo CCMS di KEA
Software per realizzare manuali e documentazione tecnica: Argo CCMS di KEASoftware per realizzare manuali e documentazione tecnica: Argo CCMS di KEA
Software per realizzare manuali e documentazione tecnica: Argo CCMS di KEA
 
Perché e come usare i fumetti nella comunicazione tecnica e di prodotto
Perché e come usare i fumetti nella comunicazione tecnica e di prodottoPerché e come usare i fumetti nella comunicazione tecnica e di prodotto
Perché e come usare i fumetti nella comunicazione tecnica e di prodotto
 
Riflessioni sulla peculiarità della relazione biunivoca fra uomo e intelligen...
Riflessioni sulla peculiarità della relazione biunivoca fra uomo e intelligen...Riflessioni sulla peculiarità della relazione biunivoca fra uomo e intelligen...
Riflessioni sulla peculiarità della relazione biunivoca fra uomo e intelligen...
 
Come migliorare l’efficienza della formazione aziendale
Come migliorare l’efficienza della formazione aziendaleCome migliorare l’efficienza della formazione aziendale
Come migliorare l’efficienza della formazione aziendale
 
Che cosa hanno in comune la cara vecchia lavatrice e l’intelligenza artificiale?
Che cosa hanno in comune la cara vecchia lavatrice e l’intelligenza artificiale?Che cosa hanno in comune la cara vecchia lavatrice e l’intelligenza artificiale?
Che cosa hanno in comune la cara vecchia lavatrice e l’intelligenza artificiale?
 
Metaverso, ma non solo: come la vita digitale e l’economia digitale potrebber...
Metaverso, ma non solo: come la vita digitale e l’economia digitale potrebber...Metaverso, ma non solo: come la vita digitale e l’economia digitale potrebber...
Metaverso, ma non solo: come la vita digitale e l’economia digitale potrebber...
 
Telegram per le aziende
Telegram per le aziendeTelegram per le aziende
Telegram per le aziende
 
Social e valorizzazione della complessità
Social e valorizzazione della complessitàSocial e valorizzazione della complessità
Social e valorizzazione della complessità
 
Il colore: crocevia fra tecnica, economia, scienza, percezione, memoria e con...
Il colore: crocevia fra tecnica, economia, scienza, percezione, memoria e con...Il colore: crocevia fra tecnica, economia, scienza, percezione, memoria e con...
Il colore: crocevia fra tecnica, economia, scienza, percezione, memoria e con...
 
Argo CCMS: tutte le funzioni della finestra Gestione documenti
Argo CCMS: tutte le funzioni della finestra Gestione documentiArgo CCMS: tutte le funzioni della finestra Gestione documenti
Argo CCMS: tutte le funzioni della finestra Gestione documenti
 
Argo CCMS: come tradurre testi esportando e importando file MS Excel e XML
Argo CCMS: come tradurre testi esportando e importando file MS Excel e XMLArgo CCMS: come tradurre testi esportando e importando file MS Excel e XML
Argo CCMS: come tradurre testi esportando e importando file MS Excel e XML
 
La SEO come conversazione fra le nostre presenze online, Google e chi cerca
La SEO come conversazione fra le nostre presenze online, Google e chi cercaLa SEO come conversazione fra le nostre presenze online, Google e chi cerca
La SEO come conversazione fra le nostre presenze online, Google e chi cerca
 
Invito alla lettura di Riccardo Falcinelli: Figure. Come funzionano le immagi...
Invito alla lettura di Riccardo Falcinelli: Figure. Come funzionano le immagi...Invito alla lettura di Riccardo Falcinelli: Figure. Come funzionano le immagi...
Invito alla lettura di Riccardo Falcinelli: Figure. Come funzionano le immagi...
 
Catalogo Natale Kasanova: edizioni 2020 e 2021 a confronto
Catalogo Natale Kasanova: edizioni 2020 e 2021 a confrontoCatalogo Natale Kasanova: edizioni 2020 e 2021 a confronto
Catalogo Natale Kasanova: edizioni 2020 e 2021 a confronto
 
Argo CMS – Come riusare manualmente contenuti all’interno di documenti distinti
Argo CMS – Come riusare manualmente contenuti all’interno di documenti distintiArgo CMS – Come riusare manualmente contenuti all’interno di documenti distinti
Argo CMS – Come riusare manualmente contenuti all’interno di documenti distinti
 
Argo CCMS: come esportare e importare contenuti usando le funzioni Esporta / ...
Argo CCMS: come esportare e importare contenuti usando le funzioni Esporta / ...Argo CCMS: come esportare e importare contenuti usando le funzioni Esporta / ...
Argo CCMS: come esportare e importare contenuti usando le funzioni Esporta / ...
 
Realizzare manuali di istruzioni in HTML5, e-manual e digital documentation d...
Realizzare manuali di istruzioni in HTML5, e-manual e digital documentation d...Realizzare manuali di istruzioni in HTML5, e-manual e digital documentation d...
Realizzare manuali di istruzioni in HTML5, e-manual e digital documentation d...
 
Capire i motori di ricerca
Capire i motori di ricercaCapire i motori di ricerca
Capire i motori di ricerca
 

Dialogare con le macchine in linguaggio naturale... Finalmente! Ma ci voleva tanto?

  • 1. Kea s.r.l. | Via Strà, 102 | 37042 Caldiero (VR) Tel.: +39 045 6152381 Web: www.keanet.it | E –mail: info@keanet.it 1 Dialogare con le macchine in linguaggio naturale... Finalmente! Ma ci voleva tanto? La storia del Natural Language Processing (NLP) parte negli anni Cinquanta del secolo scorso, ma fino a una decina di anni fa traduzioni automatiche, chatbot e assistenti vocali erano perlopiù fonte di ilarità o frustrazione, mentre ora - superato il magico stupore iniziale - dialogare in linguaggio naturale con una macchina è una comune esperienza quotidiana - che sia Google Translate, Alexa, ChatGPT o il chatbot di un sito, ecc. Come dire: “Finalmente le macchine hanno imparato a parlare la nostra lingua! Ci voleva tanto?”. Sì, tantissimo: il linguaggio è un fenomeno molto complesso - perché intrinsecamente legato all’umana esperienza del mondo, a livello personale, relazionale, socio-culturale e storico -, un fenomeno che padroneggiamo con naturalezza, ma che abbiamo dovuto anzitutto capire come rendere “comprensibile” alle macchine. Padroneggiare il linguaggio non significa solo conoscere il significato delle parole e le regole sintattico grammaticali di una lingua, significa anche e soprattutto come generare senso mediante questi utensili linguistici. La questione centrale è come rendere “comprensibili” alle macchine i sistemi di produzione di senso in assenza del fatto che le macchine possano basarsi sul contesto esperienziale e relazionale che guida l’umana comprensione delle eccezioni, delle ambiguità, della semantica e della pragmatica della lingua. Comprensibile è fra virgolette, perché la comprensione del linguaggio da parte della macchina è simulata: usando strumenti matematici siamo riusciti a mettere la macchina nella condizione di ascoltarci e parlarci come se il linguaggio naturale fosse il nostro terreno comune. Non lo è, perché il risultato è originato da processi profondamente diversi fra loro e ha un significato profondamente diverso per l’umano e per la macchina; ma al tempo stesso lo è, perché il livello del dialogo è già oggi strabiliante. Grazie a interessanti letture sul tema (mi sono stati particolarmente utili Machine Learning Algorithms Simplified di Lino A Tharakan e Introduction to Natural Language Processing with Transformers: Decoding Language with AI edito da Cuantum Technologies) ho cercato di capirne di più su come siamo arrivati ai risultati attuali del NLP e quali sono le prospettive future. Avendo una formazione umanistica, con rammarico mi è precluso l’accesso diretto alla matematica che sta alla base delle rivoluzioni ed evoluzioni del NLP, ma ho fatto del mio meglio per cogliere le logiche generali, che spero possano risultare utili. Partiamo dal presupposto che gli aspetti che il NLP deve considerare sono molteplici: • Fonetico e fonologico (rilevante nelle applicazioni speech-to-text e viceversa) • Morfologico della parola • Sintattico e grammaticale della frase • Semantico del contesto parole/frasi • Pragmatico dell’uso del linguaggio in un determinato ambito.
  • 2. Kea s.r.l. | Via Strà, 102 | 37042 Caldiero (VR) Tel.: +39 045 6152381 Web: www.keanet.it | E –mail: info@keanet.it 2 Agli albori del NLP furono i sistemi basati su regole, cioè il tentativo di insegnare alla macchina una lingua codificandone tutti gli aspetti. Questo approccio richiede moltissimo lavoro umano, garantisce accuratezza, ma non mette la macchina nelle condizioni di gestire in modo autonomo la complessità del linguaggio, né tanto meno di attingere al livello semantico e pragmatico. La rivoluzione fu di approcciare i problemi linguistici come problemi matematici. In questo approccio - seguito dal Machine Learning, dalle Recurrent Neural Networks e dai Transformer Models di cui parleremo in seguito - il Text Preprocessing è cruciale ai fini dell’elaborabilità del testo da parte dei modelli (intesi come rappresentazione matematica di un processo del mondo reale con l’obiettivo di eseguire previsioni, comunque intese, il più possibile accurate). Nell’ambito del NLP il Text Preprocessing è finalizzato a: • Eseguire attività di Truncation o Padding (normalmente i modelli si aspettano frasi tutte di lunghezza uguale, predefinita. Le frasi più lunghe possono essere troncate oppure si possono allungare ad arte le frasi più brevi, usando es. il token PAD e istruendo poi il modello a non considerare questo token come una parola valida ai fini dell’elaborazione testuale) • Pulire il testo da caratteri, simboli e parole non funzionali alla “comprensione” del testo da parte della macchina, es. le Stop Words (codificati per molte lingue) che occorrono spesso senza apportare contributi semantici o pragmatici decisivi • Eseguire attività di Stemming e Lemmatization (riduzione della parola alla forma radice, es. ridurre running a run, e alla sua forma canonica, es. ridurre better a good) • Convertire tutto il testo in lettere minuscole • Tokenizzare, suddividendo il testo in segmenti più piccoli, es. singole lettere, gruppi radicali (che supportano il tentativo della macchina di dedurre il significato di parole non presenti nel suo vocabolario da altre presenti e affini) o parole intere • Codificare il testo in formato numerico, es. sotto forma di Word Embeddings. Modelli come Word2Vec e Glove codificano le parole come vettori che ne rappresentano le caratteristiche es. morfologiche, sintattiche, semantiche e - nel caso dei Transformer Models - anche la posizione della parola nella frase (Positional Encoding). Nello spazio vettoriale in cui il modello le proietta, parole con caratteristiche simili sono vicine, aiutando la macchina a “comprendere” la relazione fra le parole, e quindi in una certa misura anche a “comprendere” anche concetti e topics. La rappresentazione vettoriale delle parole è un aspetto importante anche per comprendere il funzionamento delle nuove versioni dei motori di site search per e-shop e knowledge base. Questi motori tendono a integrare la ricerca basata su Large Language Models (LLMs) con quella classica su database: la ricerca basata su LLMs migliora la completezza dei risultati, poiché la macchina restituisce risultati anche per parole simili a quelle cercate dall’utente, parole che afferiscono allo stesso torno concettuale e tematico; la completezza ottenibile mediante la ricerca vettoriale, però, va a discapito della precisione che necessita dell’integrazione della ricerca su database per poter essere recuperata.
  • 3. Kea s.r.l. | Via Strà, 102 | 37042 Caldiero (VR) Tel.: +39 045 6152381 Web: www.keanet.it | E –mail: info@keanet.it 3 Il Machine Learning (ML) è il primo metodo usato per approcciare i problemi linguistici come problemi matematici. Si tratta di un metodo statistico, probabilistico, che mette la macchina nelle condizioni di ricavare dal testo le regole linguistiche, in particolare morfologiche e sintattico-grammaticali, applicandole poi per prevedere, in una sequenza, la parola successiva più probabile. Richiede molto lavoro umano, è poco generalizzabile e scalabile, e non permette ancora alla macchina di “comprendere” semantica e pragmatica del linguaggio. Il ML può essere di tipo supervisionato, non supervisionato e semi-supervisionato. ML Supervisionato: dato un fenomeno con caratteristiche misurabili note (es. l’ubicazione, la metratura, il numero di stanze di una casa), obiettivo è mettere la macchina nelle condizioni di prevedere, cioè di inferire il valore della variabile target non nota, risolvendo così problemi di classificazione (previsione della categoria di appartenenza di un fenomeno, es. del fatto che una data e-mail sia Spam o Non spam) o di regressione (previsione di un valore numerico, es. del prezzo della casa). Il ML è detto supervisionato, quando il training della macchina avviene su un dataset in cui la variabile target è valorizzata (labeled data). L’algoritmo di ML supervisionato permette alla macchina di apprendere dai labeled data la funzione di previsione, che non ci è nota a priori. Ecco una panoramica sui principali algoritmi di ML supervisionato: • Regressione lineare (previsione del valore numerico della variabile target) • Regressione logistica (previsione dell’appartenenza del fenomeno a una delle 2 classi date) • Albero decisionale (costruito in fase di training sulla base delle caratteristiche dei labeled data, è utilizzato per previsioni es. negli ambiti medicale, di fraud detection, manutenzione predittiva, raccomandazione di prodotti) • Random Forest (combina alberi decisionali e randomizzazione. Più alberi decisionali sono allenati su subset randomici di dati e caratteristiche. In fase applicativa, ogni albero analizza tutti i dati, ma solo le caratteristiche su cui si è allenato. La previsione finale avviene a maggioranza, considerando le previsioni di tutti gli alberi della foresta) • Naive Bayes (si basa sul teorema di Bayes. Il training si basa sulla probabilità di una data classe in un dato dataset, es. 30% classe Spam, 70% classe Non spam, nonché sulla probabilità condizionale di osservare in una data classe un dato valore in una data caratteristica, es. il valore “acquista” nella classe “Spam”) • Support Vector Machine (SVM) (dato un insieme di fenomeni rappresentato ognuno da un vettore di caratteristiche/valori, mira a individuare la linea di confine fra due o più classi che massimizza la distanza fra il bordo e il vettore più vicino con l’obiettivo di rendere la previsione più accurata) • K-Nearest Neighbors (KNN) (in fase di training memorizza i dati e li rappresenta in un feature space in cui fenomeni con caratteristiche/valori simili sono vicini. In fase applicativa i nuovi fenomeni
  • 4. Kea s.r.l. | Via Strà, 102 | 37042 Caldiero (VR) Tel.: +39 045 6152381 Web: www.keanet.it | E –mail: info@keanet.it 4 sono proiettati nel feature space e si collocano vicino ai vicini più prossimi per caratteristiche/valori). ML Non supervisionato: il ML è detto non supervisionato, quando il dataset di training non contiene labeled data. Obiettivo del training è mettere la macchina nelle condizioni di scoprire: • Cluster e associazioni (ecco alcuni algoritmi di ML non supervisionato finalizzati alla scoperta di regolarità e relazioni: K-Means Clustering: scelti K datapoint iniziali - in modo randomico o in base alla loro lontananza per caratteristiche - il modello classifica iterativamente i dati raggruppandoli per similarità intorno ai centri, la cui posizione è aggiornata in base alla media della posizione dei datapoint via via assegnati ai K centri; Clustering gerarchico: il più usato è quello agglomerativo in cui il modello parte da 1 cluster per ogni datapoint e iterativamente esegue il merge delle coppie più simili per caratteristiche al fine di formare insiemi più ampi e omogenei; DBSCAN: usato per eseguire il clustering di dati con riferimenti spaziali, es. la propagazione di una malattia in un territorio; Gaussian Mixture Model; Sprectral Clustering) • Possibilità di eseguire Dimensionality Reduction (ridurre il numero delle caratteristiche del dataset, salvaguardando quanto più le informazioni originali, ma diminuendo la complessità di computazione, il rischio di overfitting - cioè di eccessiva aderenza del modello allenato ai dati di training - e di diffcoltà di visualizzazione e interpretazione. Metodo usato es. nel NLP, nell’image processing, nella genomica) • Anomalie. ML Semi-supervisionato. Il ML semi-supervisionato può seguire vari gli approcci: • Self-training (il primo training avviene sul set limitato di labeled data disponibili. Quanto appreso è usato per prevedere i valori non noti della variabile target dei dati non labeled. Le previsioni più probabili sono incluse nel set di labeled data su cui avviene il secondo training e così via, iterando i cicli con l’obiettivo di aumentare il volume dei labeled data e di rendere più attendibile la previsione) • Co-training (N modelli sono allenati su subset distinti di labeled data, le loro previsioni sui valori della variabile target dei dati non labeled sono messe a confronto, iterando i cicli fino a far convergere gli N modelli) • Multiple-view (il training avviene su caratteristiche distinte del fenomeno, es. forma, colore, texture del pixel di un’immagine. In fase applicativa le informazioni provenienti da ogni “punto di vista” sono combinate per rendere più attendibile la previsione) • Graph-based learning (in training serve per costruire il grafo che rappresenta le caratteristiche dei labeled data. In fase applicativa il grafo è usato per prevedere i valori della variabile target dei dati non labeled).
  • 5. Kea s.r.l. | Via Strà, 102 | 37042 Caldiero (VR) Tel.: +39 045 6152381 Web: www.keanet.it | E –mail: info@keanet.it 5 L’evoluzione del ML verso il Deep Learning porta a una rivoluzione nel NLP, poiché mette la macchina nelle condizioni di “comprendere” in modo sempre più ricco semantica e pragmatica del linguaggio, facendoci esclamare: “Finalmente le macchine hanno imparato a parlare la nostra lingua!”. Deep Learning (quello non supervisionato nel caso del NLP) è basato sull’uso di reti neurali. Le Neural Networks (NN) sono rilevanti nel NLP per la qualità della capacità di scoprire cluster e associazioni. Nelle NNs il neurone è una funzione matematica che prende in carico un input, lo elabora e produce un output. Ogni rete neurale è formata da: • 1 Input Layer (contiene 1 neurone per ogni caratteristica del fenomeno. es. 1 per ogni pixel di immagini di dimensioni fisse. Questi neuroni normalizzano i dati in ingresso e soprattutto decidono quali informazioni veicolare al primo degli hidden layer) • N Hidden Layer (numero di hidden layer, numero di neuroni e valori di pesi e bias influenzano il livello di complessità gestibile da una data rete neurale. Ogni neurone di un dato hidden layer elabora tutti i dati dell’input layer in base a pesi e bias elaborati in fase di training con l’obiettivo di massimizzare l’attendibilità della previsione. Al termine dell’elaborazione, il neurone passa il suo output al neurone dello hidden layer successivo, come valore di input, ecc.) • 1 Output Layer (contiene 1 neurone per ogni valore della variabile target da prevedere, es. 10 neuroni se è vogliamo classificare immagini che contengono cifre da 0 a 9). Nell’ambito del NLP le reti neurali sono presenti in vari stadi evolutivi. Primo stadio evolutivo. In questo stadio rientrano es. i seguenti tipo di reti neurali: • Recurrent Neural Network (RNN) (processano il testo in modo sequenziale, parola per parola, memorizzando il contesto di quanto già processato, che guida la “comprensione” semantica della parola successiva e la “comprensione” delle relazioni fra le parole. Il meccanismo di memorizzazione delle RNN presenta limiti nel caso di testi lunghi) • Long Short-Term Memory Networks (LSTMs) (tipo di RNN che, grazie a un meccanismo di gating che guida la decisione di quali informazioni memorizzare e di quali scartare, “comprende” meglio le relazioni fra parole tra loro distanti) • Gated Recurrent Network (GRUs) (tipo di RNN simile alle LSTMs nell’applicazione del meccanismo di gating, ma più semplice e meno avido di risorse computazionali) • Convolutional Neural Network (CNN) (apprendono dai dati le gerarchie spaziali delle caratteristiche. Usate soprattutto nell’image processing, nel NLP hanno il limite di non “comprendere” il cambio di significato di una frase in base all’ordine delle parole).
  • 6. Kea s.r.l. | Via Strà, 102 | 37042 Caldiero (VR) Tel.: +39 045 6152381 Web: www.keanet.it | E –mail: info@keanet.it 6 Il secondo stadio evolutivo è dominato dai Transformer Models (TMs). Sono diversi dalle RNN, poiché non processano il testo in modo sequenziale. Grazie all’applicazione del caratteristico meccanismo dell’auto-attenzione, i TMs processano simultaneamente elementi multipli dell’input (es. parole di una frase); in base ai cosiddetti Attention Scores pesano la rilevanza degli elementi; accendono l’attenzione sugli elementi rilevanti; “comprendono” le relazioni fra elementi anche tra loro distanti, migliorando quindi la “comprensione” semantica e pragmatica del testo. Il meccanismo dell’auto-attenzione può essere semplice oppure Multi-Head. Il meccanismo multi-head guida il modello a prestare tipi diversi di auto-attenzione a elementi diversi, es. un’attenzione può essere specializzata in named entities, un’altra in sintassi, un’altra in semantica. La combinazione degli output delle diverse teste aiuta il modello a “comprendere” il fenomeno linguiastico in modo più ampio e profondo. Il meccanismo dell’auto-attenzione ha contribuito in maniera determinante ai progressi nell’ambito della Machine Translation, della Speech Recognition, della Text Summarization e del Question Answering, ecc.). Dal punto di vista strutturale ogni modello di Transformer è costituito da un Encoder e da un Decoder. L’encoder è uno stack di layer fra loro uguali, costituiti ognuno da 2 sotto-layer: un meccanismo di attenzione multi-teste e una rete neurale a flusso in avanti. Il decoder è uno stack di layer fra loro uguali, costituiti ognuno da 3 sotto-layer: i primi due sono uguali a quelli dell’encoder, mentre il terzo è ancora un meccanismo di attenzione multi-teste che il modello applica all’output (es. alla traduzione) per migliorarne la qualità Fra i modelli di Transformer spiccano: • BERT (funzionamento bidirezionale e pre-allenamento sono caratteristiche importanti di questo modello il cui punto di forza è la “comprensione” della relazione anche tra frasi, specializzandolo in compiti di Encoding) • GPT (specializzato in compiti di Generazione del linguaggio naturale) • Transformer-XL (capace di gestire sequenze di testo più lunghe, a vantaggio della coerenza interna dell’output, es. della traduzione) • T5 (modello particolarmente versatile, poiché approccia ogni problema NLP come un problema di text-to-text transformation). Le linee evolutive future vanno in particolare in direzione dell’apprendimento multimodale da sorgenti multiple, non solo testi, ma anche immagini, audio. Vision Transformer (ViT) è un modello che applica i Transformer Model all’image processing, anziché le CNN, aiutando la macchina a raggiungere una “comprensione” più ampia e profonda del fenomeno. CLIP è un Transformer Model multimodale capace es. di cercare immagini da testo senza supervisione.