es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué se comparten las matrices de peso entre capas de incrustación en el documento ‘Attention is All You Need’?

Estoy utilizando el módulo Transformer en pytorch del artículo “Attention is All You Need”. En la página 5, los autores afirman que:

En nuestro modelo, compartimos la misma matriz de pesos entre las dos capas embedding y la transformación lineal pre-softmax, similar a [30]. (página 5)

La capa de embedding, al menos en pytorch, es un tensor aprendible cuyas columnas son los vectores de embedding correspondientes a cada palabra. Mi confusión surge del hecho de que en el artículo, el Transformer aprende una tarea de traducción entre idiomas (es decir, inglés a alemán). Entonces, ¿cómo podrían compartirse los pesos de embedding para los vectores de embedding en inglés y alemán?

Además, ¿cómo podrían compartirse los pesos entre el embedding de salida (que va desde el índice de palabra hasta el vector de embedding) y la capa lineal (que va desde el vector de embedding hasta las probabilidades de palabra)? Según tengo entendido, no hay ninguna restricción que exija que el tensor de embedding deba ser ortogonal (para que su inversa sea su transpuesta).

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Los autores del artículo “Attention is All You Need” afirman que comparten la misma matriz de pesos entre las dos capas de incrustación y la transformación lineal previa a la aplicación de la función softmax en su modelo Transformer. La capa de incrustación en pytorch es un tensor cuyas columnas representan los vectores de incrustación para cada palabra. Sin embargo, surge confusión en cuanto a cómo los pesos de incrustación pueden ser compartidos para los vectores de incrustación en inglés y alemán si el Transformer está aprendiendo a traducir entre idiomas.

    Para aclarar, los autores no compartieron los pesos entre los vectores de incrustación en inglés y alemán. En cambio, compartieron los pesos entre las incrustaciones del lenguaje origen y del lenguaje destino. Específicamente, los autores utilizaron una matriz de incrustación origen-destino compartida, donde cada columna de la matriz representa un vector de incrustación para una palabra específica en los vocabularios tanto del lenguaje origen como del lenguaje destino. Por lo tanto, la misma matriz de pesos puede ser utilizada tanto para las incrustaciones del lenguaje origen como para las del lenguaje destino.

    En cuanto a la segunda pregunta, los pesos pueden ser compartidos entre la incrustación de salida y la capa lineal porque en esencia ambas están mapeando desde el espacio de incrustación hacia probabilidades de palabras. La capa de incrustación de salida mapea desde el espacio de incrustación hacia un vector de incrustación, y la capa lineal mapea desde el vector de incrustación hacia probabilidades de palabras. Por lo tanto, tiene sentido compartir la misma matriz de pesos entre estas dos capas.

    Cabe señalar que no existe un requisito para que el tensor de incrustación sea ortogonal. Los autores no impusieron ninguna restricción de este tipo en el artículo.

Comments are closed.