Quali sono le principali differenze tra le incorporazioni di parole di ELMo, BERT, Word2vec e GloVe?
La principale differenza tra le incorporazioni di parole di Word2vec, Glove, ELMo e BERT è che
- Le incorporazioni di parole di Word2vec e Glove sono indipendenti dal contesto - questi modelli producono un solo vettore (incorporamento) per ogni parola, combinando tutti i diversi sensi della parola in un unico vettore.
- Questa è l'unica rappresentazione numerica di una parola (che noi chiamiamo embedding/vettore) indipendentemente da dove la parola ricorre in una frase e indipendentemente dai diversi significati che può avere. Per esempio, dopo aver addestrato word2vec/Glove su un corpus (addestramento non supervisionato - non servono etichette) otteniamo come output una rappresentazione vettoriale per, diciamo, la parola "cellula". Quindi, anche se avessimo una frase come "È andato nella cella della prigione con il suo telefono cellulare per estrarre campioni di cellule del sangue dai detenuti", dove la parola cella ha diversi significati in base al contesto della frase, questi modelli semplicemente li collassano tutti in un vettore per "cella" nel loro output.
- ELMo e BERT possono generare diversi word embeddings per una parola che cattura il contesto di una parola - cioè la sua posizione in una frase.
- Per esempio, per lo stesso esempio sopra "Andò alla cella della prigione con il suo telefono cellulare per estrarre campioni di cellule del sangue dai detenuti", sia Elmo che BERT genererebbero diversi vettori per i tre vettori per cella. La prima "cellula" (caso della cella della prigione), per esempio sarebbe più vicina a parole come incarcerazione, crimine ecc. mentre la seconda "cellula" (caso del telefono) sarebbe più vicina a parole come iphone, android, galaxy ecc.
La differenza principale di cui sopra è una conseguenza del fatto che Word2vec e Glove non tengono conto dell'ordine delle parole nel loro addestramento - ELMo e BERT tengono conto dell'ordine delle parole (ELMo usa LSTMS; BERT usa Transformer - un modello basato sull'attenzione con codifiche posizionali per rappresentare le posizioni delle parole).
Un'implicazione pratica di questa differenza è che possiamo usare i vettori word2vec e Glove addestrati su un grande corpus direttamente per compiti a valle. Tutto ciò di cui abbiamo bisogno sono i vettori per le parole. Non c'è bisogno del modello stesso che è stato usato per addestrare questi vettori.
Tuttavia, nel caso di ELMo e BERT, poiché sono dipendenti dal contesto, abbiamo bisogno del modello che è stato usato per addestrare i vettori anche dopo l'addestramento, poiché i modelli generano i vettori per una parola in base al contesto. Possiamo semplicemente usare i vettori indipendenti dal contesto per una parola, se lo scegliamo (ottenere semplicemente il vettore grezzo addestrato dal modello addestrato), ma ciò vanificherebbe lo scopo/vantaggio stesso di questi modelli. La figura qui sotto cattura quest'ultima tendenza di usare gli embeddings di parole insieme ai modelli su cui sono stati addestrati per compiti a valle
Figura da quali sono stati i progressi più significativi del Natural Language Processing nel 2018?
C'è una differenza fondamentale tra il modo in cui BERT genera le sue embeddings e tutti gli altri tre modelli - Glove, Word2vec e ELMo.
- Glove e Word2vec sono modelli basati su parole - cioè i modelli prendono in input parole e in output embeddings di parole.
- Elmo al contrario è un modello basato su caratteri che utilizza convoluzioni di caratteri e può gestire parole fuori dal vocabolario per questa ragione. Le rappresentazioni apprese sono comunque parole (mostrate nella tabella sottostante).
- BERT rappresenta l'input come sottoparole e apprende le embeddings per le sottoparole. Quindi ha un vocabolario che è di circa 30.000 per un modello addestrato su un corpus con un gran numero di parole uniche (~ milioni) - che è molto più piccolo in contrasto con un modello Glove, Word2vec, o ELMo addestrato sullo stesso corpus. Rappresentare l'input come sottoparole invece che come parole è diventata l'ultima tendenza perché rappresenta un equilibrio tra le rappresentazioni basate sui caratteri e quelle basate sulle parole - il beneficio più importante è evitare i casi di OOV (out of vocabulary) di cui soffrono gli altri due modelli (Glove, Word2vec) menzionati nella domanda. C'è stato un recente lavoro che ha dimostrato che i modelli linguistici basati sui caratteri non hanno le stesse prestazioni dei modelli basati sulle parole per grandi corpus, il che è forse un vantaggio che i modelli basati sulle sottoparole hanno rispetto ai modelli di input basati sui caratteri come Elmo. Avere un vocabolario di dimensioni fisse come BERT ha il vantaggio pratico di poter caricare i vettori in una GPU indipendentemente dalle dimensioni del corpus (un problema che impediva ai modelli precedenti come context2vec di essere usati in scala su un grande corpus)
Le differenze sono riassunte nella tabella
La colonna rappresentazioni di apprendimento sopra rappresenta ciò che il modello produce per ogni parola. Anche se l'input di ELMo è basato sui caratteri, la rappresentazione appresa che produce è per una parola. BERT al contrario impara la rappresentazione per le sottoparole.
Correzione: C'era un evidente errore fattuale segnalato da Sriram Sampath che viene corretto. Una versione precedente di questa risposta aveva erroneamente menzionato che ELMo era basato sulle parole nel suo input e quindi non poteva gestire l'OOV. ELMo è basato sui caratteri nel suo input anche se le rappresentazioni apprese sono a livello di parola (a differenza di BERT dove le rappresentazioni apprese sono a livello di sub-parola)
Riferimenti
Esame delle embeddings grezze di BERT
Tendenza più recente nella rappresentazione dell'input per i modelli linguistici NLP allo stato dell'arte
Un metodo di apprendimento di trasferimento promettente ma nascente che potrebbe ridurre o addirittura eliminare in alcuni compiti NLP
Quali sono stati i progressi più significativi nel 2018 nel Natural Language Processing?
Elmo embeddings - embeddings dipendenti dalla posizione delle parole - Valutazioni dei modelli/registri dell'esperienza d'uso
Quali sono i modelli semantici tranne word2vec e quali sono i loro benefici?