L’interazione uomo macchina sta diventando sempre più naturale e accessibile, rendendo i computer parte integrante della vita delle persone.
Qual è lo strumento che lo rende possibile? Una delle tecnologie più antiche ma al tempo stesso avanzate mai inventate dall’uomo: il linguaggio.
L’introduzione di macchine intelligenti e di tecnologie conversazionali come Google Assistant, Siri di Apple o Alexa di Amazon ha permesso alle persone di interagire con le macchine semplicemente parlando, superando qualsiasi tipo di interfaccia. Tuttavia, insegnare alle macchine il linguaggio naturale, la comprensione semantica e l’uso delle parole, non è banale.
Basti pensare che gli esseri umani sono gli unici “animali” che si affidano alle parole e alla sintassi per parlare, a dimostrazione del fatto che, per costruire un sistema di comunicazione strutturato, è necessaria una certa quantità di intelletto. Le lingue sono complesse e cambiano nel tempo, ma ciò nonostante siamo stati in grado di far utilizzare questa risorsa ai computer.
Un problema che i ricercatori hanno dovuto affrontare quando insegnavano a parlare alle macchine consisteva nel fatto che i mattoni delle lingue sono le parole, mentre il linguaggio del computer è quello dei numeri. Per raggiungere l’obiettivo e creare un ponte tra linguaggio naturale e informatica, era necessaria un’idea brillante che trasformasse le parole in cifre.
Vettori di embedding
La chiave di volta che ha reso possibile tutto ciò è stata l’introduzione di embedding testuali, vettori di numeri reali in grado di codificare il significato semantico di parole o frasi in uno spazio euclideo. L’idea alla base di questi vettori è quella di rappresentare parole o frasi aventi un significato semantico simile con vettori “vicini” l’uno all’altro.
Questi vettori vengono quindi utilizzati come input per i modelli di machine learning e, dopo la loro introduzione, sono diventati onnipresenti nei framework di Natural Language Processing.
I vettori di embedding di parole sono ottenuti da algoritmi di apprendimento automatico non supervisionati che ricevono una grande quantità di testo grezzo come unico input . L’idea alla base di questi algoritmi è tanto semplice quanto geniale: imparare a incorporare un certo termine usando le parole vicine nel testo di input come dati.
Questo approccio si basa sulla cosiddetta ipotesi distributiva, formulata nel 1954 dal linguista americano Zelling S. Harris, secondo la quale le parole che ricorrono in contesti simili tendono ad avere significati simili. Questo tipo di algoritmo apprende un vettore rappresentativo di un termine utilizzando come dato solo il suo contesto, senza la necessità di alcuna supervisione.
Questa osservazione evidenzia la potenza dell’approccio: la quantità teoricamente infinita di testo grezzo recuperabile sul web rende la potenza di calcolo l’unico limite agli algoritmi di embedding di parole.
Simili agli embedding di parole, gli embedding di frasi sono vettori di numeri reali associati a parti di testo (frasi, paragrafi, documenti, ecc.) in grado di rappresentare frasi semanticamente simili con vettori vicini tra loro.
Anche se gli scopi di questi due tipi di algoritmi sono gli stessi, i modelli di incorporamento di frasi adottano un approccio diverso per fornire i vettori rappresentativi, facendo uso di rappresentazioni a livello di parola come elementi costitutivi.
Modelli di embedding
Durante l’ultimo decennio sono stati pubblicati molti modelli di embedding di frasi, facendo progredire lo sviluppo in questo campo a un ritmo estremamente elevato.
Questi algoritmi possono essere suddivisi in due famiglie, a seconda dell’approccio adottato:
- Modelli che ottengono embedding di frasi tramite composizioni (media, concatenazione, ecc.) di embedding di parole pre-addestrati.
- Modelli che utilizzano l’embedding di parole come input di una rete neurale e adottano i suoi hidden layers come embedding di frasi.
Ciascuno di questi algoritmi ha i suoi pro e contro, che variano dal costo computazionale alla qualità e flessibilità dell’embedding. Per questo motivo non è stato decretato un metodo di embedding di frase più performante degli altri e ogni modello ha motivi per essere adottato, a seconda del caso d’uso.
Un po’ di storia
Prima dell’introduzione degli embedding di parole, i termini erano rappresentati da vettori one-hot, cioè vettori di dimensioni enormi contenenti tutti i valori uguali a 0 eccetto uno, corrispondente all’indice della parola rappresentata..
Il numero di elementi in tali vettori è uguale al numero di parole uniche in una lingua che generalmente è dell’ordine di 10^5.
L’utilizzo di questo tipo di rappresentazione come input per i modelli di Natural Language Processing porta principalmente a due svantaggi: in primo luogo, la dimensione del problema è enorme, è necessaria una grande quantità di memoria e si incorre nel cosiddetto problema della curse of dimensionality.
In secondo luogo, le features di questi vettori sono totalmente incorrelate e ridondanti; per spiegare ciò con un esempio, le parole mela e pera condividono molto significato semantico e quindi ci si aspetta che le loro rappresentazioni siano simili, ma i vettori one-hot a esse associati sono ortogonali da un punto di vista matematico.
Gli embedding di parole sono stati introdotti proprio per risolvere questi problemi: le rappresentazioni di parole ottenute da algoritmi di embedding hanno una dimensione molto inferiore (tipicamente tra 50 e 500) e le loro features non sono incorrelate.
Gli algoritmi di embedding di parole sono stati proposti per la prima volta nel 2003 nella pubblicazione A neural probabilistic language model (Bengio et al., 2003), ma sono diventati famosi solo dieci anni più tardi con l’introduzione di Word2Vec (Mikolov et al., 2013), che rappresenta ancora oggi uno dei modelli più utilizzati in questo campo.
Le nuove frontiere della rappresentazione del testo
Negli ultimi anni sono stati proposti diversi algoritmi di embedding, sia a livello di parola sia di frase, al fine di migliorare la qualità delle informazioni codificate nei vettori rappresentativi.
Tra i modelli di embedding di parole più recenti possiamo citare:
- FastText (Bojanowski et al., 2016). La novità introdotta da questo algoritmo consiste nell’utilizzare le informazioni delle sotto-parole per costruire il vettore rappresentativo di un termine. Il modello FastText apprende gli embedding di parole intere ma anche di gruppi di caratteri più frequenti (n-grams) nel testo di input. Con questo approccio, gli embedding hanno fornito informazioni codificate relative a prefissi e suffissi di una lingua (gli n-grams più frequenti) e sono in grado di rappresentare parole fuori dal vocabolario come una media di embedding di n-grammi. Dopo la sua introduzione, il modello FastText è diventato uno degli algoritmi di embedding di parole più adottati nella comunità NLP.
- ELMo (Peters et al., 2018). Questo algoritmo è stato proposto per superare i problemi relativi ai polisemi. I precedenti modelli di embedding di parole forniscono vettori rappresentativi fissi per ogni parola, anche se quest’ultima aveva più di un significato semantico. Al contrario, ELMo fornisce embedding flessibili che tengono conto dell’intera frase per ricavare il significato semantico del termine rappresentato. Questo risultato si ottiene facendo affidamento su un modello linguistico bidirezionale pre-addestrato, i cui hidden states vengono utilizzati per comporre l’embedding finale di un termine tramite una media ponderata. ELMo ha ottenuto molta rilevanza nella comunità dell’NLP poiché è stato il primo algoritmo a proporre una soluzione efficiente al problema dei polisemi.
- Flair (Akbik et al., 2018). Questo algoritmo è stato proposto con l’obiettivo di avere entrambe le proprietà dei modelli sopra menzionati, ovvero fornire embedding flessibili per superare il problema dei polisemi, e codificare il significato semantico di prefissi e suffissi. Questo obiettivo viene raggiunto utilizzando un modello di linguaggio bidirezionale a livello di carattere per fornire i vettori rappresentativi. Questo nuovo approccio all’embedding di parole è stato in grado di raggiungere lo stato dell’arte in diversi tasks di NER.
D’altra parte, gli algoritmi di embedding di frasi più rilevanti degli ultimi anni sono:
- Smooth Inverse Frequency (Arora et al., 2017). Questo modello ottiene rappresentazioni di frasi tramite una media ponderata di embedding di parole pre-addestrati (il cui peso dipende dalla frequenza del termine rappresentato) seguiti dalla rimozione della prima componente principale estratta da un insieme di embedding di frasi. Anche se questo modello è molto semplice e richiede uno sforzo computazionale basso, in diversi taski a livello semantico raggiunge risultati confrontabili con quelli ottenuti da altri algoritmi basati su reti neurali profonde. Inoltre, la rimozione dei componenti principali è diventata una pratica di post-elaborazione diffusa quando si lavora con embedding di frasi.
- Sentence-BERT (Reimers et al., 2019). Questo algoritmo, basato sul modello di rappresentazione del linguaggio di BERT (Devlin et al., 2018), fa uso della tecnologia Transformer (Vaswani et al., 2017) e si basa su un’enorme rete neurale. Queste due caratteristiche rendono Sentence-BERT in grado di fornire embedding di frasi altamente informativi, migliorando notevolmente lo stato dell’arte di diversi task a livello semantico.
- Static Fuzzy-Bag-of-Words. Questo algoritmo si basa sulla teoria degli insiemi fuzzy per giustificare un nuovo tipo di composizione usata per ottenere gli embedding di frasi: l’operazione di max-pooling. Nonostante la semplicità e il basso sforzo computazionale richiesto, questo modello è in grado di ottenere embedding di frasi altamente informativi e raggiunge risultati in task a livello semantico paragonabili ad altri approcci computazionalmente costosi.
L’integrazione di questi algoritmi in strumenti linguistici come traduttori automatici e agenti di conversazione ha permesso di ottenere risultati sorprendenti nel campo dell’NLP e dell’interazione uomo macchina, rendendo sempre più labile il confine tra linguaggio umano e intelligenza artificiale.