L'obiettivo principale degli incorporamenti di parole è rappresentare le parole in modo da catturarne le relazioni semantiche e le informazioni contestuali. Questi vettori sono rappresentazioni numeriche in uno spazio vettoriale continuo, dove le posizioni relative dei vettori riflettono le somiglianze semantiche e le relazioni tra le parole.
Il motivo per cui i vettori vengono utilizzati per rappresentare le parole è che la maggior parte degli algoritmi di machine learning, comprese le reti neurali, non sono in grado di elaborare il testo normale nella sua forma grezza. Richiedono numeri come input per eseguire qualsiasi attività.
Il processo di creazione delle incorporazioni di parole prevede l'addestramento di un modello su un ampio corpus di testo (ad esempio, Wikipedia o Google News). Il corpus viene pre-elaborato suddividendo il testo in parole, rimuovendo le stop word e la punteggiatura ed eseguendo altre attività di pulizia del testo.
Quindi viene applicata al testo una finestra contestuale "scorrevole" e, per ogni parola target, le parole circostanti all'interno della finestra vengono considerate come parole di contesto. Il modello di incorporamento delle parole è addestrato per prevedere una parola target in base alle parole del contesto o viceversa.
In questo modo i modelli riescono a catturare diversi modelli linguistici e di assegnare a ogni parola un vettore unico, che rappresenta la posizione della parola in uno spazio vettoriale continuo. Le parole con significati simili sono posizionate l'una vicino all'altra, e la distanza e la direzione tra i vettori codificano il grado di somiglianza.
Il processo di addestramento comporta la regolazione dei parametri del modello di incorporamento per ridurre al minimo la differenza tra le parole previste e quelle effettive nel contesto.
Ecco un esempio semplificato di incorporamenti di parole per un corpus molto piccolo (6 parole), dove ogni parola è rappresentata come vettore tridimensionale:
cat [0,2, -0,4, 0,7]
cane [0,6, 0,1, 0,5]
mela [0,8, -0,2, -0,3]
arancia [0,7, -0,1, -0,6]
felice [-0,5, 0,9, 0,2]
triste [0,4, -0,7, -0,5]
In questo esempio, ogni parola (ad es. "gatto", "cane", "mela") è associata a un vettore univoco. I valori nel vettore rappresentano la posizione della parola in uno spazio vettoriale tridimensionale continuo. Si prevede che le parole con significati o contesti simili abbiano rappresentazioni vettoriali simili. Ad esempio, i vettori per "gatto" e "cane" sono vicini tra loro, riflettendo la loro relazione semantica. Allo stesso modo, i vettori per "felice" e "triste" hanno direzioni opposte, indicando i loro significati contrastanti.
L'esempio di cui sopra è altamente semplificato a fini illustrativi. Gli incorporamenti di parole effettive hanno in genere centinaia di dimensioni per cogliere relazioni e sfumature di significato più intricate.