Embedding Layer
Enviado por Hugo Ubilla • 5 de Mayo de 2022 • Apuntes • 879 Palabras (4 Páginas) • 102 Visitas
Embedding Layer, Transforma interos positivos en vectores de tamaño fijo (no dice mucho). Ya que si imaginamos que estamos haciendo NLP, y tenemos 2000 palabras. Si usamos one-hot, cada palabra queda representada en un vector de 2000 enteros done 1999 son zeros.
Que hace una embedding layer con un ejemplo:
Se tiene la oración: “Deep learning is very Deep”. Primero, usamos embedding layer para codificar esta oración, asignando un índice a cada palabra, por lo que quedaría más o menos así:
1 2 3 4 1
Luego se genera una “embedding matrix”, Donde cada índice es mapeado por “Latent Factors”. Uno puede elegir el largo de estos, en este caso usaremos 6.
[pic 1]
En vez de usar one-hot encoder, usamos la embedding matrix para mantener el tamaño de cada vector mucho más pequeño. Ahora, la palabra Deep es representada por [.32, .02, .48, .21, .56, .15]. Entonces, cada palabra es reemplazada por un índice que se usa para buscar el vector en la embedding matrix. Esto es eficiente, ya que los embedding vectors son actualizados durante el entrenamiento, y así reconocer que palabras son similares en un espacio multi dimensional.
Si le aplicamos t-sne, podemos ver cuales se parecen.
Transformer ¿Qué es?
Toma una secuencia de texto de entrada con entrada y produce otra secuencia de texto de salida. Ejemplo, un traductor.
[pic 2]
En su núcleo, tiene enconder y decoder layers. Ambas capas tienen su embedding layer, para sus respectivos inputs.
[pic 3]
[pic 4]
El enconder es un modulo reutilizable.
¿Qué hace attention?
Cuando se procesa una palabra, Attention permite al modelo enfocarce en otras palabras del input que son cercanas. Es decir, se usa self-attention relacionando cada palabra en la secuencia de entrada, a cada otra palabra.
[pic 5]
1.- La secuencia de entrada se convierte con Embedding.
2.- La pila de encoder produce una representación condificada en la secuencia de entrada.
3.- La secuencia de destino se antepone con un “token” al inicio de la oración, y alimenta el decoder.
4.- La pila de decoder procesa el 3 junto a la pila de las representaciones de encoder, y produce un representación encoded de la secuencia final.
5.- La secuencia de salida convierte en probabilidades de palabras.
6.- Se compara en la loss function, el output sequence con el target sequence.
Para el caso de seq2seq, se hace lo siguiente:
[pic 6]
Attention is all you need
Se genera una secuencia de hidden states h_t, en función de un h_(t-1) y del input para position t.
El encondes mapea una secuencia de entrada (x_1, … , x_n), a una secuencia z = (z_1, …, z_n).
Dado z el decoder genera una secuencia de salida (y_1, …, y_m) de símbolos. En cada paso, el modelo es auto regresivo, consumiendo los símbolos previos como un input adicional cuando se genera el próximo.
El transformador sigue la siguiente arquitectura, usando self-attention apilado, y point wise, fully connected layers para encoder y decoder. Se muestra en la siguiente figura.
...