La atención es todo lo que necesitas Ashish Vaswani* Google Brain avaswani@google.com Noam Shazeer* Google Brain noam@google.com Niki Parmar* Google Research nikip@google.com Jakob Uszkoreit* Google Research usz@google.com Llion Jones* Google Research llion@google.com Aidan N. Gomez* † University of Toronto aidan@cs.toronto.edu Los modelos con mejor rendimiento también conectan el codificador y el decodificador a través de un mecanismo de atención. Proponemos una nueva arquitectura de red simple, el Transformer, basada únicamente en mecanismos de atención, prescindiendo totalmente de recurrencias y convoluciones. Los experimentos en dos tareas de traducción automática muestran que estos modelos son superiores en calidad, siendo más paralelismos y requiriendo significativamente menos tiempo para entrenar. Nuestro modelo logra 28.4 BLEU en la tarea de traducción de inglés a alemán de la WMT 2014, mejorando sobre los mejores resultados existentes, incluyendo conjuntos, por más de 2 BLEU. En la tarea de traducción de inglés a francés de la WMT 2014, nuestro modelo establece una nueva puntuación BLEU modelo único de última generación de 41,8 después de entrenar durante 3,5 días en ocho GPUs, una pequeña fracción de los costos de formación de los mejores modelos de la literatura. Demostramos que el transformador generaliza bien a otras tareas aplicándolo con éxito a la circunscripción inglesa analizando tanto con datos de formación grandes como limitados. 1 Introducción Las redes neurales recidivantes, la memoria a corto plazo [13] y las redes neurales recidivantes cerradas [7] en particular, se han establecido firmemente como enfoques de vanguardia en el modelado de secuencias y la contribución de igualdad. El orden de la lista es aleatorio. Jakob propuso reemplazar las RNN con autoatención y comenzó el esfuerzo para evaluar esta idea. Ashish, con Illia, diseñó e implementó los primeros modelos de Transformer y ha participado de manera crucial en todos los aspectos de este trabajo. Noam propuso escalar la atención del producto punto, la atención multi-cabeza y la representación de posición libre de parámetros y se convirtió en la otra persona involucrada en casi cada detalle. Niki diseñó, implementó, afina y evaluó innumerables variantes de modelos en nuestra base de código original y tensor2tensor. Llion también experimentó con nuevas variantes de modelos, fue responsable de nuestra base de código inicial, e inferencias y visualizaciones eficientes. Lukasz y Aidan pasaron incontables largos días diseñando e implementando varias partes de tensor2tensor, reemplazando nuestra base de código anterior, mejorando enormemente los resultados y acelerando masivamente nuestra investigación. † Trabajo realizado en Google Brain. ‡ Trabajo realizado en Google Research. 31a Conferencia sobre Sistemas de Procesamiento de Información Neural (NIPS 2017), Long Beach, CA, EE.UU. arXiv:1706.03762v5 [cs.CL] 6 Dic 2017 problemas de transducción como el modelado de idiomas y la traducción automática [35, 2, 5]. Desde entonces, numerosos esfuerzos han seguido limitando los límites de los modelos lingüísticos recurrentes y las arquitecturas de codificador-decodificador [38, 24, 15]. Los modelos recurrentes suelen factorizar el cálculo a lo largo de las posiciones de símbolo de las secuencias de entrada y salida. Alineando las posiciones a los pasos en el tiempo de cálculo, generan una secuencia de estados ocultos ht, en función del estado oculto anterior ht−1 y la entrada para la posición t. Esta naturaleza inherentemente secuencial impide la paralelización dentro de ejemplos de entrenamiento, que se vuelve crítica en longitudes de secuencia más largas, ya que las restricciones de memoria limitan el loteo a través de ejemplos. El trabajo reciente ha logrado mejoras significativas en la eficiencia computacional a través de trucos de factorización [21] y computación condicional [32], al tiempo que mejora el desempeño del modelo en el caso de este último. Sin embargo, sigue existiendo la restricción fundamental de la computación secuencial. Los mecanismos de atención se han convertido en una parte integral de modelos convincentes de modelado de secuencias y transduc-ciones en diversas tareas, permitiendo el modelado de dependencias sin tener en cuenta su distancia en las secuencias de entrada o salida [2, 19]. Sin embargo, en todos los casos, salvo en unos pocos [27], estos mecanismos de atención se utilizan conjuntamente con una red recurrente. En este trabajo proponemos el Transformer, una arquitectura modelo que evita la recurrencia y en su lugar depende enteramente de un mecanismo de atención para atraer dependencias globales entre entrada y salida. El transformador permite una paralelización significativamente mayor y puede alcanzar un nuevo estado de la técnica en la calidad de la traducción después de haber sido entrenado por tan sólo doce horas en ocho P100 GPUs. 2 Antecedentes El objetivo de reducir la computación secuencial también forma la base de la GPU Neural Extendida [16], ByteNet [18] y ConvS2S [9], todas las cuales utilizan redes neuronales convolucionales como bloque básico, computando representaciones ocultas en paralelo para todas las posiciones de entrada y salida. En estos modelos, el número de operaciones necesarias para relacionar señales de dos posiciones de entrada o salida arbitrarias crece en la distancia entre posiciones, linealmente para ConvS2S y logarítmicamente para ByteNet. Esto hace que sea más difícil aprender las dependencias entre posiciones distantes [12]. En el Transformer esto se reduce a un número constante de operaciones, aunque a costa de una resolución efectiva reducida debido al promedio de posiciones ponderadas por la atención, un efecto que contrarrestamos con la Atención Multi-Cabeza como se describe en la sección 3.2. La autoatención, a veces llamada intraatención, es un mecanismo de atención que relaciona diferentes posiciones de una sola secuencia para calcular una representación de la secuencia. La autoatención se ha utilizado con éxito en una variedad de tareas, incluyendo comprensión de lectura, resumen abstracto, involucramiento textual y representaciones de oraciones independientes de tareas de aprendizaje [4, 27, 28, 22]. Las redes de memoria de extremo a extremo se basan en un mecanismo de atención recurrente en lugar de una repetición alineada en secuencia y se ha demostrado que funcionan bien en tareas de respuesta de preguntas y modelado de lenguaje simple [34]. Sin embargo, según nuestro conocimiento, el transformador es el primer modelo de transducción basado enteramente en la autoatención para calcular las representaciones de su entrada y salida sin utilizar RNNs alineadas con secuencias o convolución. En las siguientes secciones, describiremos el Transformador, motivaremos la autoatención y discutiremos sus ventajas sobre modelos como [17, 18] y [9]. 3 Model Architecture Los modelos de transducción de secuencia neural más competitivos tienen una estructura de codificador-decodificador [5, 2, 35]. Aquí, el codificador mapea una secuencia de entrada de representaciones de símbolos (x1,..., xn) a una secuencia de representaciones continuas z = (z1,..., zn). Dado z, el decodificador genera una secuencia de salida (y1,..., ym) de símbolos un elemento a la vez. En cada paso el modelo es auto-regresivo [10], consumiendo los símbolos previamente generados como entrada adicional al generar el siguiente. El transformador sigue esta arquitectura general utilizando la autoatención apilada y las capas puntiagudas, totalmente conectadas tanto para el codificador como para el decodificador, que se muestran en las mitades izquierda y derecha de la Figura 1, respectivamente. 2 Figura 1: El transformador - arquitectura de modelos. 3.1 Encoder y Decoder Encoder: El codificador se compone de una pila de N = 6 capas idénticas. Cada capa tiene dos subcapas. La primera es un mecanismo de autoatención multi-cabeza, y la segunda es una simple, posición-sabia totalmente conectada red de avance. Empleamos una conexión residual [11] alrededor de cada una de las dos subcapas, seguida de la normalización de la capa [1]. Es decir, la salida de cada subcapa es LayerNorm(x + Subcapa(x)), donde Subcapa(x) es la función implementada por la misma subcapa. Para facilitar estas conexiones residuales, todas las subcapas del modelo, así como las capas de incrustación, producen salidas de dimensión dmodel = 512. Decodificador: El decodificador también se compone de una pila de N = 6 capas idénticas. Además de las dos subcapas en cada capa de codificador, el decodificador inserta una tercera subcapa, que realiza la atención de múltiples cabezas sobre la salida de la pila de codificador. Al igual que el codificador, empleamos conexiones residuales alrededor de cada una de las subcapas, seguidas de la normalización de capas. También modificamos la subcapa de autoatención en la pila de decodificadores para evitar que las posiciones atiendan a posiciones posteriores. Este enmascaramiento, combinado con el hecho de que las incrustaciones de salida se compensan por una posición, asegura que las predicciones para la posición I pueden depender sólo de las salidas conocidas en posiciones inferiores a i. 3.2 Atención Una función de atención se puede describir como asignación de una consulta y un conjunto de pares de valores clave a una salida, donde la consulta, claves, valores y salida son todos vectores. La salida se calcula como una suma ponderada de los valores, donde el peso asignado a cada valor se calcula por una función de compatibilidad de la consulta con la clave correspondiente. 3 Atención escalada de punto-producto Atención multicabeza Figura 2: (izquierda) Atención escalada de punto-producto. (derecha) La atención multicabeza consiste en varias capas de atención que se ejecutan en paralelo. 3.2.1 Atención de punto-producto escalado Llamamos nuestra atención particular "Atención de punto-producto escalado" (Figura 2).La entrada consiste en consultas y claves de dimensión dk, y valores de dimensión dv. Calculamos los productos de punto de la consulta con todas las claves, dividimos cada uno por Łdk, y aplicamos una función softmax para obtener los pesos sobre los valores. En la práctica, calculamos la función de atención en un conjunto de consultas simultáneamente, empaquetadas juntas en una matriz Q. Las claves y los valores también se envasan juntos en matrices K y V. Calculamos la matriz de salidas como: Atención(Q, K, V ) = softmax(QKT Łdk )V (1) Las dos funciones de atención más utilizadas son la atención aditiva [2] y la atención al producto punto (multi-plicativo). La atención del producto del punto es idéntica a nuestro algoritmo, excepto para el factor de escala de 1 dk. La atención del aditivo calcula la función de compatibilidad usando una red de avance con una sola capa oculta. Mientras que los dos son similares en complejidad teórica, la atención del producto punto es mucho más rápida y eficiente en el espacio en la práctica, ya que se puede implementar usando un código de multiplicación de matriz altamente optimizado. Mientras que para los valores pequeños de dk los dos mecanismos funcionan de manera similar, la atención aditiva supera la atención del producto sin escalar para valores mayores de dk [3]. Sospechamos que para los grandes valores de dk, los productos de punto crecen grande en magnitud, empujando la función softmax a regiones donde tiene extremadamente pequeños gradientes 4. Para contrarrestar este efecto, escalamos los productos de punto por 1 dk. 3.2.2 Atención multi-cabeza En lugar de realizar una sola función de atención con claves dmodel-dimensionales, valores y consultas, encontramos beneficioso proyectar linealmente las consultas, claves y valores h veces con proyecciones lineales aprendidas diferentes a dimensiones dk, dk y dv, respectivamente. En cada una de estas versiones proyectadas de consultas, claves y valores realizamos la función de atención en paralelo, produciendo valores de salida dv-dimensional. Estos son concatenados y una vez más proyectados, resultando en los valores finales, como se muestra en la Figura 2. 4Para ilustrar por qué los productos de punto se hacen grandes, asuma que los componentes de q y k son variables aleatorias independientes con media 0 y varianza 1. Entonces su producto punto, q · k = dk i=1 qiki, tiene media 0 y varianza dk. 4 La atención multicabeza permite que el modelo atienda conjuntamente a la información de diferentes subespacios de representación en diferentes posiciones. Con un solo cabezal de atención, el promedio inhibe esto. MultiHead(Q, K, V ) = Concat(head1,..., headh)W O where headi = Attention(QW Q i, KW K i, V W V i ) Donde las proyecciones son matrices paramétricas W Q i.» Rdmodel×dk, W K i.» Rdmodel×dk, W V i.» Rdmodel×dv y W O » Rhdv×dmodel. En este trabajo empleamos h = 8 capas de atención paralelas, o cabezas. Para cada una de ellas utilizamos dk = dv = dmodel/h = 64. Debido a la dimensión reducida de cada cabezal, el costo total computacional es similar al de la atención de una sola cabeza con plena dimensionalidad. 3.2.3 Aplicaciones de atención en nuestro modelo El transformador utiliza la atención multi-cabeza de tres maneras diferentes: • En capas de "atención de codificador-decodificador", las consultas provienen de la capa de decodificador anterior, y las claves de memoria y los valores provienen de la salida del codificador. Esto permite que cada posición en el decodificador asista sobre todas las posiciones en la secuencia de entrada. Esto imita los mecanismos de atención típicos del codificador-decodificador en modelos secuenciales como [38, 2, 9]. • El codificador contiene capas de autoatención. En una capa de autoatención todas las claves, valores y consultas provienen del mismo lugar, en este caso, la salida de la capa anterior en el codificador. Cada posición en el codificador puede atender a todas las posiciones en la capa anterior del codificador. • Del mismo modo, las capas de autoatención en el decodificador permiten que cada posición en el decodificador atienda a todas las posiciones en el decodificador hasta e incluyendo esa posición. Necesitamos evitar el flujo de información hacia la izquierda en el decodificador para preservar la propiedad autorregresiva. Implementamos esto dentro de la atención de punto-producto escalado mediante el enmascaramiento (estableciendo a ) todos los valores en la entrada de la softmax que corresponden a conexiones ilegales. Ver Figura 2. 3.3 Redes de avance hacia la posición Además de las subcapas de atención, cada una de las capas de nuestro codificador y decodificador contiene una red de avance hacia la alimentación totalmente conectada, que se aplica a cada posición de forma separada e idéntica. Esto consiste en dos transformaciones lineales con una activación ReLU en el medio. FFN(x) = max(0, xW1 + b1)W2 + b2 (2) Mientras que las transformaciones lineales son las mismas en diferentes posiciones, utilizan parámetros diferentes de capa a capa. Otra forma de describir esto es como dos convoluciones con el tamaño del núcleo 1. La dimensión de entrada y salida es dmodel = 512, y la capa interna tiene dimensión dff = 2048. 3.4 Incrustaciones y Softmax Al igual que otros modelos de transducción de secuencias, utilizamos incrustaciones aprendidas para convertir los tokens de entrada y tokens de salida a vectores de dmodel de dimensión. También utilizamos la habitual transfor-mation lineal y la función softmax para convertir la salida del decodificador a las probabilidades del siguiente paso predicho. En nuestro modelo, compartimos la misma matriz de peso entre las dos capas de incrustación y la transformación lineal pre-softmax, similar a [30]. En las capas de incrustación, multiplicamos esos pesos por el modelo D. 3.5 Codificación posicional Dado que nuestro modelo no contiene recurrencia ni convolución, para que el modelo pueda hacer uso del orden de la secuencia, debemos inyectar alguna información sobre la posición relativa o absoluta de las 5 Tabla 1: Longitudes máximas de recorrido, complejidad por capa y número mínimo de operaciones secuenciales para diferentes tipos de capas. n es la longitud de la secuencia, d es la dimensión de representación, k es el tamaño del núcleo de las convoluciones y r el tamaño del barrio en la autoatención restringida. Tipo de capa Complejidad por capa Secuencial Ruta Máxima Longitud Operaciones Autoatención O(n2 · d) O(1) O(1) O(1) O(n · d2) O(n) O(n) O(n) Convolucional O(k · n · d2) O(1) O(logk(n)) Autoatención (restricto) O(r · n · d) O(1) O(n/r) tokens en la secuencia. A este fin, añadimos "codificación de posición" a las incrustaciones de entrada en la parte inferior de las pilas de codificador y decodificador. Las codificaciones posicionales tienen la misma dimensión dmodel que las incrustaciones, por lo que las dos pueden resumirse. Hay muchas opciones de codificaciones posicionales, aprendidas y fijas [9]. En este trabajo, utilizamos funciones de seno y coseno de diferentes frecuencias: PE(pos,2i) = sin(pos/100002i/dmodel) PE(pos,2i+1) = cos(pos/100002i/dmodel) donde pos es la posición e i es la dimensión. Es decir, cada dimensión de la codificación posicional corresponde a un sinusoide. Las longitudes de onda forman una progresión geométrica de 2 Elegimos esta función porque hicimos una hipótesis que permitiría al modelo aprender fácilmente a asistir por posiciones relativas, ya que para cualquier offset fijo k, PEpos+k se puede representar como una función lineal de PEpos. También experimentamos con el uso de incrustaciones posicionales aprendidas [9] en su lugar, y encontramos que las dos versiones produjeron resultados casi idénticos (ver Tabla 3 fila (E)). Elegimos la versión sinusoidal porque puede permitir que el modelo se extrapole para secuenciar longitudes más largas que las encontradas durante el entrenamiento. 4 ¿Por qué la autoatención?En esta sección comparamos varios aspectos de las capas de autoatención con las capas recurrentes y convolu-cionales comúnmente utilizadas para asignar una secuencia de longitud variable de las representaciones de símbolos (x1,..., xn) a otra secuencia de longitud igual (z1,..., zn), con xi, zi Rd, como una capa oculta en un codificador o decodificador de secuencia típico. Motivando nuestro uso de la auto-atención consideramos tres desiderata. Uno es la complejidad computacional total por capa. Otra es la cantidad de cálculo que puede ser paralelizado, medida por el número mínimo de operaciones secuenciales requeridas. El tercero es la longitud del camino entre dependencias de largo alcance en la red. Aprender dependencias de largo alcance es un reto clave en muchas tareas de transducción de secuencias. Un factor clave que afecta a la capacidad de aprender tales dependencias es la longitud de los caminos hacia adelante y hacia atrás que las señales tienen que atravesar en la red. Cuanto más cortas estas rutas entre cualquier combinación de posiciones en las secuencias de entrada y salida, más fácil es aprender dependencias de largo alcance [12]. Por lo tanto, también comparamos la longitud máxima de ruta entre dos posiciones de entrada y salida en redes compuestas por los diferentes tipos de capas. Como se observa en la Tabla 1, una capa de autoatención conecta todas las posiciones con un número constante de operaciones ejecutadas secuencialmente, mientras que una capa recurrente requiere operaciones secuenciales de O(n). En términos de complejidad computacional, las capas de autoatención son más rápidas que las capas recurrentes cuando la longitud de la secuencia n es menor que la dimensionalidad de la representación d, lo que es el caso más frecuente de las representaciones de frases utilizadas por modelos de última generación en traducciones automáticas, como la pieza de texto [38] y las representaciones de bytes [31]. Para mejorar el rendimiento computacional de las tareas que implican secuencias muy largas, la autoatención podría restringirse a considerar sólo un barrio de tamaño r en 6 la secuencia de entrada centrada alrededor de la posición de salida respectiva. Esto aumentaría la longitud máxima de la trayectoria a O(n/r). Planeamos investigar más a fondo este enfoque en el trabajo futuro. Una sola capa convolucional con ancho del núcleo k < n no conecta todos los pares de posiciones de entrada y salida. Para ello se requiere una pila de capas convolucionales O(n/k) en el caso de núcleos contiguos, o O(logk(n)) en el caso de convoluciones dilatadas [18], aumentando la longitud de las rutas más largas entre dos posiciones de la red. Las capas convolucionales son generalmente más caras que las capas recurrentes, por un factor de k. Las convoluciones separables [6], sin embargo, disminuyen considerablemente la complejidad, a O(k · n · d + n · d2). Incluso con k = n, sin embargo, la complejidad de una convolución separable es igual a la combinación de una capa de autoatención y una capa de avance hacia el punto, el enfoque que tomamos en nuestro modelo. Como beneficio paralelo, la autoatención podría producir modelos más interpretables. Inspeccionamos distribuciones de atención de nuestros modelos y presentamos y discutimos ejemplos en el apéndice. No sólo los jefes de atención individuales aprenden claramente a realizar diferentes tareas, muchos parecen mostrar un comportamiento relacionado con la estructura sintáctica y semántica de las oraciones. 5 Formación Esta sección describe el régimen de formación de nuestros modelos. 5.1 Datos de entrenamiento y bateo Nos formamos en el conjunto de datos estándar WMT 2014 Inglés-Alemán que consta de unos 4,5 millones de pares de frases. Las frases fueron codificadas usando codificación byte-pair [3], que tiene un vocabulario fuente-objetivo compartido de aproximadamente 37000 tokens. Para el inglés-francés, utilizamos el conjunto de datos WMT 2014 Inglés-Francés significativamente más grande que consiste en oraciones 36M y dividir tokens en un vocabulario de 32000 palabras [38]. Los pares de frases fueron agrupados por una longitud aproximada de secuencia. Cada lote de entrenamiento contenía un conjunto de pares de oraciones que contenían aproximadamente 25000 tokens de origen y 25000 tokens de destino. 5.2 Hardware y cronograma Entrenamos nuestros modelos en una sola máquina con 8 GPU NVIDIA P100. Para nuestros modelos de base utilizando los hiperparametros descritos a lo largo del papel, cada paso de entrenamiento tomó aproximadamente 0,4 segundos. Entrenamos los modelos base para un total de 100.000 pasos o 12 horas. Para nuestros grandes modelos, (descritos en la línea de fondo de la tabla 3), el tiempo de paso fue de 1,0 segundos. Los grandes modelos fueron entrenados para 300.000 pasos (3,5 días). 5.3 Optimizador Utilizamos el optimizador Adam [20] con β1 = 0,9, β2 = 0,98 y فارسى = 10−9. Variamos la tasa de aprendizaje durante el curso de entrenamiento, según la fórmula: lrate = d-0.5 modelo · min(step_num−0.5, step_num · warmup_steps−1.5) (3) Esto corresponde a aumentar la tasa de aprendizaje linealmente para los primeros pasos de entrenamiento de warmup_steps, y disminuirla posteriormente proporcionalmente a la raíz cuadrada inversa del número de pasos. Usamos watup_steps = 4000. 5.4 Regularización Empleamos tres tipos de regularización durante el entrenamiento: Abandono residual Aplicamos la deserción [33] a la salida de cada subcapa, antes de que se añada a la entrada de subcapa y se normalice. Además, aplicamos el abandono a las sumas de las incrustaciones y las codificaciones posicionales en las pilas de codificador y decodificador. Para el modelo base, utilizamos una tasa de Pdrop = 0.1. 7 Tabla 2: El transformador logra mejores puntuaciones de BLEU que los modelos anteriores de vanguardia en las pruebas de noticias de inglés a alemán y de inglés a francés2014 a una fracción del coste de la formación. Modelo BLEU Training Cost (FLOPs) EN-DE EN-FR EN-DE EN-FR ByteNet [18] 23.75 Deep-Att + PosUnk [39] 39.2 1.0 · 1020 GNMT + RL [38] 24.6 39.92 2.3 · 1019 1.4 · 1020 ConvS2S [9] 25.16 40.46 9,6 · 1018 1.5 · 1020 MoE [32] 26.03 40.56 2.0 · 1019 1.2 · 1020 Deep-Att + PosUnk Ensemble [39] 40.4 · 1020 GNMT + RL Ensemble [38] 26.30 41.16 1.8 · 1020 1.1 · 1021 ConvS2S Ensemble [9] 26.36 41.4129 7.7 · 1019 1.2 · 1021 Transformer (modelo base) 27.3 38.1 3.3 · 1018 Transformador (grande) 28.4 41.8 2.3 · 1019 Suaviamiento de etiquetas Durante el entrenamiento, empleamos el suavizamiento de valores de Esto perjudica la perplejidad, ya que el modelo aprende a ser más inseguro, pero mejora la precisión y la puntuación BLEU. 6 Resultados 6.1 Traducción automática En la tarea de traducción de inglés a alemán de la WMT 2014, el gran modelo de transformador (Transformer (grande) en la Tabla 2) supera los mejores modelos reportados anteriormente (incluyendo conjuntos) por más de 2.0 BLEU, estableciendo una nueva puntuación BLEU de última generación de 28.4. La configuración de este modelo se enumera en la línea de fondo de la tabla 3. El entrenamiento tomó 3.5 días en 8 GPUs P100. Incluso nuestro modelo base supera a todos los modelos y conjuntos publicados anteriormente, a una fracción del costo de formación de cualquiera de los modelos competitivos. En la tarea de traducción de inglés a francés de la WMT 2014, nuestro gran modelo logra una puntuación BLEU de 41,0, superando a todos los modelos individuales publicados anteriormente, a menos de 1/4 el costo de formación del modelo anterior de última generación. El modelo Transformador (grande) entrenado para inglés-francés utilizó la tasa de abandono Pdrop = 0,1, en lugar de 0,3. Para los modelos de base, se utilizó un único modelo obtenido promediando los últimos 5 puntos de control, los cuales fueron escritos a intervalos de 10 minutos. Para los grandes modelos, hemos promediado los últimos 20 puntos de control. Utilizamos la búsqueda de haz con un tamaño de haz de 4 y la longitud de pena α = 0.6 [38]. Estos hiperparametros fueron elegidos después de la experimentación en el conjunto de desarrollo. Fijamos la longitud máxima de salida durante la inferencia a la longitud de entrada + 50, pero terminan temprano cuando sea posible [38]. La Tabla 2 resume nuestros resultados y compara nuestra calidad de traducción y costos de formación con otras arquitecturas modelo de la literatura. Estimamos el número de operaciones de punto flotante utilizadas para entrenar un modelo multiplicando el tiempo de entrenamiento, el número de GPU utilizadas, y una estimación de la capacidad de punto flotante de una sola precisión sostenida de cada GPU 5. 6.2 Variaciones de modelos Para evaluar la importancia de los diferentes componentes del Transformer, hemos variado nuestro modelo base de diferentes maneras, midiendo el cambio en el rendimiento de la traducción de inglés a alemán en el set de desarrollo, newstest2013. Utilizamos la búsqueda de haz como se describe en la sección anterior, pero no hay un promedio de punto de control. Presentamos estos resultados en la Tabla 3. En la Tabla 3 filas (A), se varía el número de cabezas de atención y la clave de atención y las dimensiones de valor, manteniendo constante la cantidad de computación, como se describe en la Sección 3.2.2. Mientras que la atención de una sola cabeza es 0.9 BLEU peor que el mejor ajuste, la calidad también disminuye con demasiadas cabezas. 5Utilizamos valores de 2.8, 3.7, 6.0 y 9.5 TFLOPS para K80, K40, M40 y P100, respectivamente. 8 Tabla 3: Variaciones en la arquitectura del transformador. Los valores no listados son idénticos a los del modelo base. Todas las métricas están en el set de desarrollo de traducción de inglés a alemán, newstest2013. Las perplejidades enumeradas son por palabra, de acuerdo con nuestra codificación de par de bytes, y no deben compararse con perplejidades por palabra. N dmodel dff h dk dv Pdrop ­ls train PPL BLEU params steps (dev) (dev) (dev) ×106 base 6 512 2048 8 64 0.1 100K 4,92 25,8 65 (A) 1 512 512 5,29 24,9 4 128 128 5.00 25,5 16 32 32 4,91 25,8 32 16 16 5,01 25,4 (B) 16 5,16 25,1 58 32 5,01 25,4 60 (C) 2 6,11 23,7 36 4 5,19 25,3 50 8,88 25,5 80 256 32 32 5,75 24,5 28 1024 128 4,66 26.0 168 1024 5.12 25,4 53 4096 4,75 26,2 90 (D) 0,0 5,77 24,6 0,2 4,95 25,5 0,0 4,67 25,3 0,2 5,47 25,7 (E) empotrar posiciones en lugar de los sinusoides 4.92 25,7 gran 6 1024 4096 16 0,3 300K 4,33 26,4 213 Cuadro 4: El transformador generaliza bien la circunscripción inglesa (los resultados se encuentran en la sección 23 de WSJ) Parser al entrenamiento W24 4096 4096. (2014) [37] WSJ únicamente, discriminative 88.3 Petrov et al. (2006) [29] WSJ únicamente, discriminative 90.4 Zhu et al. (2013) [40] WSJ únicamente, discriminative 90.4 Dyer et al. (2016) [8] WSJ únicamente, discriminativo 91.7 Transformador (4 capas) WSJ únicamente, discriminativo 91.3 Zhu et al. (2013) [40] semisupervisado 91.3 Huang & Harper (2009) [14] semisupervisado 91.3 McClosky et al. (2006) [26] semisupervisado 92,1 Vinyals & Kaiser el al. (2014) [37] semisupervisado 92,1 Transformador (4 capas) semisupervisado 92,7 Luong et al. (2015) [23] multitarea 93,0 Dyer et al. (2016) [8] generativo 93.3 En las filas del cuadro 3 (B), observamos que la reducción de la atención del tamaño clave dk perjudica la calidad del modelo. Esto sugiere que determinar la compatibilidad no es fácil y que una función de compatibilidad más sofisticada que el producto punto puede ser beneficiosa. Observamos además en las filas (C) y (D) que, como se esperaba, los modelos más grandes son mejores, y la deserción escolar es muy útil para evitar el exceso de ajuste. En la fila (E) reemplazamos nuestra codificación posicional sinusoidal con incrustaciones posicionales aprendidas [9], y observamos resultados casi idénticos al modelo base. 6.3 Análisis de las circunscripciones inglesas Para evaluar si el transformador puede generalizar a otras tareas realizamos experimentos de análisis de las circunscripciones inglesas. Esta tarea presenta desafíos específicos: el producto está sujeto a fuertes limitaciones estructurales 9 y es significativamente más largo que el insumo. Por otra parte, los modelos de secuencia a secuencia RNN no han sido capaces de lograr resultados de última generación en regímenes de pequeños datos [37]. Entrenamos un transformador de 4 capas con dmodel = 1024 en la porción de Wall Street Journal (WSJ) del Penn Treebank [25], cerca de 40K frases de entrenamiento. También lo entrenamos en un entorno semi-supervisado, utilizando la mayor alta confianza y BerkleyParser corpora de aproximadamente 17M frases [37]. Utilizamos un vocabulario de tokens de 16K sólo para la configuración WSJ y un vocabulario de tokens de 32K para la configuración semi-supervisada. Sólo realizamos un pequeño número de experimentos para seleccionar la deserción, tanto la atención como la residual (sección 5.4), las tasas de aprendizaje y el tamaño del haz en el conjunto de desarrollo de la Sección 22, todos los demás parámetros se mantuvieron sin cambios desde el modelo de traducción base de inglés a alemán. Durante la inferencia, aumentamos la longitud máxima de salida a la longitud de entrada + 300. Utilizamos un tamaño de haz de 21 y α = 0,3 para WSJ solamente y el ajuste semi-supervisado. Nuestros resultados en la Tabla 4 muestran que a pesar de la falta de afinación de tareas específicas, nuestro modelo tiene un rendimiento sorprendentemente bueno, dando mejores resultados que todos los modelos previamente reportados con la excepción de la Gramática de Red Neural Recurrente [8]. En contraste con los modelos de secuencia a secuencia RNN [37], el transformador supera al Berkeley-Parser [29] incluso cuando se entrena sólo en el conjunto de entrenamiento WSJ de frases de 40K. 7 Conclusión En este trabajo, presentamos el Transformer, el primer modelo de transducción secuencial basado enteramente en la atención, reemplazando las capas recurrentes más utilizadas en las arquitecturas de codificador-decodificador por la autoatención multicabeza. Para las tareas de traducción, el transformador puede ser entrenado significativamente más rápido que las arquitecturas basadas en capas recurrentes o convolucionales. Tanto en WMT 2014 Inglés-Alemán y WMT 2014 Inglés-A-Francés tareas de traducción, logramos un nuevo estado de la técnica. En la tarea anterior nuestro mejor modelo supera incluso a todos los conjuntos previamente reportados. Estamos entusiasmados con el futuro de los modelos basados en la atención y planeamos aplicarlos a otras tareas. Planeamos extender el Transformer a problemas relacionados con modalidades de entrada y salida distintas del texto e investigar mecanismos locales de atención restringida para manejar eficientemente entradas y salidas grandes como imágenes, audio y vídeo. Hacer que la generación sea menos secuencial es otro de nuestros objetivos de investigación. El código utilizado para entrenar y evaluar nuestros modelos está disponible en https://github.com/ tensorflow/tensor2tensor. Agradecimientos Estamos agradecidos a Nal Kalchbrenner y Stephan Gouws por sus comentarios fructíferos, correcciones e inspiración. Referencias [1] Jimmy Lei Ba, Jamie Ryan Kiros y Geoffrey E Hinton. Normalización de capas. arXiv preprint arXiv:1607.06450, 2016. [2] Dzmitry Bahdanau, Kyunghyun Cho, y Yoshua Bengio. Traducción automática neural mediante el aprendizaje conjunto para alinearse y traducir. CoRR, abs/1409.0473, 2014. [3] Denny Britz, Anna Goldie, Minh-Thang Luong, y Quoc V. Le. Exploración masiva de arquitecturas de traducción automática neuronal. CoRR, abs/1703.03906, 2017. [4] Jianpeng Cheng, Li Dong, y Mirella Lapata. Redes de memoria a corto plazo para lectura de máquinas. arXiv preprint arXiv:1601.06733, 2016. [5] Kyunghyun Cho, Bart van Merrienboer, Caglar Gulcehre, Fethi Bougares, Holger Schwenk, y Yoshua Bengio. representaciones de frases de aprendizaje utilizando rnn encoder-decoder para la traducción automática estadística. CoRR, abs/1406.1078, 2014. [6] Francois Chollet. Xception: Aprendizaje profundo con convoluciones separables en profundidad. arXiv preprint arXiv:1610.02357, 2016. 10 [7] Junyoung Chung, Çaglar Gülçehre, Kyunghyun Cho y Yoshua Bengio. Evaluación empírica de redes neuronales recurrentes cerradas en el modelado de secuencias. CoRR, abs/1412.3555, 2014. [8] Chris Dyer, Adhiguna Kuncoro, Miguel Ballesteros, y Noah A. Smith. Gramáticas de red neuronal recurrentes. En Proc. de NAACL, 2016. [9] Jonas Gehring, Michael Auli, David Grangier, Denis Yarats y Yann N. Dauphin. Secuencia convolu-cional para el aprendizaje de secuencias. arXiv preprint arXiv:1705.03122v2, 2017. [10] Alex Graves. Generando secuencias con redes neuronales recurrentes. arXiv preprint arXiv:1308.0850, 2013. [11] Kaiming He, Xiangyu Zhang, Shaoqing Ren y Jian Sun. Aprendizaje residual profundo para el reconocimiento de la im-edad. En Actas de la Conferencia del IEEE sobre Visión Informática y Reconocimiento de Patrones, páginas 770-778, 2016. [12] Sepp Hochreiter, Yoshua Bengio, Paolo Frasconi y Jürgen Schmidhuber. Flujo gradual en redes recurrentes: la dificultad de aprender dependencias a largo plazo, 2001. [13] Sepp Hochreiter y Jürgen Schmidhuber. Memoria a corto plazo. Computación neural, 9(8):1735–1780, 1997. [14] Zhongqiang Huang y Mary Harper. Gramática PCFG de autoformación con anotaciones latentes a través de los idiomas. En Actas de la Conferencia de 2009 sobre Métodos Empíricos en el Procesamiento del Lenguaje Natural, páginas 832-841. ACL, agosto de 2009. [15] Rafal Jozefowicz, Oriol Vinyals, Mike Schuster, Noam Shazeer y Yonghui Wu. Explorando los límites del modelado del lenguaje. arXiv preprint arXiv:1602.02410, 2016. [16] Káiser y Samy Bengio. ¿Puede la memoria activa reemplazar la atención? En Avances en Sistemas de Procesamiento de Información Neural (NIPS), 2016. [17] Káiser e Ilya Sutskever. GPUs Neural aprenden algoritmos. En la Conferencia Internacional sobre Representaciones de Aprendizaje (ICLR), 2016. [18] Nal Kalchbrenner, Lasse Espeholt, Karen Simonyan, Aaron van den Oord, Alex Graves y Ko-ray Kavukcuoglu. Traducción automática neural en tiempo lineal. arXiv preprint arXiv:1610.10099v2, 2017. [19] Yoon Kim, Carl Denton, Luong Hoang, y Alexander M. Rush. Redes de atención estructurada. En la Conferencia Internacional sobre Representaciones del Aprendizaje, 2017. [20] Diederik Kingma y Jimmy Ba. Adam: Un método para la optimización estocástica. En ICLR, 2015. [21] Oleksii Kuchaiev y Boris Ginsburg. Trucos de factorización para redes LSTM. arXiv preprint arXiv:1703.10722, 2017. [22] Zhouhan Lin, Minwei Feng, Cicero Nogueira dos Santos, Mo Yu, Bing Xiang, Bowen Zhou y Yoshua Bengio. Una inserción estructurada de frase autoatención. arXiv preprint arXiv:1703.03130, 2017. [23] Minh-Thang Luong, Quoc V. Le, Ilya Sutskever, Oriol Vinyals, y Lukasz Kaiser. Secuencia de múltiples tareas para el aprendizaje de secuencias. arXiv preprint arXiv:1511.06114, 2015. [24] Minh-Thang Luong, Hieu Pham, y Christopher D Manning. Aproximaciones eficaces a la traducción automática neuronal basada en la atención. arXiv preprint arXiv:1508.04025, 2015. [25] Mitchell P Marcus, Mary Ann Marcinkiewicz y Beatrice Santorini. Construyendo un gran corpus anotado de inglés: The penn treebank. lingüística computacional, 19(2):313-330, 1993. [26] David McClosky, Eugene Charniak y Mark Johnson. Autoformación eficaz para el análisis. En Actas de la Conferencia de Tecnología del Lenguaje Humano de la NAACL, Conferencia Principal, páginas 152 a 159. ACL, junio 2006. 11 [27] Ankur Parikh, Oscar Täckström, Dipanjan Das y Jakob Uszkoreit. Un modelo de atención descompuesta. En métodos empíricos en el procesamiento natural del lenguaje, 2016. [28] Romain Paulus, Caiming Xiong, y Richard Socher. Un modelo profundamente reforzado para la síntesis abstracta. arXiv preprint arXiv: 1705.04304, 2017. [29] Slav Petrov, Leon Barrett, Romain Thibaux, y Dan Klein. En Actas de la XXI Conferencia Internacional sobre Lingüística Computacional y 44a Reunión Anual de la ACL, págs. 433 a 440. ACL, julio de 2006. [30] Ofir Press y Lior Wolf. Usando la inserción de salida para mejorar los modelos de lenguaje. arXiv preprint arXiv:1608.05859, 2016. [31] Rico Sennrich, Barry Haddow y Alexandra Birch. arXiv preprint arXiv:1508.07909, 2015. [32] Noam Shazeer, Azalia Mirhoseini, Krzysztof Maziarz, Andy Davis, Quoc Le, Geoffrey Hinton, y Jeff Dean. Redes neuronales extremadamente grandes: La escasa mezcla de expertos. arXiv preprint arXiv:1701.06538, 2017. [33] Nitish Srivastava, Geoffrey E Hinton, Alex Krizhevsky, Ilya Sutskever, y Ruslan Salakhutdi-nov. Abandono escolar: una forma sencilla de evitar que las redes neuronales se adecuen demasiado. Journal of Machine Learning Research, 15(1):1929-1958, 2014. [34] Sainbayar Sukhbaatar, Arthur Szlam, Jason Weston y Rob Fergus. Redes de memoria de extremo a extremo. En C. Cortes, N. D. Lawrence, D. D. Lee, M. Sugiyama, y R. Garnett, editores, Avances en Sistemas de Procesamiento de Información Neural 28, páginas 2440-2448. Curran Associates, Inc., 2015. [35] Ilya Sutskever, Oriol Vinyals y Quoc VV Le. Secuencia para secuenciar el aprendizaje con redes neuronales. In Advances in Neural Information Processing Systems, pages 3104–3112, 2014. [36] Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jonathon Shlens y Zbigniew Wojna. Repensando la arquitectura inicial para la visión por computadora. CoRR, abs/1512.00567, 2015. [37] Vinyals & Kaiser, Koo, Petrov, Sutskever e Hinton. Gramática como lengua extranjera. En Avances en Sistemas de Procesamiento de Información Neural, 2015. [38] Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V Le, Mohammad Norouzi, Wolfgang Macherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, et al. Sistema de traducción automática neuronal de Google: Superando la brecha entre la traducción humana y la traducción automática. arXiv preprint arXiv: 1609.08144, 2016. [39] Jie Zhou, Ying Cao, Xuguang Wang, Peng Li, y Wei Xu. Modelos profundos recurrentes con conexiones rápidas para la traducción automática neuronal. CoRR, abs/1606.04199, 2016. [40] Muhua Zhu, Yue Zhang, Wenliang Chen, Min Zhang y Jingbo Zhu. En Actas de la 51a Reunión Anual de la ACL (Volumen 1: Largas ponencias), págs. 434 a 443. ACL, agosto de 2013. 12 Atención Visualizaciones Input-Input Layer5 Es en este espíritu que la mayoría de los gobiernos estadounidenses han aprobado nuevas leyes desde 2009 haciendo el proceso de registro o votación más difícil. Es en este espíritu que la mayoría de los gobiernos estadounidenses han aprobado nuevas leyes desde 2009 haciendo el proceso de registro o votación más difícil. Figura 3: Un ejemplo del mecanismo de atención siguiendo dependencias de larga distancia en el codificador autoatención en la capa 5 de 6. Muchos de los jefes de atención atienden a una dependencia distante del verbo ‘hacer’, completando la frase ‘hacer...más difícil’. Aquí se muestran las atenciones sólo para la palabra ‘hacer’. Diferentes colores representan diferentes cabezas. Mejor visto en color. 13 Input-Input Layer5 La ley nunca será perfecta, pero su aplicación debe ser justa - esto es lo que nos estamos perdiendo, en mi opinión. La Ley nunca será perfecta, pero su aplicación debe ser justa - esto es lo que nos estamos perdiendo, en mi opinión. Input-Input Layer5 La Ley nunca será perfecta, pero su aplicación debe ser justa - esto es lo que nos estamos perdiendo, en mi opinión. La Ley nunca será perfecta, pero su aplicación debe ser justa - esto es lo que nos estamos perdiendo, en mi opinión. Figura 4: Dos cabezas de atención, también en la capa 5 de 6, aparentemente involucradas en la resolución de anafora. Arriba: Atenciones completas para la cabeza 5. Abajo: Atenciones aisladas de sólo la palabra ‘su’ para las cabezas de atención 5 y 6. Tenga en cuenta que las atenciones son muy agudas para esta palabra. 14 Input-Input Layer5 La ley nunca será perfecta, pero su aplicación debe ser justa - esto es lo que nos estamos perdiendo, en mi opinión. La Ley nunca será perfecta, pero su aplicación debe ser justa - esto es lo que nos estamos perdiendo, en mi opinión. Input-Input Layer5 La Ley nunca será perfecta, pero su aplicación debe ser justa - esto es lo que nos estamos perdiendo, en mi opinión. La Ley nunca será perfecta, pero su aplicación debe ser justa - esto es lo que nos estamos perdiendo, en mi opinión. Figura 5: Muchos de los jefes de atención exhiben un comportamiento que parece estar relacionado con la estructura de la oración. Damos dos ejemplos de este tipo, de dos cabezas diferentes de la autoatención del codificador en la capa 5 de 6. Las cabezas claramente aprendieron a realizar diferentes tareas. 15