Embedding: spazio di embedding ed embedding statici

Un embedding è una rappresentazione vettoriale di dati in uno spazio di embedding. In genere, un modello trova potenziali embedding proiettando lo spazio ad alta dimensionalità di vettori di dati iniziali in uno spazio a bassa dimensionalità. Per una discussione sul confronto di dati ad alta dimensionalità rispetto a dati a bassa dimensionalità, vedi il modulo Dati categorici .

Gli embedding semplificano il machine learning su grandi vettori di caratteristiche, come i vettori sparsi che rappresentano elementi di pasti discussi nella sezione precedente. A volte le posizioni relative degli elementi nello spazio di embedding hanno una potenziale relazione semantica, ma spesso il processo di ricerca di uno spazio a bassa dimensionalità, e le posizioni relative in quello spazio, non è interpretabile dagli esseri umani. Pertanto, gli embedding che ne risultano sono difficili da comprendere.

Tuttavia, nell'interesse della comprensione umana, per un'idea di come i vettori di embedding rappresentano le informazioni, considera la rappresentazione unidimensionale che segue dei piatti hot dog, pizza, insalata, kebab e boršč, su una scala da "meno simile a un panino" a "più simile a un panino." La singola dimensione è una misura immaginaria di "paninosità".

Figura 3. Su un asse di paninosità, dal meno simile al più simile:
    boršč, insalata, pizza, hot dog, kebab.
Figura 3. Cibi in una dimensione immaginaria di "paninosità".

Dove si troverebbe uno strudel di mele ? Presumibilmente si troverebbe tra hot dog e shawarma. Ma lo strudel di mele sembra avere anche una dimensione aggiuntiva di dolcezza o dessertosità che lo differenzia molto dalle altre opzioni. L'immagine che segue lo mostra aggiungendo la dimensione "dessertosità":

Figura 4. La stessa immagine di prima, ma con un asse verticale di
    dessertosità. Lo strudel di mele si trova tra l'hot dog e il kebab, ma più in alto
    sull'asse orizzontale e più in alto sull'asse della dessertosità.
Figura 4. Cibi rappresentati sia per "paninosità" sia per "dessertosità."

Un embedding rappresenta ogni elemento in uno spazio a n dimensioni con i numeri della rappresentazione in virgola mobile n (tipicamente in un intervallo da –1 a 1 o da 0 a 1). L'embedding nella Figura 3 rappresenta ogni cibo in uno spazio unidimensionale con una singola coordinata, mentre la Figura 4 rappresenta ogni cibo in uno spazio bidimensionale con due coordinate. Nella Figura 4, "strudel di mele" si trova nel quadrante in alto a destra del grafico e potrebbe essere assegnato al punto (0,5 - 0,3), mentre "hot dog" è nel quadrante in basso a destra del grafico e potrebbe essere assegnato al punto (0,2 - 0,5).

In un embedding, la distanza tra uno qualsiasi dei due elementi può essere calcolata matematicamente ed è interpretabile come misura di relativa similarità tra questi due elementi. Due elementi vicini tra loro, come shawarma e hot dog nella Figura 4, sono più vicini in base alla rappresentazione del modello dei dati rispetto a due elementi più distanti l'uno dall'altro, come apple strudel e borscht.

Tieni inoltre presente che nello spazio in 2D della Figura 4, apple strudel è molto più lontano da shawarma e hot dog di quanto sarebbe nello spazio in 1D. Ciò corrisponde all'intuizione: apple strudel non è così simile a un hot dog o a un kebab come hot dog e kebab sono simili tra loro.

Ora considera il boršč, che è più liquido di altri elementi. Questo suggerisce una terza dimensione, liquidità, o quanto liquido può essere un cibo. Se aggiungiamo questa dimensione, gli elementi potrebbero essere visualizzati in 3D in questo modo:

Figura 5. La stessa immagine di prima, ma con un terzo asse di liquidità
    ortogonale agli altri due e il boršč si allontana molto in quell'asse.
Figura 5. Cibi rappresentati per "paninosità", "dessertosità" e "liquidità".

Dove si troverebbe il tangyuan in questo spazio 3D? È simile a una zuppa, come il boršč ed è dolce come una torta, come lo strudel di mele, e decisamente non assomiglia a un panino. Ecco un possibile posizionamento:

Figura 6. La stessa immagine di prima, ma con il tangyuan posizionato in alto su
dessertosità e liquidità e in basso su paninosità.
Figura 6. Aggiungiamo il tangyuan all'immagine precedente in alto su "dessertosità" e "liquidità" e in basso su "paninosità".

Nota quante informazioni vengono espresse in queste tre dimensioni. Potresti immaginare di aggiungere ulteriori dimensioni, come la carnosità o il livello di cottura di un cibo, tramite 4D, 5D e spazi dimensionali ancora maggiori che sono difficili da visualizzare.

Spazi di embedding del mondo reale

Nel mondo reale, gli spazi di embedding sono d-dimensionali, dove d è molto superiore a 3, ma inferiore alla dimensionalità dei dati e le relazioni tra i punti dati non sono necessariamente intuitive come nell'illustrazione fittizia sopra. (Per il word embedding, d è spesso 256, 512 o 1024.1)

In pratica, il professionista del ML di solito imposta l'attività specifica e il numero di dimensioni di embedding. Il modello tenta poi di organizzare gli esempi di addestramento in modo che siano vicini in uno spazio di embedding con il numero specificato di dimensioni oppure usa il numero di dimensioni se d non è fisso. Raramente le dimensioni individuali sono comprensibili come "dessertosità" o "liquidità". A volte, ciò che "significano" può essere dedotto, ma non è sempre il caso.

Gli embedding in genere saranno specifici per l'attività e diversi tra loro se l'attività è diversa. Per esempio, gli embedding generati da un modello di classificazione vegetariano rispetto a uno non vegetariano saranno diversi da quelli generati da un modello che suggerisce i piatti in base all'ora del giorno o alla stagione. "Cereali" e "salsiccia da colazione" probabilmente saranno vicini nello spazio di embedding di un modello basato sul momento della giornata, ma lontani nello spazio di embedding di un modello vegetariano rispetto a non vegetariano, per esempio.

Embedding statici

Mentre gli embedding sono diversi da attività ad attività, un'attività ha dell'applicabilità generale: la predizione del contesto di una parola. I modelli addestrati per predire il contesto di una parola si basano sul fatto che le parole che compaiono in contesti simili sono semanticamente correlate. Per esempio, i dati di addestramento che includono le frasi "Hanno cavalcato un asino nel Grand Canyon" e "Hanno cavalcato un cavallo lungo il canyon" suggeriscono che "cavallo" compaia in contesti simili ad "asino". Si osserva che gli embedding basati sulla similarità semantica funzionano in modo ottimale per molte attività generiche basate sul linguaggio.

Anche se si tratta di un esempio meno recente e ampiamente superato da altri modelli, il modello word2vec rimane utile per l'illustrazione. word2vec si addestra su un corpus di documenti per ottenere un singolo embedding globale per parola. Quando ogni parola o punto dati ha un singolo vettore di embedding, si tratta di embedding statico. Il video che segue tratta di un'illustrazione semplificata dell'addestramento di word2vec.

La ricerca suggerisce che questi embedding statici, una volta addestrati, codifichino alcuni gradi di informazioni semantiche, in particolare nelle relazioni tra parole. Ciò significa che le parole che vengono usate in contesti simili saranno più vicine tra loro nello spazio di embedding. I vettori di embedding specifici generati dipenderanno dal corpus usato per l'addestramento. Vedi T. Mikolov et al (2013), "Efficient estimation of word representations in vector space", per i dettagli.


  1. François Chollet, Deep Learning with Python (Shelter Island, NY: Manning, 2017), 6.1.2.