Attention is All You Need

    From Marovi

    Attention Is All You Need

    Authors: Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin

    Published in: arXiv preprint arXiv:1706.03762

    Year: 2017

    Cited by: 10,000+ (as of 2024)

    Abstract:

    The dominant sequence transduction models are based on complex recurrent or convolutional neural networks that include an encoder and a decoder. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new simple network architecture, the Transformer, based solely on attention mechanisms, dispensing with recurrence and convolutions entirely. Experiments on two machine translation tasks show these models to be superior in quality while being more parallelizable and requiring significantly less time to train. Our model achieves 28.4 BLEU on the WMT 2014 English-to-German translation task, improving over the existing best results, including ensembles, by over 2 BLEU. On the WMT 2014 English-to-French translation task, our model establishes a new single-model state-of-the-art BLEU score of 41.8 after training for 3.5 days on eight GPUs, a small fraction of the training costs of the best models from the literature. We show that the Transformer generalizes well to other tasks by applying it successfully to English constituency parsing both with large and limited training data.

    Keywords: Attention, Transformer, Neural Networks, Deep Learning, NLP

    Introduction

    Recurrent neural networks, long short-term memory [13] and gated recurrent [7] neural networks in particular, have been firmly established as state of the art approaches in sequence modeling and transduction problems such as language modeling and machine translation [35, 2, 5]. Numerous efforts have since continued to push the boundaries of recurrent language models and encoder-decoder architectures [38, 24, 15].

    Recurrent models typically factor computation along the symbol positions of the input and output sequences. Aligning the positions to steps in computation time, they generate a sequence of hidden states ht, as a function of the previous hidden state ht−1 and the input for position t. This inherently sequential nature precludes parallelization within training examples, which becomes critical at longer sequence lengths, as memory constraints limit batching across examples. Recent work has achieved significant improvements in computational efficiency through factorization tricks [21] and conditional computation [32], while also improving model performance in case of the latter. The fundamental constraint of sequential computation, however, remains.

    Attention mechanisms have become an integral part of compelling sequence modeling and transduction models in various tasks, allowing modeling of dependencies without regard to their distance in the input or output sequences [2, 19]. In all but a few cases [27], however, such attention mechanisms are used in conjunction with a recurrent network.

    In this work we propose the Transformer, a model architecture eschewing recurrence and instead relying entirely on an attention mechanism to draw global dependencies between input and output. The Transformer allows for significantly more parallelization and can reach a new state of the art in translation quality after being trained for as little as twelve hours on eight P100 GPUs.

    Background

    The goal of reducing sequential computation also forms the foundation of the Extended Neural GPU [16], ByteNet [18] and ConvS2S [9], all of which use convolutional neural networks as basic building block, computing hidden representations in parallel for all input and output positions. In these models, the number of operations required to relate signals from two arbitrary input or output positions grows in the distance between positions, linearly for ConvS2S and logarithmically for ByteNet. This makes it more difficult to learn dependencies between distant positions [12]. In the Transformer this is reduced to a constant number of operations, albeit at the cost of reduced effective resolution due to averaging attention-weighted positions, an effect we counteract with Multi-Head Attention as described in section 3.2.

    Self-attention, sometimes called intra-attention is an attention mechanism relating different positions of a single sequence in order to compute a representation of the sequence. Self-attention has been used successfully in a variety of tasks including reading comprehension, abstractive summarization, textual entailment and learning task-independent sentence representations [4, 27, 28, 22].

    End-to-end memory networks are based on a recurrent attention mechanism instead of sequencealigned recurrence and have been shown to perform well on simple-language question answering and language modeling tasks [34].

    To the best of our knowledge, however, the Transformer is the first transduction model relying entirely on self-attention to compute representations of its input and output without using sequencealigned RNNs or convolution. In the following sections, we will describe the Transformer, motivate self-attention and discuss its advantages over models such as [17, 18] and [9].

    Model Architecture

    Most competitive neural sequence transduction models have an encoder-decoder structure [5, 2, 35]. Here, the encoder maps an input sequence of symbol representations (x1, ..., xn) to a sequence of continuous representations z = (z1, ..., zn). Given z, the decoder then generates an output sequence (y1, ..., ym) of symbols one element at a time. At each step the model is auto-regressive [10], consuming the previously generated symbols as additional input when generating the next.

    <img src="attention_images/image_2_0.png" alt="Image 0" width="300px">

    Figure 1: The Transformer - model architecture.

    The Transformer follows this overall architecture using stacked self-attention and point-wise, fully connected layers for both the encoder and decoder, shown in the left and right halves of Figure 1, respectively.

    Encoder and Decoder Stacks

    Encoder: The encoder is composed of a stack of N = 6 identical layers. Each layer has two sub-layers. The first is a multi-head self-attention mechanism, and the second is a simple, positionwise fully connected feed-forward network. We employ a residual connection [11] around each of the two sub-layers, followed by layer normalization [1]. That is, the output of each sub-layer is LayerNorm(x + Sublayer(x)), where Sublayer(x) is the function implemented by the sub-layer itself. To facilitate these residual connections, all sub-layers in the model, as well as the embedding layers, produce outputs of dimension dmodel = 512.

    Decoder: The decoder is also composed of a stack of N = 6 identical layers. In addition to the two sub-layers in each encoder layer, the decoder inserts a third sub-layer, which performs multi-head attention over the output of the encoder stack. Similar to the encoder, we employ residual connections around each of the sub-layers, followed by layer normalization. We also modify the self-attention sub-layer in the decoder stack to prevent positions from attending to subsequent positions. This masking, combined with fact that the output embeddings are offset by one position, ensures that the predictions for position i can depend only on the known outputs at positions less than i.

    Attention

    An attention function can be described as mapping a query and a set of key-value pairs to an output, where the query, keys, values, and output are all vectors. The output is computed as a weighted sum

    Scaled Dot-Product Attention

    <img src="attention_images/image_3_0.png" alt="Image 1" width="300px">

    Multi-Head Attention

    <img src="attention_images/image_3_1.png" alt="Image 2" width="300px">

    Figure 2: (left) Scaled Dot-Product Attention. (right) Multi-Head Attention consists of several attention layers running in parallel.

    of the values, where the weight assigned to each value is computed by a compatibility function of the query with the corresponding key.

    Scaled Dot-Product Attention

    We call our particular attention "Scaled Dot-Product Attention" (Figure 2). The input consists of queries and keys of dimension dk, and values of dimension dv. We compute the dot products of the query with all keys, divide each by √dk, and apply a softmax function to obtain the weights on the values.

    In practice, we compute the attention function on a set of queries simultaneously, packed together into a matrix Q. The keys and values are also packed together into matrices K and V . We compute the matrix of outputs as:

    (###) Attention(Q, K, V ) = softmax(QKT √dk )V (1) (###)

    The two most commonly used attention functions are additive attention [2], and dot-product (multiplicative) attention. Dot-product attention is identical to our algorithm, except for the scaling factor of ### 1/√dk ###. Additive attention computes the compatibility function using a feed-forward network with a single hidden layer. While the two are similar in theoretical complexity, dot-product attention is much faster and more space-efficient in practice, since it can be implemented using highly optimized matrix multiplication code.

    While for small values of dk the two mechanisms perform similarly, additive attention outperforms dot product attention without scaling for larger values of dk [3]. We suspect that for large values of dk, the dot products grow large in magnitude, pushing the softmax function into regions where it has extremely small gradients @@@ 4 @@@. To counteract this effect, we scale the dot products by ### 1/√dk ###.

    Multi-Head Attention

    Instead of performing a single attention function with dmodel-dimensional keys, values and queries, we found it beneficial to linearly project the queries, keys and values h times with different, learned linear projections to dk, dk and dv dimensions, respectively. On each of these projected versions of queries, keys and values we then perform the attention function in parallel, yielding dv-dimensional

    @@@ 4To illustrate why the dot products get large, assume that the components of q and k are independent random variables with mean 0 and variance 1. Then their dot product, ### q · k = �dk i=1 qiki ###, has mean 0 and variance dk. @@@

    output values. These are concatenated and once again projected, resulting in the final values, as depicted in Figure 2.

    Multi-head attention allows the model to jointly attend to information from different representation subspaces at different positions. With a single attention head, averaging inhibits this.

    (###) MultiHead(Q, K, V ) = Concat(head1, ..., headh)W O where headi = Attention(QW Q i , KW K i , V W V i ) (###)

    Where the projections are parameter matrices ### W Q i ∈ Rdmodel×dk, W K i ∈ Rdmodel×dk, W V i ∈ Rdmodel×dv and W O ∈ Rhdv×dmodel ###.

    In this work we employ h = 8 parallel attention layers, or heads. For each of these we use dk = dv = dmodel/h = 64. Due to the reduced dimension of each head, the total computational cost is similar to that of single-head attention with full dimensionality.

    Applications of Attention in our Model

    The Transformer uses multi-head attention in three different ways:

    • In "encoder-decoder attention" layers, the queries come from the previous decoder layer, and the memory keys and values come from the output of the encoder. This allows every position in the decoder to attend over all positions in the input sequence. This mimics the typical encoder-decoder attention mechanisms in sequence-to-sequence models such as [38, 2, 9].
    • The encoder contains self-attention layers. In a self-attention layer all of the keys, values and queries come from the same place, in this case, the output of the previous layer in the encoder. Each position in the encoder can attend to all positions in the previous layer of the encoder.
    • Similarly, self-attention layers in the decoder allow each position in the decoder to attend to all positions in the decoder up to and including that position. We need to prevent leftward information flow in the decoder to preserve the auto-regressive property. We implement this inside of scaled dot-product attention by masking out (setting to −∞) all values in the input of the softmax which correspond to illegal connections. See Figure 2.

    Position-wise Feed-Forward Networks

    In addition to attention sub-layers, each of the layers in our encoder and decoder contains a fully connected feed-forward network, which is applied to each position separately and identically. This consists of two linear transformations with a ReLU activation in between.

    (###) FFN(x) = max(0, xW1 + b1)W2 + b2 (2) (###)

    While the linear transformations are the same across different positions, they use different parameters from layer to layer. Another way of describing this is as two convolutions with kernel size 1. The dimensionality of input and output is dmodel = 512, and the inner-layer has dimensionality dff = 2048.

    Embeddings and Softmax

    Similarly to other sequence transduction models, we use learned embeddings to convert the input tokens and output tokens to vectors of dimension dmodel. We also use the usual learned linear transformation and softmax function to convert the decoder output to predicted next-token probabilities. In our model, we share the same weight matrix between the two embedding layers and the pre-softmax linear transformation, similar to [30]. In the embedding layers, we multiply those weights by ### √dmodel ###.

    Table 1: Maximum path lengths, per-layer complexity and minimum number of sequential operations for different layer types. n is the sequence length, d is the representation dimension, k is the kernel size of convolutions and r the size of the neighborhood in restricted self-attention.

    $$$ Layer Type Complexity per Layer Sequential Maximum Path Length Operations $$$

    Positional Encoding

    Since our model contains no recurrence and no convolution, in order for the model to make use of the order of the sequence, we must inject some information about the relative or absolute position of the tokens in the sequence. To this end, we add "positional encodings" to the input embeddings at the bottoms of the encoder and decoder stacks. The positional encodings have the same dimension dmodel as the embeddings, so that the two can be summed. There are many choices of positional encodings, learned and fixed [9].

    In this work, we use sine and cosine functions of different frequencies:

    (###) PE(pos,2i) = sin(pos/100002i/dmodel) PE(pos,2i+1) = cos(pos/100002i/dmodel) (###)

    where pos is the position and i is the dimension. That is, each dimension of the positional encoding corresponds to a sinusoid. The wavelengths form a geometric progression from ### 2π to 10000 · 2π ###. We chose this function because we hypothesized it would allow the model to easily learn to attend by relative positions, since for any fixed offset ### k, PEpos+k ### can be represented as a linear function of ### PEpos ###.

    We also experimented with using learned positional embeddings [9] instead, and found that the two versions produced nearly identical results (see Table 3 row (E)). We chose the sinusoidal version because it may allow the model to extrapolate to sequence lengths longer than the ones encountered during training.

    Why Self-Attention

    In this section we compare various aspects of self-attention layers to the recurrent and convolutional layers commonly used for mapping one variable-length sequence of symbol representations (x1, ..., xn) to another sequence of equal length (z1, ..., zn), with ### xi, zi ∈ Rd ###, such as a hidden layer in a typical sequence transduction encoder or decoder. Motivating our use of self-attention we consider three desiderata.

    One is the total computational complexity per layer. Another is the amount of computation that can be parallelized, as measured by the minimum number of sequential operations required.

    The third is the path length between long-range dependencies in the network. Learning long-range dependencies is a key challenge in many sequence transduction tasks. One key factor affecting the ability to learn such dependencies is the length of the paths forward and backward signals have to traverse in the network. The shorter these paths between any combination of positions in the input and output sequences, the easier it is to learn long-range dependencies [12]. Hence we also compare the maximum path length between any two input and output positions in networks composed of the different layer types.

    As noted in Table 1, a self-attention layer connects all positions with a constant number of sequentially executed operations, whereas a recurrent layer requires O(n) sequential operations. In terms of computational complexity, self-attention layers are faster than recurrent layers when the sequence length n is smaller than the representation dimensionality d, which is most often the case with sentence representations used by state-of-the-art models in machine translations, such as word-piece [38] and byte-pair [31] representations. To improve computational performance for tasks involving very long sequences, self-attention could be restricted to considering only a neighborhood of size r in the input sequence centered around the respective output position. This would increase the maximum path length to O(n/r). We plan to investigate this approach further in future work.

    A single convolutional layer with kernel width k < n does not connect all pairs of input and output positions. Doing so requires a stack of O(n/k) convolutional layers in the case of contiguous kernels, or ### O(logk(n)) ### in the case of dilated convolutions [18], increasing the length of the longest paths between any two positions in the network. Convolutional layers are generally more expensive than recurrent layers, by a factor of k. Separable convolutions [6], however, decrease the complexity considerably, to ### O(k · n · d + n · d2) ###. Even with k = n, however, the complexity of a separable convolution is equal to the combination of a self-attention layer and a point-wise feed-forward layer, the approach we take in our model.

    As side benefit, self-attention could yield more interpretable models. We inspect attention distributions from our models and present and discuss examples in the appendix. Not only do individual attention heads clearly learn to perform different tasks, many appear to exhibit behavior related to the syntactic and semantic structure of the sentences.

    Training

    This section describes the training regime for our models.

    Training Data and Batching

    We trained on the standard WMT 2014 English-German dataset consisting of about 4.5 million sentence pairs. Sentences were encoded using byte-pair encoding [3], which has a shared sourcetarget vocabulary of about 37000 tokens. For English-French, we used the significantly larger WMT 2014 English-French dataset consisting of 36M sentences and split tokens into a 32000 word-piece vocabulary [38]. Sentence pairs were batched together by approximate sequence length. Each training batch contained a set of sentence pairs containing approximately 25000 source tokens and 25000 target tokens.

    Hardware and Schedule

    We trained our models on one machine with 8 NVIDIA P100 GPUs. For our base models using the hyperparameters described throughout the paper, each training step took about 0.4 seconds. We trained the base models for a total of 100,000 steps or 12 hours. For our big models,(described on the bottom line of table 3), step time was 1.0 seconds. The big models were trained for 300,000 steps (3.5 days).

    Optimizer

    We used the Adam optimizer [20] with β1 = 0.9, β2 = 0.98 and ϵ = 10−9. We varied the learning rate over the course of training, according to the formula:

    (###) lrate = d−0.5 model · min(step_num−0.5, step_num · warmup_steps−1.5) (3) (###)

    This corresponds to increasing the learning rate linearly for the first warmup_steps training steps, and decreasing it thereafter proportionally to the inverse square root of the step number. We used warmup_steps = 4000.

    Regularization

    We employ three types of regularization during training:

    Table 2: The Transformer achieves better BLEU scores than previous state-of-the-art models on the English-to-German and English-to-French newstest2014 tests at a fraction of the training cost.

    $$$ Model 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 Deep-Att + PosUnk Ensemble [39] 40.4 8.0 · 1020 Transformer (base model) 27.3 38.1 3.3 · 1018 $$$

    Residual Dropout We apply dropout [33] to the output of each sub-layer, before it is added to the sub-layer input and normalized. In addition, we apply dropout to the sums of the embeddings and the positional encodings in both the encoder and decoder stacks. For the base model, we use a rate of ### Pdrop = 0.1 ###.

    Label Smoothing During training, we employed label smoothing of value ϵls = 0.1 [36]. This hurts perplexity, as the model learns to be more unsure, but improves accuracy and BLEU score.

    Results

    Machine Translation

    On the WMT 2014 English-to-German translation task, the big transformer model (Transformer (big) in Table 2) outperforms the best previously reported models (including ensembles) by more than 2.0 BLEU, establishing a new state-of-the-art BLEU score of 28.4. The configuration of this model is listed in the bottom line of Table 3. Training took 3.5 days on 8 P100 GPUs. Even our base model surpasses all previously published models and ensembles, at a fraction of the training cost of any of the competitive models.

    On the WMT 2014 English-to-French translation task, our big model achieves a BLEU score of 41.0, outperforming all of the previously published single models, at less than 1/4 the training cost of the previous state-of-the-art model. The Transformer (big) model trained for English-to-French used dropout rate ### Pdrop = 0.1 ###, instead of 0.3.

    For the base models, we used a single model obtained by averaging the last 5 checkpoints, which were written at 10-minute intervals. For the big models, we averaged the last 20 checkpoints. We used beam search with a beam size of 4 and length penalty α = 0.6 [38]. These hyperparameters were chosen after experimentation on the development set. We set the maximum output length during inference to input length + 50, but terminate early when possible [38].

    Table 2 summarizes our results and compares our translation quality and training costs to other model architectures from the literature. We estimate the number of floating point operations used to train a model by multiplying the training time, the number of GPUs used, and an estimate of the sustained single-precision floating-point capacity of each GPU @@@ 5 @@@.

    Model Variations

    To evaluate the importance of different components of the Transformer, we varied our base model in different ways, measuring the change in performance on English-to-German translation on the

    @@@ 5 We used values of 2.8, 3.7, 6.0 and 9.5 TFLOPS for K80, K40, M40 and P100, respectively. @@@

    Table 3: Variations on the Transformer architecture. Unlisted values are identical to those of the base model. All metrics are on the English-to-German translation development set, newstest2013. Listed perplexities are per-wordpiece, according to our byte-pair encoding, and should not be compared to per-word perplexities.

    $$$ steps (dev) (dev) ×106 (A) (C) (D) (E) positional embedding instead of sinusoids 4.92 25.7 $$$

    development set, newstest2013. We used beam search as described in the previous section, but no checkpoint averaging. We present these results in Table 3.

    In Table 3 rows (A), we vary the number of attention heads and the attention key and value dimensions, keeping the amount of computation constant, as described in Section 3.2.2. While single-head attention is 0.9 BLEU worse than the best setting, quality also drops off with too many heads.

    In Table 3 rows (B), we observe that reducing the attention key size dk hurts model quality. This suggests that determining compatibility is not easy and that a more sophisticated compatibility function than dot product may be beneficial. We further observe in rows (C) and (D) that, as expected, bigger models are better, and dropout is very helpful in avoiding over-fitting. In row (E) we replace our sinusoidal positional encoding with learned positional embeddings [9], and observe nearly identical results to the base model.

    English Constituency Parsing

    To evaluate if the Transformer can generalize to other tasks we performed experiments on English constituency parsing. This task presents specific challenges: the output is subject to strong structural constraints and is significantly longer than the input. Furthermore, RNN sequence-to-sequence models have not been able to attain state-of-the-art results in small-data regimes [37].

    We trained a 4-layer transformer with dmodel = 1024 on the Wall Street Journal (WSJ) portion of the Penn Treebank [25], about 40K training sentences. We also trained it in a semi-supervised setting, using the larger high-confidence and BerkleyParser corpora from with approximately 17M sentences [37]. We used a vocabulary of 16K tokens for the WSJ only setting and a vocabulary of 32K tokens for the semi-supervised setting.

    We performed only a small number of experiments to select the dropout, both attention and residual (section 5.4), learning rates and beam size on the Section 22 development set, all other parameters remained unchanged from the English-to-German base translation model. During inference, we

    Table 4: The Transformer generalizes well to English constituency parsing (Results are on Section 23 of WSJ)

    $$$ Parser Training WSJ 23 F1 Transformer (4 layers) WSJ only, discriminative 91.3 Transformer (4 layers) semi-supervised 92.7 Luong et al. (2015) [23] multi-task 93.0 Dyer et al. (2016) [8] generative 93.3 $$$

    increased the maximum output length to input length + 300. We used a beam size of 21 and α = 0.3 for both WSJ only and the semi-supervised setting.

    Our results in Table 4 show that despite the lack of task-specific tuning our model performs surprisingly well, yielding better results than all previously reported models with the exception of the Recurrent Neural Network Grammar [8].

    In contrast to RNN sequence-to-sequence models [37], the Transformer outperforms the BerkeleyParser [29] even when training only on the WSJ training set of 40K sentences.

    Conclusion

    In this work, we presented the Transformer, the first sequence transduction model based entirely on attention, replacing the recurrent layers most commonly used in encoder-decoder architectures with multi-headed self-attention.

    For translation tasks, the Transformer can be trained significantly faster than architectures based on recurrent or convolutional layers. On both WMT 2014 English-to-German and WMT 2014 English-to-French translation tasks, we achieve a new state of the art. In the former task our best model outperforms even all previously reported ensembles.

    We are excited about the future of attention-based models and plan to apply them to other tasks. We plan to extend the Transformer to problems involving input and output modalities other than text and to investigate local, restricted attention mechanisms to efficiently handle large inputs and outputs such as images, audio and video. Making generation less sequential is another research goals of ours.

    The code we used to train and evaluate our models is available at https://github.com/ tensorflow/tensor2tensor.

    Acknowledgements We are grateful to Nal Kalchbrenner and Stephan Gouws for their fruitful comments, corrections and inspiration.


    Atención es todo lo que necesitas

    Autores: Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin

    Publicado en: arXiv preprint arXiv:1706.03762

    Año: 2017

    Citado por: 10,000+ (hasta 2024)

    Resumen:

    Los modelos dominantes de transducción de secuencias se basan en complejas redes neuronales recurrentes o convolucionales que incluyen un codificador y un decodificador. Los modelos más eficaces también conectan el codificador y el decodificador mediante un mecanismo de atención. Proponemos una nueva arquitectura de red sencilla, el Transformador, basada únicamente en mecanismos de atención, prescindiendo por completo de la recurrencia y las convoluciones. Los experimentos realizados en dos tareas de traducción automática demuestran que estos modelos son superiores en calidad, al tiempo que son más paralelizables y requieren mucho menos tiempo de entrenamiento. Nuestro modelo alcanza 28,4 BLEU en la tarea de traducción inglés-alemán del WMT 2014, mejorando en más de 2 BLEU los mejores resultados existentes, incluidos los conjuntos. En la tarea de traducción inglés-francés del WMT 2014, nuestro modelo establece una nueva puntuación BLEU de 41,8 tras un entrenamiento de 3,5 días en ocho GPU, una pequeña fracción de los costes de entrenamiento de los mejores modelos de la bibliografía. Demostramos que el Transformador se generaliza bien a otras tareas aplicándolo con éxito al análisis sintáctico de constituyentes en inglés, tanto con datos de entrenamiento grandes como limitados.

    Keywords: Atención, Transformador, Redes Neuronales, Deep Learning, NLP.

    Introducción

    Las redes neuronales recurrentes, en particular las redes neuronales de memoria a corto plazo [13] y las redes neuronales gated recurrentes [7], se han establecido firmemente como enfoques de vanguardia en el modelado de secuencias y problemas de transducción como el modelado del lenguaje y la traducción automática [35, 2, 5]. Desde entonces, numerosos esfuerzos han continuado ampliando los límites de los modelos recurrentes de lenguaje y las arquitecturas codificador-decodificador [38, 24, 15].

    Los modelos recurrentes suelen factorizar el cómputo a lo largo de las posiciones de los símbolos de las secuencias de entrada y salida. Alineando las posiciones con los pasos en el tiempo de computación, generan una secuencia de estados ocultos ht, como una función del estado oculto previo ht-1 y la entrada para la posición t. Esta naturaleza inherentemente secuencial impide la paralelización dentro de los ejemplos de entrenamiento, que se vuelve crítica en secuencias de mayor longitud, ya que las restricciones de memoria limitan el procesamiento por lotes a través de los ejemplos. Trabajos recientes han logrado mejoras significativas en la eficiencia computacional mediante trucos de factorización [21] y cálculo condicional [32], mejorando también el rendimiento del modelo en el caso de este último. Sin embargo, sigue existiendo la limitación fundamental del cálculo secuencial.

    Los mecanismos de atención se han convertido en una parte integral de los modelos de transducción y modelado de secuencias en varias tareas, permitiendo el modelado de dependencias sin tener en cuenta su distancia en las secuencias de entrada o salida [2, 19]. Sin embargo, salvo en unos pocos casos [27], estos mecanismos de atención se utilizan junto con una red recurrente.

    En este trabajo proponemos el Transformer, un modelo de arquitectura que evita la recurrencia y en su lugar confía enteramente en un mecanismo de atención para dibujar dependencias globales entre la entrada y la salida. Transformer permite una paralelización significativamente mayor y puede alcanzar un nuevo estado del arte en calidad de traducción tras un entrenamiento de tan sólo doce horas en ocho GPUs P100.

    Antecedentes

    El objetivo de reducir el cómputo secuencial también constituye la base de la GPU Neuronal Extendida [16], ByteNet [18] y ConvS2S [9], todas las cuales utilizan redes neuronales convolucionales como bloque de construcción 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 arbitrarias de entrada o salida crece con la distancia entre posiciones, linealmente para ConvS2S y logarítmicamente para ByteNet. Esto dificulta el aprendizaje de dependencias entre posiciones distantes [12]. En el Transformer esto se reduce a un número constante de operaciones, aunque a costa de reducir la resolución efectiva debido a que se promedian las posiciones ponderadas por la atención, un efecto que contrarrestamos con la Atención Multicabezal descrita en la sección 3.2.

    La autoatención, a veces denominada intraatención, es un mecanismo de atención que relaciona distintas posiciones de una misma secuencia para calcular una representación de la secuencia. La autoatención se ha utilizado con éxito en diversas tareas, como la comprensión lectora, el resumen abstracto, la vinculación textual y el aprendizaje de representaciones de frases independientes de la tarea [4, 27, 28, 22].

    Las redes de memoria de extremo a extremo se basan en un mecanismo de atención recurrente en lugar de recurrencia alineada con la secuencia y han demostrado un buen rendimiento en tareas de respuesta a preguntas de lenguaje simple y de modelado del lenguaje [34].

    Sin embargo, hasta donde sabemos, el Transformer es el primer modelo de transducción que se basa completamente en la autoatención para calcular representaciones de su entrada y salida sin utilizar RNNs alineadas con la secuencia o convolución. En las siguientes secciones, describiremos el Transformer, motivaremos la autoatención y discutiremos sus ventajas sobre modelos como [17, 18] y [9].

    Arquitectura del modelo

    La mayoría de los modelos competitivos de transducción de secuencias neuronales tienen una estructura 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 descodificador genera una secuencia de símbolos de salida (y1, ..., ym) de un elemento cada vez. En cada paso el modelo es autorregresivo [10], consumiendo los símbolos generados previamente como entrada adicional al generar el siguiente.

    <img src=«attention_images/image_2_0.png» alt=«Imagen 0» width=«300px»>

    Figura 1: El Transformer - arquitectura del modelo.

    El Transformer sigue esta arquitectura general utilizando capas apiladas de autoatención y punto a punto, totalmente conectadas, tanto para el codificador como para el decodificador, que se muestran en las mitades izquierda y derecha de la Figura 1, respectivamente.

    Pilas de codificador y decodificador

    Codificador: El codificador está compuesto por una pila de N = 6 capas idénticas. Cada capa tiene dos subcapas. La primera es un mecanismo de autoatención multicabezal, y la segunda es una red simple, totalmente conectada en función de la posición. Empleamos una conexión residual [11] alrededor de cada una de las dos subcapas, seguida de una normalización de capas [1]. Es decir, la salida de cada subcapa es LayerNorm(x + Sublayer(x)), donde Sublayer(x) es la función implementada por la propia 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 de cada capa del codificador, el decodificador inserta una tercera subcapa, que realiza la atención multicabezal sobre la salida de la pila del codificador. De forma similar al codificador, empleamos conexiones residuales alrededor de cada una de las subcapas, seguidas de una normalización de capas. También modificamos la subcapa de autoatención en la pila del decodificador para evitar que las posiciones atiendan a las posiciones posteriores. Este enmascaramiento, combinado con el hecho de que las incrustaciones de salida están desplazadas una posición, garantiza que las predicciones para la posición i sólo pueden depender de las salidas conocidas en posiciones inferiores a i.

    Atención

    Una función de atención puede describirse como la asignación de una consulta y un conjunto de pares clave-valor a una salida, donde la consulta, las claves, los valores y la salida son todos vectores. La salida se calcula como una suma ponderada del producto de punto escalado

    Atención de producto escalar escalada

    <img src=«attention_images/image_3_0.png» alt=«Imagen 1» width=«300px»>

    Atención Multicabezal

    <img src=«attention_images/image_3_1.png» alt=«Imagen 2» width=«300px»>

    Figura 2: (izquierda) Atención de producto escalar escalada. (Derecha) La atención multicabezal consta de varias capas de atención que funcionan en paralelo.

    de los valores, donde el peso asignado a cada valor se calcula mediante una función de compatibilidad de la consulta con la clave correspondiente.

    Atención de producto escalar escalada

    Llamamos a nuestra atención particular «Atención escalada punto-producto» (Figura 2). La entrada consiste en consultas y claves de dimensión dk, y valores de dimensión dv. Calculamos los productos escalares de la consulta con todas las claves, dividimos cada uno por √dk y aplicamos una función softmax para obtener los pesos de los valores.

    En la práctica, calculamos la función de atención sobre un conjunto de consultas simultáneamente, empaquetadas juntas en una matriz Q. Las claves y los valores también se empaquetan juntos en matrices K y V . Calculamos la matriz de resultados 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 punto-producto (multiplicativa). La atención punto-producto es idéntica a nuestro algoritmo, excepto por el factor de escala de ### 1/√dk ### . La atención aditiva calcula la función de compatibilidad utilizando una red feed-forward con una única capa oculta. Aunque ambos tienen una complejidad teórica similar, la atención aditiva es mucho más rápida y eficiente en términos de espacio en la práctica, ya que puede implementarse utilizando un código de multiplicación de matrices altamente optimizado.

    Aunque para valores pequeños de dk los dos mecanismos funcionan de forma similar, la atención aditiva supera a la atención de producto de punto sin escalar para valores mayores de dk [3]. Sospechamos que para valores grandes de dk, los productos de puntos crecen en magnitud, empujando la función softmax hacia regiones donde tiene gradientes extremadamente pequeños @@@4@@@. Para contrarrestar este efecto, escalamos los productos de punto en ### 1/√dk ### .

    Atención multicabezal

    En lugar de realizar una única función de atención con claves, valores y consultas ddimensionales, nos pareció beneficioso proyectar linealmente las consultas, claves y valores h veces con diferentes proyecciones lineales aprendidas a dk, dk y dv dimensiones, respectivamente. En cada una de estas versiones proyectadas de consultas, claves y valores realizamos la función de atención en paralelo, obteniendo dv-dimensiones

    @@@4 Para ilustrar por qué los productos escalares son tan grandes, supongamos que los componentes de q y k son variables aleatorias independientes con media 0 y varianza 1. Entonces su producto escalar, ### q - k ###, es una variable aleatoria independiente. Entonces su producto escalar, ### q - k = �dk i=1 qiki ###, tiene media 0 y varianza dk. @@@

    valores de salida. Éstos se concatenan y se proyectan de nuevo, obteniéndose los valores finales, como se muestra en la Figura 2.

    La atención multicabezal permite al modelo atender conjuntamente a información de distintos subespacios de representación en distintas posiciones. Con una sola cabeza de atención, el promedio inhibe este proceso.


    ###MultiHead(Q, K, V ) = Concat(head1, ..., headh)W O donde headi = Attention(QW Q i , KW K i , V W V i ) ###


    Donde las proyecciones son matrices de parámetros ### 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 cabeza, el coste computacional total es similar al de la atención de una sola cabeza con dimensionalidad completa.

    Aplicaciones de la atención en nuestro modelo

    El Transformer utiliza la atención multicabezal de tres formas diferentes:

    • En las capas de «atención codificador-decodificador», las consultas provienen de la capa decodificadora anterior, y las claves y valores de memoria provienen de la salida del codificador. Esto permite que cada posición del decodificador atienda a todas las posiciones de la secuencia de entrada. Esto imita los mecanismos típicos de atención codificador-decodificador en modelos secuencia-a-secuencia 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 del codificador puede atender a todas las posiciones de la capa anterior del codificador.
    • Del mismo modo, las capas de autoatención del descodificador permiten que cada posición del descodificador atienda a todas las posiciones del descodificador hasta esa posición inclusive. Tenemos que evitar el flujo de información hacia la izquierda en el descodificador para preservar la propiedad autorregresiva. Implementamos esto dentro de la atención de producto de punto escalado enmascarando (ajustando a -∞) todos los valores en la entrada del softmax que corresponden a conexiones ilegales. Véase la figura 2.

    Redes Feed-Forward por 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 totalmente conectada, que se aplica a cada posición por separado y de forma idéntica. Consiste en dos transformaciones lineales con una activación ReLU intermedia.

    ###FFN(x) = max(0, xW1 + b1)W2 + b2 (2) ###

    Aunque las transformaciones lineales son las mismas en las distintas posiciones, utilizan distintos parámetros de una capa a otra. Otra forma de describir esto es como dos convoluciones con tamaño de núcleo 1. La dimensionalidad de la entrada y la salida es dmodel = 512, y la capa interna tiene una dimensionalidad dff = 2048.

    Incrustaciones y Softmax

    De forma similar a otros modelos de transducción de secuencias, utilizamos embebimientos aprendidos para convertir los tokens de entrada y los tokens de salida en vectores de dimensión dmodel. También utilizamos la transformación lineal aprendida habitual y la función softmax para convertir la salida del descodificador en probabilidades predichas del siguiente token. En nuestro modelo, compartimos la misma matriz de pesos entre las dos capas de incrustación y la transformación lineal pre-softmax, de forma similar a [30]. En las capas de incrustación, multiplicamos esos pesos por ### √dmodelo ###.

    Tabla 1: Longitudes máximas de camino, complejidad por capa y número mínimo de operaciones secuenciales para distintos tipos de capa. n es la longitud de secuencia, d es la dimensión de representación, k es el tamaño del núcleo de convoluciones y r el tamaño del vecindario en autoatención restringida.

    $$$ Tipo de capa Complejidad por capa Secuencial Longitud máxima del camino Operaciones $$$

    Codificación posicional

    Dado que nuestro modelo no contiene ninguna 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 los tokens en la secuencia. Para ello, añadimos «codificaciones posicionales» 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 ambas pueden sumarse. Hay muchas opciones de codificaciones posicionales, aprendidas y fijas [9].

    En este trabajo, utilizamos funciones seno y coseno de diferentes frecuencias:

    ###PE(pos,2i) = sen(pos/100002i/modelo) PE(pos,2i+1) = cos(pos/100002i/modelo) ###

    donde pos es la posición e i es la dimensión. Es decir, cada dimensión de la codificación posicional corresponde a una sinusoide. Las longitudes de onda forman una progresión geométrica de ### 2π a 10000 - 2π ###. Elegimos esta función porque pensamos que permitiría al modelo aprender fácilmente a atender por posiciones relativas, ya que para cualquier desplazamiento fijo ### k, PEpos+k ### puede representarse como una función lineal de ### PEpos ###.

    También experimentamos con el uso de incrustaciones posicionales aprendidas [9] en su lugar, y descubrimos que las dos versiones producían resultados casi idénticos (véase la Tabla 3, fila (E)). Elegimos la versión sinusoidal porque puede permitir al modelo extrapolar secuencias más largas que las encontradas durante el entrenamiento.

    Por qué autoatención

    En esta sección comparamos varios aspectos de las capas de autoatención con las capas recurrentes y convolucionales comúnmente utilizadas para mapear una secuencia de longitud variable de representaciones de símbolos (x1, ..., xn) a otra secuencia de igual longitud (z1, ..., zn), con ### xi, zi ∈ Rd ###, como una capa oculta en un típico codificador o decodificador de transducción de secuencias. Para motivar nuestro uso de la autoatención consideramos tres desideratas.

    Uno es la complejidad computacional total por capa. Otro es la cantidad de cálculo que puede paralelizarse, medida por el número mínimo de operaciones secuenciales necesarias.

    El tercero es la longitud del camino entre las dependencias de largo alcance de la red. El aprendizaje de las 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 dichas dependencias es la longitud de los caminos que las señales de avance y retroceso tienen que recorrer en la red. Cuanto más cortos sean estos caminos entre cualquier combinación de posiciones en las secuencias de entrada y salida, más fácil será aprender dependencias de largo alcance [12]. De ahí que también comparemos la longitud máxima del camino entre dos posiciones cualesquiera de entrada y salida en redes compuestas por los distintos 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 O(n) operaciones secuenciales. 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, que es el caso más frecuente de las representaciones de frases utilizadas por los modelos más avanzados en traducción automática, como las representaciones palabra-pieza [38] y byte-par [31]. Para mejorar el rendimiento computacional en tareas que implican secuencias muy largas, la autoatención podría limitarse a considerar sólo un vecindario de tamaño r en la secuencia de entrada centrado alrededor de la posición de salida respectiva. Esto aumentaría la longitud máxima del camino a O(n/r). Tenemos previsto seguir investigando este enfoque en futuros trabajos.

    Una sola capa convolucional con una anchura de núcleo k < n no conecta todos los pares de posiciones de entrada y salida. Para ello se necesita una pila de O(n/k) capas convolucionales en el caso de núcleos contiguos, u ### O(logk(n)) ### en el caso de convoluciones dilatadas [18], lo que aumenta la longitud de los caminos más largos entre dos posiciones cualesquiera de la red. Las capas convolucionales suelen ser más caras que las recurrentes, por un factor de k. Sin embargo, las convoluciones separables [6] reducen la complejidad considerablemente, a ### O(k - n - d + n - d2) ###. Sin embargo, incluso con k = n, la complejidad de una convolución separable es igual a la combinación de una capa de autoatención y una capa de avance puntual, el enfoque que adoptamos en nuestro modelo.

    Como beneficio secundario, la autoatención podría producir modelos más interpretables. Inspeccionamos las distribuciones de atención de nuestros modelos y presentamos y discutimos ejemplos en el apéndice. No sólo las cabezas de atención individuales aprenden claramente a realizar diferentes tareas, sino que muchas parecen mostrar un comportamiento relacionado con la estructura sintáctica y semántica de las frases.

    Entrenamiento

    Esta sección describe el régimen de entrenamiento de nuestros modelos.

    Datos de entrenamiento y procesamiento por lotes

    Nos entrenamos con 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 se codificaron utilizando la codificación de pares de bytes [3], que tiene un vocabulario fuente-destino compartido de unos 37000 tokens. Para el inglés-francés, utilizamos el conjunto de datos inglés-francés de WMT 2014, significativamente mayor, que consta de 36 millones de frases y divide los tokens en un vocabulario de 32.000 palabras [38]. Los pares de frases se agruparon según la longitud aproximada de la secuencia. Cada lote de entrenamiento contenía un conjunto de pares de frases con aproximadamente 25.000 tokens de origen y 25.000 tokens de destino.

    Hardware y programación

    Entrenamos nuestros modelos en una máquina con 8 GPUs NVIDIA P100. Con los hiperparámetros descritos a lo largo del artículo, cada paso de entrenamiento tardó unos 0,4 segundos. Entrenamos los modelos básicos durante un total de 100.000 pasos o 12 horas. Para nuestros modelos grandes (descritos en la línea inferior de la tabla 3), el tiempo de paso fue de 1,0 segundos. Los modelos grandes se entrenaron durante 300.000 pasos (3,5 días).

    Optimizador

    Utilizamos el optimizador Adam [20] con β1 = 0,9, β2 = 0,98 y ϵ = 10-9. Variamos la tasa de aprendizaje a lo largo del entrenamiento, según la fórmula:

    ###lrate = d-0,5 model - 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 warmup_steps, y disminuirla a partir de entonces proporcionalmente a la raíz cuadrada inversa del número de pasos. Hemos utilizado warmup_steps = 4000.

    Regularización

    Empleamos tres tipos de regularización durante el entrenamiento:

    Tabla 2: El Transformer obtiene mejores puntuaciones BLEU que los modelos más avanzados en las pruebas inglés-alemán e inglés-francés de newstest2014 con un coste de formación muy inferior.

    $$$ Modelo BLEU Coste de entrenamiento (FLOPs) EN-DE EN-FR EN-DE EN-FR ByteNet [18] 23,75 Deep-Att + PosUnk [39] 39,2 1,0 - 1020 Deep-Att + PosUnk Ensemble [39] 40,4 8,0 - 1020 Transformer (modelo base) 27,3 38,1 3,3 - 1018 $$$

    Dropout residual Aplicamos dropout [33] a la salida de cada subcapa, antes de añadirla a la entrada de la subcapa y normalizarla. Además, aplicamos dropout a las sumas de las incrustaciones y las codificaciones posicionales tanto en la pila del codificador como en la del decodificador. Para el modelo base, utilizamos una tasa de ### Pdrop = 0,1 ###.

    Suavizado de etiquetas Durante el entrenamiento, empleamos un suavizado de etiquetas de valor ϵls = 0,1 [36]. Esto perjudica la perplejidad, ya que el modelo aprende a ser más inseguro, pero mejora la precisión y la puntuación BLEU.

    Resultados

    Traducción automática

    En la tarea de traducción inglés-alemán del WMT 2014, el modelo de transformador grande (Transformer (big) en la Tabla 2) supera en más de 2,0 BLEU a los mejores modelos reportados anteriormente (incluidos los conjuntos), estableciendo una nueva puntuación BLEU del estado del arte de 28,4. La configuración de este modelo figura en la línea inferior de la Tabla 3. El entrenamiento duró 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 coste de entrenamiento de cualquiera de los modelos de la competencia.

    En la tarea de traducción inglés-francés del WMT 2014, nuestro modelo grande alcanza una puntuación BLEU de 41,0, superando a todos los modelos individuales publicados anteriormente, con menos de 1/4 del coste de formación del modelo anterior más avanzado. El modelo Transformer (grande) entrenado para el inglés-francés utilizó una tasa de abandono ### Pdrop = 0,1 ###, en lugar de 0,3.

    Para los modelos base, utilizamos un único modelo obtenido promediando los últimos 5 puntos de control, que se escribieron a intervalos de 10 minutos. Para los modelos grandes, se promediaron los 20 últimos puntos de control. Utilizamos la búsqueda por haz con un tamaño de haz de 4 y una penalización de longitud α = 0,6 [38]. Estos hiperparámetros se eligieron tras experimentar con el conjunto de desarrollo. Fijamos la longitud máxima de salida durante la inferencia en la longitud de entrada + 50, pero terminamos antes cuando fue posible [38].

    La Tabla 2 resume nuestros resultados y compara nuestra calidad de traducción y costes de formación con otras arquitecturas de modelos de la literatura. Estimamos el número de operaciones en coma flotante utilizadas para entrenar un modelo multiplicando el tiempo de entrenamiento, el número de GPU utilizadas y una estimación de la capacidad sostenida de coma flotante de precisión simple de cada GPU @@@5@@@.

    Variaciones del modelo

    Para evaluar la importancia de los distintos componentes del Transformer, variamos nuestro modelo base de distintas formas, midiendo el cambio en el rendimiento de la traducción inglés-alemán en el

    @@@ 5 Utilizamos valores de 2,8, 3,7, 6,0 y 9,5 TFLOPS para K80, K40, M40 y P100, respectivamente. @@@

    Tabla 3: Variaciones de la arquitectura Transformer. Los valores no enumerados son idénticos a los del modelo base. Todas las métricas se refieren al conjunto de desarrollo de traducción del inglés al alemán, newstest2013. Las perplejidades indicadas son por palabra, según nuestra codificación de pares de bytes, y no deben compararse con las perplejidades por palabra.

    $$$ pasos (dev) (dev) ×106 (A) (C) (D) (E) incrustación posicional en lugar de sinusoides 4,92 25,7 $$$

    conjunto de desarrollo, newstest2013. Utilizamos la búsqueda de haces descrita en la sección anterior, pero sin promediado de puntos de control. Presentamos estos resultados en la Tabla 3.

    En las filas (A) de la Tabla 3, variamos el número de cabezas de atención y las dimensiones de clave y valor de la atención, manteniendo constante la cantidad de cómputo, como se describe en la Sección 3.2.2. Aunque la atención de una sola cabeza es 0,9 BLEU peor que la mejor configuración, la calidad también disminuye con demasiadas cabezas.

    En las filas (B) de la Tabla 3, observamos que reducir el tamaño de la clave de atención 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. En las filas (C) y (D) observamos además que, como era de esperar, los modelos más grandes son mejores, y que el abandono es muy útil para evitar el sobreajuste. En la fila (E) sustituimos nuestra codificación posicional sinusoidal por incrustaciones posicionales aprendidas [9], y observamos resultados casi idénticos a los del modelo base.

    Análisis sintáctico de constituyentes en inglés

    Para evaluar si el Transformer puede generalizarse a otras tareas, realizamos experimentos con el análisis sintáctico de constituyentes en inglés. Esta tarea presenta retos específicos: el resultado está sujeto a fuertes restricciones estructurales y es significativamente más largo que la entrada. Además, los modelos secuencia-secuencia de RNN no han sido capaces de alcanzar resultados punteros en regímenes de datos pequeños [37].

    Entrenamos un transformador de 4 capas con dmodel = 1024 en la parte del Wall Street Journal (WSJ) del Penn Treebank [25], unas 40.000 frases de entrenamiento. También lo entrenamos en un entorno semisupervisado, utilizando los corpus más grandes de alta confianza y BerkleyParser de con aproximadamente 17M de frases [37]. Utilizamos un vocabulario de 16.000 tokens para la configuración sólo WSJ y un vocabulario de 32.000 tokens para la configuración semisupervisada.

    Realizamos sólo un pequeño número de experimentos para seleccionar el abandono, tanto la atención como el residuo (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 respecto al modelo de traducción base inglés-alemán. Durante la inferencia,

    Tabla 4: El Transformer se generaliza bien al análisis sintáctico de constituyentes en inglés (los resultados son sobre la Sección 23 de WSJ)

    $$$ Parser Entrenamiento WSJ 23 F1 Transformer (4 capas) solo WSJ, discriminativo 91,3 Transformer (4 capas) semisupervisado 92,7 Luong et al. (2015) [23] multitarea 93,0 Dyer et al. (2016) [8] generativo 93,3 $$$

    aumentamos la longitud máxima de salida a la longitud de entrada + 300. Utilizamos un tamaño de haz de 21 y α = 0,3 tanto para WSJ solo como para el ajuste semisupervisado.

    Nuestros resultados en la Tabla 4 muestran que, a pesar de la falta de ajuste específico de la tarea, nuestro modelo funciona sorprendentemente bien, obteniendo mejores resultados que todos los modelos descritos anteriormente, con la excepción de la Gramática de Redes Neuronales Recurrentes [8].

    A diferencia de los modelos secuencia a secuencia de RNN [37], el Transformer supera al BerkeleyParser [29] incluso cuando se entrena sólo con el conjunto de 40.000 frases del WSJ.

    Conclusión

    En este trabajo hemos presentado el Transformer, el primer modelo de transducción de secuencias basado enteramente en la atención, sustituyendo las capas recurrentes más comúnmente utilizadas en arquitecturas codificador-decodificador por la autoatención multicabezal.

    Para tareas de traducción, el Transformer puede entrenarse significativamente más rápido que las arquitecturas basadas en capas recurrentes o convolucionales. En las tareas de traducción de inglés a alemán y de inglés a francés de WMT 2014, alcanzamos un nuevo estado del arte. En la primera tarea, nuestro mejor modelo supera incluso a todos los conjuntos anteriores.

    Estamos entusiasmados con el futuro de los modelos basados en la atención y planeamos aplicarlos a otras tareas. Tenemos previsto ampliar el Transformer a problemas que impliquen modalidades de entrada y salida distintas del texto e investigar mecanismos de atención local y restringida para manejar con eficacia entradas y salidas de gran tamaño, como imágenes, audio y vídeo. Otro de nuestros objetivos de investigación es hacer que la generación sea menos secuencial.

    El código que hemos utilizado para entrenar y evaluar nuestros modelos está disponible en https://github.com/ tensorflow/tensor2tensor.

    Agradecimientos Agradecemos a Nal Kalchbrenner y Stephan Gouws sus fructíferos comentarios, correcciones e inspiración.