• Non ci sono risultati.

car-tyres, mentre i secondi focalizzano la loro attenzione su relazioni incentrate sul singolo termine, ad esempio car-vehicle.

Tipicamente l’approccio utilizzato per costruire i modelli distribuzionali si basa sul conteggio delle co-occorrenze delle parole. Secondo tale approccio le caratteristiche di una parola sono espresse attraverso l’utilizzo di altre parole costruendo di fatto matrici di occorrenza o di contesto. Su queste informa- zioni sono poi applicate le tecniche per l’apprendimento dei modelli rappre- sentanti le parole. Fra queste, il Singular Value Decomposition `e forse una delle tecniche pi`u utilizzate in LSA. Attraverso SVD `e possibile fattorizza- re la matrice delle occorrenze parole-contesto M nel prodotto di tre matrici: due ortonormali e una matrice diagonale caratterizzata dalla presenza degli autovalori di M in ordine decrescente sulla diagonale principale. La matrice M `e comunemente costruita sulla base della Positive Pointwise Mutual Infor- mation che `e una misura del livello di associazione fra due parole definita in termini di probabilit`a congiunta in relazione alla loro probabilit`a marginale, P P M I(w1, w2) = max(0, P (w1, w2)/(P (w1)P (w1))).

Tuttavia, recentemente l’apprendimento delle rappresentazioni delle parole `e quasi esclusivamente eseguito con reti neurali. Questi modelli del linguaggio hanno raggiunto in poco tempo un enorme consenso nella comunit`a della linguistica computazionale. Il motivo di tale successo sar`a argomento della prossima sezione.

3.2 Modelli per il linguaggio e reti neurali

Nelle recenti architetture dei sistemi per l’elaborazione del linguaggio naturale, le rappresentazioni vettoriali di parole apprese utilizzando reti neurali hanno completamente sostituito i modelli costruiti con le tradizionale caratteristiche distribuzionali. In questi modelli le parole sono rappresentate all’interno di uno spazio vettoriale (la cui dimensionalit`a varia da 300 a 800) da un vettore loro associato, denominato word embedding o vettore di parola.

I vettori di parole sono attualmente appresi attraverso l’impiego di reti neurali complesse su enormi collezioni di testo non annotato. Negli ultimi an- ni, grazie ai recenti avanzamenti tecnologici(soprattutto in termini di capacit`a computazionale tensoriale a costi relativamente contenuti) si `e assistito all’e- splosione di modelli costruiti con sofisticate reti neurali. Generalmente par- lando, costruire vettori di parole per un vocabolario ampio utilizzando una rete neurale complessa `e un compito computazionalmente costoso. Ci`o motiva l’assenza di modelli addestrati con questa metodologia nel recente passato.

I vettori di parole sono molto vicini ai modelli del linguaggio. Questi mo- delli provano principalmente a definire la probabilit`a di una parola wi come

condizionata dalle precedenti n 1 parole p(wi|wi 1, . . . , wi n+1). Applicando

la regola di costruzione a catena, sotto l’assunzione della propriet`a di Markov del processo, `e possibile approssimare il prodotto dell’intera frase o del do- cumento con il prodotto delle singole probabilit`a riferite alle parole e alle n

parole che la precedono come: p(w1, . . . , wT) =

Y

i

p(wi|wi 1, . . . , wi n+1)

Nei modelli per il linguaggio basati su n-gram, ad esempio, la probabilit`a di una parola pu`o essere calcolata basandosi sulla frequenza dei suoi costituenti n-gram:

p(wi|wi 1, . . . , wi n+1) = count(wi n+1, . . . , wi 1, wi)

In questo modo risulta banale definire la probabilit`a di un bigramma o del pi`u famoso 5-gram spesso utilizzato come modello di riferimento per l’analisi delle prestazioni.

Nel contesto delle reti neurali quanto appena detto pu`o essere realizzato definendo un semplice classificatore softmax come livello finale della rete:

p(wi|wi 1, . . . , wi n+1) = exp(hTv0 wi) P wt2V exp(h Tv0 wt) (3.1)

Qui il prodotto scalare hTv0

wi calcola la log-probabilit`a non normalizzata di

wi, mentre il denominatore `e il fattore di normalizzazione calcolato sull’intero

vocabolario. Il vettore h `e il vettore prodotto dal penultimo livello della rete, mentre v0wi `e il vettore di uscita della rete.

Figura 3.1. Il modello neurale per il linguaggio proposto da Bengio in [6].

Si noti qui che il vettore v0

wi, pur rappresentando la parola wi, `e appreso

in modo indipendente dal vettore d’ingresso vwi. Soprattutto si noti come sia

necessario calcolare la probabilit`a per ogni parola wi nel vocabolario. Sebbene

costoso in termini computazionale, ci`o pu`o essere realizzato come semplice moltiplicazione fra il vettore h e la matrice dei pesi le cui righe si riferiscono ai singoli vettori v0wi per ogni wi nel vocabolario.

3.2 Modelli per il linguaggio e reti neurali 51

Nella sua prima definizione di modello neurale per il linguaggio, Bengio propose di impiegare una rete neurale con un solo livello intermedio. L’obiet- tivo di tale modello era predire la prossima parola data una sequenza. Una sua rappresentazione `e mostrata in figura 3.2.

Figura 3.2. Modello neurale per il linguaggio proposto da Bengio in [6].

L’architettura in 3.2 rappresenta il prototipo a partire dal quale i pi`u mo- derni approcci sono costruiti. E’ possibile infatti trovare all’interno di questi ultimi i blocchi generali qui definiti:

Embedding Layer : `e il livello che genera i vettori di parole moltiplicando un vettore di indici con la matrice contenete tutti i vettori;

Intermediate Layer : uno o pi`u livelli intermedi che producono rappresen- tazioni del vettore d’ingresso;

Classification Layer : `e il livello finale che produce una distribuzione di probabilit`a su ogni parola del vocabolario.

Addestrare il modello ha come obiettivo la massimizzazione della seguente funzione oggetto: J✓= 1 T T X t=1 log p(wt|wt 1, . . . , wt n+1) (3.2)

Durante l’apprendimento quindi si tenta di massimizzare la media delle log-probabilit`a di tutte le parole dell’intero vocabolario assumendo date n precedenti parole.

Tuttavia, come osservato da Bengio, il livello finale basato sul classificatore softmax rappresenta il punto critico del sistema. Calcolare tale valore ha infatti un costo proporzionale al numero di parole nel vocabolario, che tipicamente si attesta sull’ordine di qualche centinaio di migliaia. Trovare quindi un modo per mitigare questo costo `e al centro delle successive ricerche sui modelli neurali per il linguaggio.