Come viene addestrato il livello di incorporamento nel livello Incorporamento di Keras


14

Come viene addestrato il livello di incorporamento nel livello Incorporamento di Keras? (ad esempio usando tensorflow backend, il che significa che è simile a word2vec, glove o fasttext)

Supponiamo di non utilizzare un incorporamento predefinito.


colah.github.io/posts/2014-07-NLP-RNNs-Representations -> questo post del blog spiega chiaramente come viene addestrato il livello di incorporamento nel livello Incorporamento di Keras . Spero che sia di aiuto.
Akshay U Prabhu,

Risposte:


24

I livelli di incorporamento in Keras sono addestrati come qualsiasi altro livello nell'architettura di rete: sono ottimizzati per ridurre al minimo la funzione di perdita utilizzando il metodo di ottimizzazione selezionato. La principale differenza con altri livelli è che il loro output non è una funzione matematica dell'input. Invece l'input per il layer viene utilizzato per indicizzare una tabella con i vettori di incorporamento [1]. Tuttavia, il motore di differenziazione automatica sottostante non ha alcun problema per ottimizzare questi vettori per ridurre al minimo la funzione di perdita ...

Quindi, non si può dire che il livello Incorporamento in Keras stia facendo lo stesso di word2vec [2]. Ricorda che word2vec si riferisce a una configurazione di rete molto specifica che cerca di imparare un incorporamento che cattura la semantica delle parole. Con il livello di incorporamento di Keras, stai solo cercando di ridurre al minimo la funzione di perdita, quindi se, ad esempio, stai lavorando con un problema di classificazione dei sentimenti, l'incorporamento appreso probabilmente non catturerà la semantica completa delle parole ma solo la loro polarità emotiva ...

Ad esempio, l'immagine seguente presa da [3] mostra l'incorporamento di tre frasi con uno strato Keras Embedding addestrato da zero come parte di una rete supervisionata progettato per rilevare titoli clickbait (sinistra) e pre-formato word2vec immersioni (a destra). Come puoi vedere, gli incorporamenti di word2vec riflettono la somiglianza semantica tra le frasi b) ec). Al contrario, gli incorporamenti generati dal livello Incorporamento di Keras potrebbero essere utili per la classificazione, ma non catturano la somiglianza semantica di b) ec).

inserisci qui la descrizione dell'immagine

Questo spiega perché quando hai un numero limitato di campioni di allenamento, potrebbe essere una buona idea inizializzare il tuo livello di Incorporamento con pesi word2vec , quindi almeno il tuo modello riconosce che "Alpi" e "Himalaya" sono cose simili, anche se non lo fanno entrambi si verificano nelle frasi del set di dati di allenamento.

[1] Come funziona il livello 'Incorporamento' di Keras?

[2] https://www.tensorflow.org/tutorials/word2vec

[3] https://link.springer.com/article/10.1007/s10489-017-1109-7

NOTA: in realtà, l'immagine mostra le attivazioni del livello dopo il livello Incorporamento, ma ai fini di questo esempio non importa ... Vedi maggiori dettagli in [3]


2
Questa è esattamente la spiegazione che stavo cercando! Penso che questa frase dovrebbe essere in grassetto: "Ricorda che word2vec si riferisce a una configurazione di rete molto specifica che cerca di imparare un incorporamento che cattura la semantica delle parole".
Kevin,

0

Il livello di incorporamento è solo una proiezione da un vettore caldo 1 discreto e rado in uno spazio latente continuo e denso. È una matrice di (n, m) in cui n è la dimensione del tuo vocabolario e n è la dimensione dello spazio latente desiderata. Solo in pratica, non è necessario eseguire effettivamente la moltiplicazione di matrici e invece è possibile risparmiare sul calcolo utilizzando l'indice. Quindi, in pratica, è un livello che mappa numeri interi positivi (indici corrispondenti a parole) in vettori densi di dimensione fissa (i vettori di incorporamento).

Puoi addestrarlo per creare un incorporamento Word2Vec utilizzando Skip-Gram o CBOW. Oppure puoi allenarlo sul tuo problema specifico per ottenere un incorporamento adatto al tuo compito specifico a portata di mano. Puoi anche caricare incorporamenti pre-addestrati (come Word2Vec, GloVe ecc.) E quindi continuare l'addestramento sul tuo problema specifico (una forma di apprendimento di trasferimento).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.