Language Modeling with Gated Convolutional Networks/paper/es

    From Marovi AI
    < Language Modeling with Gated Convolutional Networks
    Revision as of 07:58, 27 April 2026 by DeployBot (talk | contribs) (Batch translate Language Modeling with Gated Convolutional Networks/paper unit 76 → es)
    (diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
    Other languages:
    SummarySource
    Research Paper
    Authors Yann N. Dauphin; Angela Fan; Michael Auli; David Grangier
    Year 2016
    Topic area NLP
    Difficulty Research
    arXiv 1612.08083
    PDF Download PDF

    Language Modeling with Gated Convolutional Networks

    Yann N. Dauphin    Angela Fan    Michael Auli    David Grangier

    Language Modeling with Gated Convolutional Networks

    Yann N. Dauphin    Angela Fan    Michael Auli    David Grangier

    Resumen

    El enfoque predominante para el modelado del lenguaje hasta la fecha se basa en redes neuronales recurrentes. Su éxito en esta tarea suele atribuirse a su capacidad para capturar contexto no acotado. En este artículo desarrollamos un enfoque de contexto finito mediante convoluciones apiladas, que puede ser más eficiente porque permite paralelización sobre los tokens secuenciales. Proponemos un nuevo mecanismo de gating simplificado que supera al de Oord et al. (2016b) e investigamos el impacto de decisiones arquitectónicas clave. El enfoque propuesto alcanza el estado del arte en el benchmark WikiText-103, a pesar de que este presenta dependencias de largo plazo, así como resultados competitivos en el benchmark Google Billion Words. Nuestro modelo reduce la latencia para puntuar una oración en un orden de magnitud comparado con una línea base recurrente. Hasta donde sabemos, esta es la primera vez que un enfoque no recurrente es competitivo con sólidos modelos recurrentes en estas tareas de lenguaje a gran escala.

    redes neuronales convolucionales, redes recurrentes, modelado del lenguaje

    1 Introducción

    Los modelos estadísticos del lenguaje estiman la distribución de probabilidad de una secuencia de palabras modelando la probabilidad de la siguiente palabra dadas las palabras precedentes, es decir,

    $ {\textstyle {{P\hspace{0pt}{(w_{0},\ldots,w_{N})}} = {P\hspace{0pt}{(w_{0})}\hspace{0pt}{\prod\limits_{i = 1}^{N}{P\hspace{0pt}{(\left. w_{i} \middle| {w_{0},\ldots,w_{i - 1}} \right.)}}}}},} $

    donde $ {\textstyle w_{i}} $ son índices discretos de palabras en un vocabulario. Los modelos del lenguaje son una parte crítica de los sistemas de reconocimiento de voz (Yu & Deng, 2014) y traducción automática (Koehn, 2010).

    Recientemente, se ha demostrado que las redes neuronales (Bengio et al., 2003; Mikolov et al., 2010; Jozefowicz et al., 2016) superan a los modelos del lenguaje clásicos de n-gramas (Kneser & Ney, 1995; Chen & Goodman, 1996). Estos modelos clásicos sufren de escasez de datos, lo que dificulta representar contextos grandes y, por tanto, dependencias de largo alcance. Los modelos del lenguaje neuronales abordan este problema embebiendo las palabras en un espacio continuo sobre el cual se aplica una red neuronal. El estado del arte actual para modelado del lenguaje se basa en long short term memory networks (LSTM; Hochreiter et al., 1997), que en teoría pueden modelar dependencias arbitrariamente largas.

    En este artículo, presentamos nuevas redes convolucionales con compuertas (gated convolutional networks) y las aplicamos al modelado del lenguaje. Las redes convolucionales pueden apilarse para representar tamaños de contexto grandes y extraer características jerárquicas sobre contextos cada vez mayores con características más abstractas (LeCun & Bengio, 1995). Esto les permite modelar dependencias de largo plazo aplicando $ {\textstyle \mathcal{O}\hspace{0pt}{(\frac{N}{k})}} $ operaciones sobre un contexto de tamaño $ {\textstyle N} $ y ancho de kernel $ {\textstyle k} $. En contraste, las redes recurrentes ven la entrada como una estructura en cadena y, por tanto, requieren un número lineal $ {\textstyle \mathcal{O}\hspace{0pt}{(N)}} $ de operaciones.

    Analizar la entrada de manera jerárquica guarda semejanza con los formalismos gramaticales clásicos que construyen árboles sintácticos de granularidad creciente; por ejemplo, las oraciones constan de sintagmas nominales y verbales, cada uno con estructura interna adicional (Manning & Schütze, 1999; Steedman, 2002). La estructura jerárquica también facilita el aprendizaje, ya que el número de no-linealidades para un tamaño de contexto dado se reduce respecto a una estructura en cadena, mitigando así el problema del vanishing gradient (Glorot & Bengio, 2010).

    El hardware moderno está bien adaptado a modelos altamente paralelizables. En las redes recurrentes, la siguiente salida depende del estado oculto previo, lo que no permite la paralelización sobre los elementos de una secuencia. Las redes convolucionales, sin embargo, son muy aptas para este paradigma de cómputo, ya que el cómputo de todas las palabras de entrada puede realizarse simultáneamente (§2).

    Se ha demostrado que el gating es esencial para que las redes neuronales recurrentes alcancen un rendimiento de vanguardia (Jozefowicz et al., 2016). Nuestras gated linear units reducen el problema de vanishing gradient en arquitecturas profundas al proporcionar un camino lineal para los gradientes mientras conservan capacidades no lineales (§5.2).

    Mostramos que las redes convolucionales con compuertas superan a otros modelos del lenguaje publicados recientemente, como los LSTMs entrenados en una configuración similar, en el benchmark Google Billion Word (Chelba et al., 2013). También evaluamos la capacidad de nuestros modelos para tratar dependencias de largo alcance en el benchmark WikiText-103, en el que el modelo se condiciona sobre un párrafo entero en lugar de una sola oración, y alcanzamos un nuevo estado del arte en este conjunto de datos (Merity et al., 2016). Por último, mostramos que las gated linear units logran mayor precisión y convergen más rápido que el gating al estilo LSTM de Oord et al. (2016; §4, §5).

    2 Enfoque

    En este artículo presentamos un nuevo modelo del lenguaje neuronal que reemplaza las conexiones recurrentes que se usan típicamente en redes recurrentes por convoluciones temporales con compuertas. Los modelos del lenguaje neuronales (Bengio et al., 2003) producen una representación $ {\textstyle \mathbf{H} = {\lbrack\mathbf{h}_{0},\ldots,\mathbf{h}_{N}\rbrack}} $ del contexto para cada palabra $ {\textstyle w_{0},\ldots,w_{N}} $ con el fin de predecir la siguiente palabra $ {\textstyle P\hspace{0pt}{(\left. w_{i} \middle| \mathbf{h}_{i} \right.)}} $. Las redes neuronales recurrentes $ {\textstyle f} $ calculan $ {\textstyle \mathbf{H}} $ mediante una función recurrente $ {\textstyle \mathbf{h}_{i} = {f\hspace{0pt}{(\mathbf{h}_{i - 1},w_{i - 1})}}} $, que es un proceso inherentemente secuencial y no puede paralelizarse sobre $ {\textstyle i} $.111La paralelización suele hacerse sobre múltiples secuencias en su lugar.

    Nuestro enfoque propuesto convoluciona las entradas con una función $ {\textstyle f} $ para obtener $ {\textstyle \mathbf{H} = {f \ast w}} $ y, por tanto, no tiene dependencias temporales, de modo que es más fácil paralelizarlo sobre las palabras individuales de una oración. Este proceso calculará cada contexto como una función de un número de palabras precedentes. Comparado con las redes recurrentes, el tamaño del contexto es finito, pero demostraremos tanto que los contextos infinitos no son necesarios como que nuestros modelos pueden representar contextos suficientemente grandes para funcionar bien en la práctica (§5).

    Refer to caption

    La Figura 1 ilustra la arquitectura del modelo. Las palabras se representan mediante un embedding vectorial almacenado en una tabla de búsqueda $ {\textstyle \mathbf{D}^{{|\mathcal{V}|} \times e}} $, donde $ {\textstyle |\mathcal{V}|} $ es el número de palabras en el vocabulario y $ {\textstyle e} $ es el tamaño del embedding. La entrada de nuestro modelo es una secuencia de palabras $ {\textstyle w_{0},\ldots,w_{N}} $ representadas por embeddings de palabras $ {\textstyle \mathbf{E} = {\lbrack\mathbf{D}_{w_{0}},\ldots,\mathbf{D}_{w_{N}}\rbrack}} $. Calculamos las capas ocultas $ {\textstyle h_{0},\ldots,h_{L}} $ como

    $ {\textstyle {h_{l}\hspace{0pt}{(\mathbf{X})}} = {{{({{\mathbf{X} \ast \mathbf{W}} + \mathbf{b}})} \otimes \sigma}\hspace{0pt}{({{\mathbf{X} \ast \mathbf{V}} + \mathbf{c}})}}} $ (1)

    donde $ {\textstyle m,n} $ son, respectivamente, el número de mapas de características de entrada y de salida y $ {\textstyle k} $ es el tamaño del patch, $ {\textstyle \mathbf{X} \in {\mathbb{R}}^{N \times m}} $ es la entrada de la capa $ {\textstyle h_{l}} $ (los embeddings de palabras o las salidas de capas previas), $ {\textstyle \mathbf{W} \in {\mathbb{R}}^{k \times m \times n}} $, $ {\textstyle \mathbf{b} \in {\mathbb{R}}^{n}} $, $ {\textstyle \mathbf{V} \in {\mathbb{R}}^{k \times m \times n}} $, $ {\textstyle \mathbf{c} \in {\mathbb{R}}^{n}} $ son parámetros aprendidos, $ {\textstyle \sigma} $ es la función sigmoide y $ {\textstyle \otimes} $ es el producto elemento a elemento entre matrices.

    Al convolver las entradas, nos aseguramos de que $ {\textstyle \mathbf{h}_{i}} $ no contenga información de palabras futuras. Esto se logra desplazando las entradas convolucionales para evitar que los kernels vean contexto futuro (Oord et al., 2016a). Específicamente, rellenamos con ceros el comienzo de la secuencia con $ {\textstyle k - 1} $ elementos, suponiendo que el primer elemento de entrada es el marcador de comienzo de secuencia, que no predecimos, y $ {\textstyle k} $ es el ancho del kernel.

    La salida de cada capa es una proyección lineal $ {\textstyle {\mathbf{X} \ast \mathbf{W}} + \mathbf{b}} $ modulada por las compuertas $ {\textstyle \sigma\hspace{0pt}{({{\mathbf{X} \ast \mathbf{V}} + \mathbf{c}})}} $. De forma similar a los LSTMs, estas compuertas multiplican cada elemento de la matriz $ {\textstyle {\mathbf{X} \ast \mathbf{W}} + \mathbf{b}} $ y controlan la información que se transmite en la jerarquía. A este mecanismo de gating lo llamamos Gated Linear Units (GLU). Apilar varias capas sobre la entrada $ {\textstyle \mathbf{E}} $ da una representación del contexto para cada palabra $ {\textstyle \mathbf{H} = {{h_{L} \circ \ldots \circ h_{0}}\hspace{0pt}{(\mathbf{E})}}} $. Envolvemos la convolución y la gated linear unit en un bloque residual con pre-activación que suma la entrada del bloque a la salida (He et al., 2015a). Los bloques tienen estructura bottleneck por eficiencia computacional y cada bloque tiene hasta 5 capas.

    La opción más simple para obtener las predicciones del modelo es usar una capa softmax, pero esta opción suele ser computacionalmente ineficiente para vocabularios grandes y se prefieren aproximaciones como la noise contrastive estimation (Gutmann & Hyvärinen, ) o el hierarchical softmax (Morin & Bengio, 2005). Elegimos una mejora de este último conocida como adaptive softmax, que asigna mayor capacidad a las palabras muy frecuentes y menor capacidad a las palabras poco frecuentes (Grave et al., 2016a). Esto reduce los requisitos de memoria y permite cómputo más rápido tanto en entrenamiento como en test.

    3 Mecanismos de Gating

    Los mecanismos de gating controlan el camino por el que fluye la información en la red y han demostrado ser útiles para las redes neuronales recurrentes (Hochreiter & Schmidhuber, 1997). Los LSTMs habilitan memoria de largo plazo mediante una celda separada controlada por compuertas de entrada (input) y olvido (forget). Esto permite que la información fluya sin obstáculos a través de potencialmente muchos pasos de tiempo. Sin estas compuertas, la información podría desvanecerse fácilmente a través de las transformaciones de cada paso. En contraste, las redes convolucionales no sufren del mismo tipo de vanishing gradient y, experimentalmente, encontramos que no requieren compuertas de olvido.

    Por lo tanto, consideramos modelos que poseen únicamente compuertas de salida, que permiten a la red controlar qué información debe propagarse a través de la jerarquía de capas. Mostramos que este mecanismo es útil para el modelado del lenguaje, ya que permite al modelo seleccionar qué palabras o características son relevantes para predecir la siguiente palabra. En paralelo a nuestro trabajo, Oord et al. (2016b) han mostrado la efectividad de un mecanismo al estilo LSTM de la forma $ {\textstyle {{\text{tanh}\hspace{0pt}{({{\mathbf{X} \ast \mathbf{W}} + \mathbf{b}})}} \otimes \sigma}\hspace{0pt}{({{\mathbf{X} \ast \mathbf{V}} + \mathbf{c}})}} $ para el modelado convolucional de imágenes. Más tarde, Kalchbrenner et al. (2016) extendieron este mecanismo con compuertas adicionales para su uso en traducción y modelado del lenguaje a nivel de carácter.

    Las gated linear units son un mecanismo de gating simplificado basado en el trabajo de Dauphin & Grangier (2015) sobre compuertas no deterministas, que reducen el problema de vanishing gradient al acoplar unidades lineales a las compuertas. Esto conserva las capacidades no lineales de la capa al tiempo que permite que el gradiente se propague a través de la unidad lineal sin atenuación. El gradiente del gating al estilo LSTM, al que llamamos gated tanh unit (GTU), es

    $ {\textstyle {\nabla{\lbrack{{{\text{tanh}\hspace{0pt}{(\mathbf{X})}} \otimes \sigma}\hspace{0pt}{(\mathbf{X})}}\rbrack}} = {\text{tanh}^{\prime}\hspace{0pt}{(\mathbf{X})}\hspace{0pt}{\nabla{\mathbf{X} \otimes \sigma}}\hspace{0pt}{(\mathbf{X})}}} $
    $ {\textstyle {+ {\sigma^{\prime}\hspace{0pt}{(\mathbf{X})}\hspace{0pt}{\nabla{\mathbf{X} \otimes \text{tanh}}}\hspace{0pt}{(\mathbf{X})}}}.} $ (2)

    Nótese que se desvanece gradualmente a medida que apilamos capas debido a los factores de atenuación $ {\textstyle \text{tanh}^{\prime}\hspace{0pt}{(\mathbf{X})}} $ y $ {\textstyle \sigma^{\prime}\hspace{0pt}{(\mathbf{X})}} $. En contraste, el gradiente de la gated linear unit

    $ {\textstyle {\nabla{\lbrack{{\mathbf{X} \otimes \sigma}\hspace{0pt}{(\mathbf{X})}}\rbrack}} = {{{\nabla{\mathbf{X} \otimes \sigma}}\hspace{0pt}{(\mathbf{X})}} + {{\mathbf{X} \otimes \sigma^{\prime}}\hspace{0pt}{(\mathbf{X})}\hspace{0pt}{\nabla\mathbf{X}}}}} $ (3)

    tiene un camino $ {\textstyle {\nabla{\mathbf{X} \otimes \sigma}}\hspace{0pt}{(\mathbf{X})}} $ sin atenuación para las unidades de gating activadas en $ {\textstyle \sigma\hspace{0pt}{(\mathbf{X})}} $. Esto puede pensarse como una conexión skip multiplicativa que ayuda a que los gradientes fluyan a través de las capas. Comparamos los distintos esquemas de gating experimentalmente en la Sección §5.2 y encontramos que las gated linear units permiten una convergencia más rápida hacia mejores perplexities.

    4 Configuración Experimental

    4.1 Conjuntos de datos

    Reportamos resultados en dos conjuntos de datos públicos de modelado del lenguaje a gran escala. Primero, el Google Billion Word dataset (Chelba et al., 2013) se considera uno de los mayores conjuntos de datos de modelado del lenguaje, con casi mil millones de tokens y un vocabulario de más de 800K palabras. En este conjunto, las palabras que aparecen menos de 3 veces se reemplazan por un símbolo de desconocido especial. Los datos se basan en un corpus en inglés de $ {\textstyle 30,301,028} $ oraciones cuyo orden ha sido aleatorizado. Segundo, WikiText-103 es un conjunto más pequeño con más de 100M de tokens y un vocabulario de unas 200K palabras (Merity et al., 2016). A diferencia de GBW, las oraciones son consecutivas, lo que permite a los modelos condicionarse sobre contextos más grandes que oraciones individuales. Para ambos conjuntos, añadimos un marcador de inicio de secuencia <S > al comienzo de cada línea y un marcador de fin de secuencia </S> al final de cada línea. En el corpus Google Billion Word cada secuencia es una sola oración, mientras que en WikiText-103 una secuencia es un párrafo entero. El modelo ve <S> y </S > como entrada, pero solo predice el marcador de fin de secuencia </S>. Evaluamos los modelos calculando la perplexity $ {\textstyle \text{e}^{{\frac{1}{N}\hspace{0pt}\sum_{i}^{N}} - {{\log p}\hspace{0pt}{({w_{i}|{\ldots,w_{i - 1}}})}}}} $ sobre la porción de test estándar de cada conjunto.

    Name GCNN-13 GCNN-14B GCNN-9 GCNN-8B GCNN-8 GCNN-14
    Dataset Google Billion Word wikitext-103
    Lookup 128 280
    Conv1 $ {\textstyle \lbrack 4,1268\rbrack \times 1} $ $ {\textstyle \lbrack 5,512\rbrack \times 1} $ $ {\textstyle \lbrack 4,807\rbrack \times 1} $ $ {\textstyle \lbrack 1,512\rbrack \times 1} $ $ {\textstyle \lbrack 4,900\rbrack \times 1} $ $ {\textstyle \lbrack 6,850\rbrack \times 3} $
    Conv2.x $ {\textstyle \begin{bmatrix} {4,1268} \\ {4,1268} \end{bmatrix} \times 12} $ $ {\textstyle \begin{bmatrix} {1,128} \\ {5,128} \\ {1,512} \end{bmatrix} \times 3} $ $ {\textstyle \begin{bmatrix} {4,807} \\ {4,807} \end{bmatrix} \times 4} $ $ {\textstyle \begin{bmatrix} {1,128} \\ {5,128} \\ {1,512} \end{bmatrix} \times 3} $ $ {\textstyle \lbrack 4,900\rbrack \times 7} $ $ {\textstyle \lbrack 1,850\rbrack \times 1} $
    Conv3.x $ {\textstyle \begin{bmatrix} {1,512} \\ {5,512} \\ {1,1024} \end{bmatrix} \times 3} $ $ {\textstyle \begin{bmatrix} {1,256} \\ {5,256} \\ {1,512} \end{bmatrix} \times 3} $ $ {\textstyle \lbrack 5,850\rbrack \times 4} $
    Conv4.x $ {\textstyle \begin{bmatrix} {1,1024} \\ {5,1024} \\ {1,2048} \end{bmatrix} \times 6} $ $ {\textstyle \begin{bmatrix} {1,1024} \\ {1,1024} \\ {1,2048} \end{bmatrix} \times 1} $ $ {\textstyle \lbrack 1,850\rbrack \times 1} $
    Conv5.x $ {\textstyle \begin{bmatrix} {1,1024} \\ {5,1024} \\ {1,4096} \end{bmatrix} \times 1} $ $ {\textstyle \lbrack 4,850\rbrack \times 3} $
    Conv6.x $ {\textstyle \lbrack 4,1024\rbrack \times 1} $
    Conv7.x $ {\textstyle \lbrack 4,2048\rbrack \times 1} $
    AdaSoftmax 10k,40k,200k 4k,40k,200k 2k,10k,50k 10k,20k,200k
    Model Test PPL Hardware
    Sigmoid-RNN-2048 (Ji et al., 2015) 68.3 1 CPU
    Interpolated KN 5-Gram (Chelba et al., 2013) 67.6 100 CPUs
    Sparse Non-Negative Matrix LM (Shazeer et al., 2014) 52.9 -
    RNN-1024 + MaxEnt 9 Gram Features (Chelba et al., 2013) 51.3 24 GPUs
    LSTM-2048-512 (Jozefowicz et al., 2016) 43.7 32 GPUs
    2-layer LSTM-8192-1024 (Jozefowicz et al., 2016) 30.6 32 GPUs
    BIG GLSTM-G4 (Kuchaiev & Ginsburg, 2017) 23.311footnotemark: 1 8 GPUs
    LSTM-2048 (Grave et al., 2016a) 43.9 1 GPU
    2-layer LSTM-2048 (Grave et al., 2016a) 39.8 1 GPU
    GCNN-13 38.1 1 GPU
    GCNN-14 Bottleneck 31.9 8 GPUs

    4.2 Entrenamiento

    Implementamos nuestros modelos en Torch (Collobert et al., 2011) y los entrenamos en GPUs Tesla M40. La mayoría de nuestros modelos se entrenan en una sola GPU, ya que nos enfocamos en identificar arquitecturas compactas con buena generalización y cómputo eficiente en test. Entrenamos modelos más grandes con una configuración de 8 GPUs, copiando el modelo en cada GPU y dividiendo el batch de modo que cada worker compute 1/8 de los gradientes. Los gradientes se suman luego usando Nvidia NCCL. La configuración multi-GPU nos permitió entrenar modelos con unidades ocultas más grandes.

    Entrenamos usando el momento de Nesterov (Sutskever et al., 2013). Aunque el coste en memoria es almacenar otro vector del tamaño de los parámetros, aumenta significativamente la velocidad de convergencia con un cómputo adicional mínimo en comparación con el SGD estándar. La velocidad de convergencia se incrementó aún más con gradient clipping (Pascanu et al., 2013) y weight normalization (Salimans & Kingma, 2016).

    Pascanu et al. (2013) defienden el gradient clipping porque previene el problema de explosión del gradiente que caracteriza a los RNNs. Sin embargo, el gradient clipping no está atado a los RNNs, ya que puede derivarse del concepto general de los métodos de región de confianza. El gradient clipping se obtiene usando una región de confianza esférica

    $ {\textstyle \Delta\hspace{0pt}\theta^{\ast}} $ $ {\textstyle = {{{\operatorname{argmin}\limits_{\substack{{\text{s. t.}\hspace{0pt}{\|{\Delta\hspace{0pt}\theta}\|}} \leq \epsilon}}f}\hspace{0pt}{(\theta)}} + {\nabla{f^{T}\hspace{0pt}\Delta\hspace{0pt}\theta}}}} $
    $ {\textstyle {= {- {{\max{({\|{\nabla f}\|},\epsilon)}}\hspace{0pt}\frac{\nabla f}{\|{\nabla f}\|}}}}.} $ (4)

    Empíricamente, nuestros experimentos convergen significativamente más rápido con el uso de gradient clipping incluso aunque no usamos una arquitectura recurrente.

    En combinación, estos métodos llevaron a una convergencia estable y rápida con tasas de aprendizaje comparativamente grandes, como $ {\textstyle 1} $.

    4.3 Hiperparámetros

    Encontramos buenas configuraciones de hiperparámetros mediante validación cruzada con búsqueda aleatoria sobre un conjunto de validación. Para la arquitectura del modelo, seleccionamos el número de bloques residuales entre $ {\textstyle \{ 1,\ldots,10\}} $, el tamaño de los embeddings con $ {\textstyle \{ 128,\ldots,256\}} $, el número de unidades entre $ {\textstyle \{ 128,\ldots,2048\}} $, y el ancho del kernel entre $ {\textstyle \{ 3,\ldots,5\}} $. En general, encontrar una buena arquitectura fue simple y la regla general es que cuanto mayor el modelo, mejor el rendimiento. En cuanto a optimización, inicializamos las capas del modelo con la inicialización de Kaiming (He et al., 2015b), con la tasa de aprendizaje muestreada uniformemente en el intervalo $ {\textstyle \lbrack 1.,2.\rbrack} $, el momento fijado en $ {\textstyle 0.99} $ y el clipping fijado en $ {\textstyle 0.1} $. Los buenos hiperparámetros del optimizador son bastante directos de encontrar y los valores óptimos no varían mucho entre conjuntos de datos.

    5 Resultados

    Los LSTMs y las redes recurrentes son capaces de capturar dependencias de largo plazo y se están convirtiendo rápidamente en pilares del procesamiento del lenguaje natural. En esta sección comparamos sólidos modelos LSTM y RNN de la literatura con nuestro enfoque convolucional con compuertas en dos conjuntos de datos.

    Refer to caption

    Encontramos que la GCNN supera los resultados comparables del LSTM en Google Billion Word. Para comparar estos enfoques con precisión, controlamos por el mismo número de GPUs y el modelo de salida adaptive softmax (Grave et al., 2016a), ya que estas variables tienen una influencia significativa sobre el rendimiento. En esta configuración, la GCNN alcanza $ {\textstyle 38.1} $ de perplexity de test, mientras que el LSTM comparable tiene $ {\textstyle 39.8} $ de perplexity (Tabla 2).

    Además, la GCNN obtiene un fuerte rendimiento con una eficiencia computacional mucho mayor. La Figura 2 muestra que nuestro enfoque cierra la brecha previamente significativa entre los modelos que usan softmax completo y los modelos con el habitualmente menos preciso hierarchical softmax. Gracias al adaptive softmax, la GCNN solo requiere una fracción de las operaciones para alcanzar los mismos valores de perplexity. La GCNN supera a otros enfoques de un solo modelo de vanguardia, salvo el LSTM mucho mayor de Jozefowicz et al. (2016), un modelo que requiere más GPUs y el softmax completo, mucho más costoso computacionalmente. En comparación, el modelo más grande que hemos entrenado alcanza $ {\textstyle 31.9} $ de perplexity de test frente a los $ {\textstyle 30.6} $ de ese enfoque, pero solo requiere entrenamiento durante 2 semanas en 8 GPUs frente a 3 semanas de entrenamiento en 32 GPUs para el LSTM. Cabe señalar que estos resultados pueden mejorarse usando mixtures of experts (Shazeer et al., 2017) o ensembles de estos modelos.

    Model Test PPL Hardware
    LSTM-1024 (Grave et al., 2016b) 48.7 1 GPU
    GCNN-8 44.9 1 GPU
    GCNN-14 37.2 4 GPUs

    **footnotetext: apareció después de la presentación Otra preocupación relevante es si el tamaño de contexto fijo de la GCNN puede modelar adecuadamente secuencias largas. En Google Billion Word, la longitud media de las oraciones es bastante corta — solo 20 palabras. Evaluamos en WikiText-103 para determinar si el modelo puede funcionar bien en un conjunto de datos donde están disponibles contextos mucho mayores. En WikiText-103, una secuencia de entrada es un artículo entero de Wikipedia en lugar de una sola oración, lo que aumenta la longitud media a 4000 palabras. Sin embargo, la GCNN supera también a los LSTMs en este problema (Tabla 3). El modelo GCNN-8 tiene 8 capas con $ {\textstyle 800} $ unidades cada una y el LSTM tiene $ {\textstyle 1024} $ unidades. Estos resultados muestran que las GCNNs pueden modelar suficiente contexto para alcanzar resultados sólidos.

    Evaluamos en el conjunto Gigaword siguiendo a Chen et al. (2016) para comparar con modelos completamente conectados. Encontramos que la red completamente conectada y la convolucional alcanzan respectivamente 55.6 y 29.4 de perplexity. También realizamos experimentos preliminares en el conjunto Penn Treebank, mucho más pequeño. Cuando puntuamos las oraciones de forma independiente, la GCNN y el LSTM tienen perplexity de test comparables, 108.7 y 109.3 respectivamente. Sin embargo, es posible obtener mejores resultados condicionando sobre oraciones previas. A diferencia del LSTM, encontramos que la GCNN sobreajusta en este conjunto bastante pequeño, por lo que notamos que el modelo está mejor adaptado a problemas de mayor escala.

    5.1 Eficiencia Computacional

    Throughput Responsiveness
    (CPU) (GPU) (GPU)
    LSTM-2048 169 45,622 2,282
    GCNN-9 121 29,116 29,116
    GCNN-8 Bottleneck 179 45,878 45,878

    Refer to caption Refer to caption

    El coste computacional es una consideración importante para los modelos del lenguaje. Dependiendo de la aplicación, hay varias métricas a considerar. Medimos el throughput de un modelo como el número de tokens que pueden procesarse por segundo. El throughput puede maximizarse procesando muchas oraciones en paralelo para amortizar las operaciones secuenciales. En contraste, la responsiveness es la velocidad de procesar la entrada secuencialmente, un token a la vez. El throughput es importante porque indica el tiempo requerido para procesar un corpus de texto, y la responsiveness es un indicador del tiempo para terminar de procesar una oración. Un modelo puede tener baja responsiveness pero alto throughput evaluando muchas oraciones simultáneamente mediante batching. En este caso, ese modelo es lento al terminar de procesar oraciones individuales, pero puede procesar muchas oraciones a buen ritmo.

    Evaluamos el throughput y la responsiveness para modelos que alcanzan aproximadamente $ {\textstyle 43.9} $ de perplexity en el benchmark Google Billion Word. Consideramos el LSTM con $ {\textstyle 2048} $ unidades de la Tabla 2, una GCNN-8Bottleneck con 7 bloques Resnet con estructura bottleneck como la descrita por (He et al., 2015a) y una GCNN-8 sin bottlenecks. Un bloque bottleneck intercala una convolución $ {\textstyle k > 1} $ entre dos capas $ {\textstyle k = 1} $. Este diseño reduce el coste computacional al disminuir y aumentar la dimensionalidad con las capas $ {\textstyle k = 1} $, de modo que la convolución opere en un espacio de dimensión menor. Nuestros resultados muestran que el uso de bloques bottleneck es importante para mantener la eficiencia computacional.

    El throughput del LSTM se mide usando un batch grande de $ {\textstyle 750} $ secuencias de longitud $ {\textstyle 20} $, lo que da $ {\textstyle 15,000} $ tokens por batch. La responsiveness es la velocidad media para procesar una secuencia de $ {\textstyle 15,000} $ tokens contiguos. La Tabla 4 muestra que el throughput del LSTM y la GCNN son similares. El LSTM rinde muy bien en GPU porque el gran tamaño de batch $ {\textstyle 750} $ permite alta paralelización entre oraciones distintas. Esto se debe a que la implementación del LSTM ha sido exhaustivamente optimizada y usa cuDNN, mientras que la implementación cuDNN de convoluciones no está optimizada para las convoluciones 1-D que usamos en nuestro modelo. Creemos que se puede lograr un rendimiento mucho mejor con una convolución cuDNN 1-D más eficiente. A diferencia del LSTM, la GCNN puede paralelizarse tanto entre secuencias como entre los tokens de cada secuencia, lo que permite que la GCNN tenga 20× mayor responsiveness.

    Refer to caption Refer to caption

    5.2 Mecanismos de Gating

    En esta sección, comparamos la gated linear unit con otros mecanismos así como con modelos sin gating. Consideramos el mecanismo de gating al estilo LSTM (GTU) $ {\textstyle {{\text{tanh}\hspace{0pt}{({{\mathbf{X} \ast \mathbf{W}} + \mathbf{b}})}} \otimes \sigma}\hspace{0pt}{({{\mathbf{X} \ast \mathbf{V}} + \mathbf{c}})}} $ de (Oord et al., 2016b) y redes que usan activaciones ReLU o Tanh regulares. Las unidades de gating añaden parámetros, así que para una comparación justa, validamos cuidadosamente modelos con un número comparable de parámetros. La Figura 3 (izquierda) muestra que las redes GLU convergen a una perplexity más baja que los demás enfoques en WikiText-103. De forma similar a las gated linear units, la ReLU tiene un camino lineal que permite que los gradientes pasen fácilmente por las unidades activas. Esto se traduce en una convergencia mucho más rápida tanto para la ReLU como para la GLU. Por otro lado, ni Tanh ni GTU tienen este camino lineal y, por tanto, sufren del problema de vanishing gradient. En la GTU, tanto las entradas como las unidades de gating pueden cortar el gradiente cuando las unidades se saturan.

    Comparar los modelos GTU y Tanh nos permite medir el efecto del gating, ya que el modelo Tanh puede pensarse como una red GTU sin las unidades de gating sigmoide. Los resultados (Figura 3, izquierda) muestran que las unidades de gating marcan una gran diferencia y aportan capacidades de modelado útiles, ya que existe una gran diferencia de rendimiento entre las unidades GTU y Tanh. De forma similar, aunque la unidad ReLU no es una ablación exacta de las unidades de gating de la GLU, puede verse como una simplificación $ {\textstyle {\text{ReLU}\hspace{0pt}{(\mathbf{X})}} = {\mathbf{X} \otimes {({\mathbf{X} > 0})}}} $ donde las compuertas se activan según el signo de la entrada. También en este caso las unidades GLU conducen a menor perplexity.

    En la Figura 3 (derecha) repetimos el mismo experimento en el conjunto Google Billion Words, mayor. Consideramos un presupuesto de tiempo fijo de $ {\textstyle 100} $ horas debido al considerable tiempo de entrenamiento requerido para esta tarea. De forma similar a WikiText-103, las gated linear units logran los mejores resultados en este problema. Hay una brecha de unos 5 puntos de perplexity entre la GLU y la ReLU, similar a la diferencia entre los modelos LSTM y RNN medida por (Jozefowicz et al., 2016) en el mismo conjunto.

    5.3 Modelado No Lineal

    Los experimentos hasta ahora han mostrado que la gated linear unit se beneficia del camino lineal que proporciona la unidad en comparación con otras no-linealidades. A continuación, comparamos redes con GLUs frente a redes puramente lineales y redes con capas bilineales para medir el impacto del camino no lineal proporcionado por las compuertas de la GLU. Una motivación para este experimento es el éxito de los modelos lineales en muchas tareas de procesamiento del lenguaje natural (Manning & Schütze, 1999). Consideramos redes convolucionales profundas lineales donde las capas carecen de las unidades de gating de la GLU y toman la forma $ {\textstyle {h_{l}\hspace{0pt}{(\mathbf{X})}} = {{\mathbf{X} \ast \mathbf{W}} + \mathbf{b}}} $. Apilar varias capas no es más que una factorización del modelo, que sigue siendo lineal hasta el softmax, momento en el que se vuelve log-lineal. Otra variante de las GLUs son las capas bilineales (Mnih & Hinton, 2007), que toman la forma $ {\textstyle {h_{l}\hspace{0pt}{(\mathbf{X})}} = {{({{\mathbf{X} \ast \mathbf{W}} + \mathbf{b}})} \otimes {({{\mathbf{X} \ast \mathbf{V}} + \mathbf{c}})}}} $.

    Refer to caption

    La Figura 5 muestra que las GLUs rinden mejor, seguidas por las capas bilineales y luego por las lineales. Las capas bilineales mejoran sobre las lineales en más de $ {\textstyle 40} $ puntos de perplexity, y la GLU mejora otros $ {\textstyle 20} $ puntos de perplexity sobre el modelo bilineal. El modelo lineal rinde muy mal con perplexity $ {\textstyle 115} $ incluso en comparación con $ {\textstyle 67.6} $ de un modelo Kneser-Ney 5-gram, aunque el primero tiene acceso a más contexto. Sorprendentemente, la introducción de las unidades bilineales basta para alcanzar $ {\textstyle 61} $ de perplexity en Google Billion Word, lo que supera tanto a los modelos Kneser-Ney 5-gram como al modelo neuronal no lineal de (Ji et al., 2015).

    5.4 Tamaño de Contexto

    La Figura 4 muestra el impacto del tamaño de contexto para la CNN con compuertas. Probamos diferentes combinaciones de profundidad de red y anchos de kernel para cada tamaño de contexto y elegimos el que mejor rendimiento dio para cada tamaño. En general, contextos mayores mejoran la precisión, pero los retornos disminuyen drásticamente con ventanas mayores de 40 palabras, incluso para WikiText-103, donde podemos condicionar sobre un artículo entero de Wikipedia. Esto significa que el contexto ilimitado que ofrecen los modelos recurrentes no es estrictamente necesario para el modelado del lenguaje. Además, este hallazgo también es congruente con el hecho de que se puede obtener un buen rendimiento con redes recurrentes truncando los gradientes después de solo 40 timesteps mediante truncated backpropagation through time. La Figura 4 también muestra que WikiText-103 se beneficia mucho más de un mayor tamaño de contexto que Google Billion Word, ya que el rendimiento se degrada más bruscamente con contextos más pequeños. WikiText-103 ofrece mucho más contexto que Google Billion Word, donde el tamaño medio de oración es 20. Sin embargo, aunque el tamaño medio de los documentos es cercano a 4000 tokens, encontramos que se puede lograr un rendimiento sólido con un tamaño de contexto tan bajo como 30 tokens.

    5.5 Entrenamiento

    En esta sección realizamos un estudio de ablación del impacto de la weight normalization y el gradient clipping. Validamos por separado los hiperparámetros de cada configuración para que la comparación sea justa. Debido al alto coste de cada uno de estos experimentos, solo consideramos una única iteración sobre los datos de entrenamiento. La Figura 6 muestra que ambos métodos aceleran significativamente la convergencia. La weight normalization en particular mejora la velocidad en más de dos veces. Esta aceleración se debe en parte a la capacidad de usar tasas de aprendizaje mucho mayores ($ {\textstyle 1} $ en lugar de $ {\textstyle 0.01} $) de las que serían posibles de otro modo. Tanto el clipping como la weight normalization añaden sobrecarga computacional, pero esta es menor en comparación con las grandes ganancias en velocidad de convergencia.

    Refer to caption

    6 Conclusión

    Presentamos una red neuronal convolucional para modelado del lenguaje con un nuevo mecanismo de gating. Comparado con las redes neuronales recurrentes, nuestro enfoque construye una representación jerárquica de las palabras de entrada que facilita capturar dependencias de largo alcance, en un espíritu similar al análisis con estructura en árbol de los formalismos gramaticales lingüísticos. La misma propiedad facilita el aprendizaje, ya que las características pasan por un número fijo de capas y no-linealidades, a diferencia de las redes recurrentes, donde el número de pasos de procesamiento varía según la posición de la palabra en la entrada. Los resultados muestran que nuestra red convolucional con compuertas alcanza un nuevo estado del arte en WikiText-103. En el benchmark Google Billion Word mostramos que se pueden alcanzar resultados competitivos con recursos significativamente menores.

    Agradecimientos

    Nos gustaría agradecer a Ben Graham, Jonas Gehring, Edouard Grave, Armand Joulin y Ronan Collobert por las discusiones útiles.

    Referencias

    • Bengio et al. (2003) Bengio, Yoshua, Ducharme, Réjean, Vincent, Pascal, and Jauvin, Christian. A neural probabilistic language model. journal of machine learning research, 3(Feb):1137–1155, 2003.
    • Chelba et al. (2013) Chelba, Ciprian, Mikolov, Tomas, Schuster, Mike, Ge, Qi, Brants, Thorsten, Koehn, Phillipp, and Robinson, Tony. One billion word benchmark for measuring progress in statistical language modeling. arXiv preprint arXiv:1312.3005, 2013.
    • Chen & Goodman (1996) Chen, Stanley F and Goodman, Joshua. An empirical study of smoothing techniques for language modeling. In Proceedings of the 34th annual meeting on Association for Computational Linguistics, pp.  310–318. Association for Computational Linguistics, 1996.
    • Chen et al. (2016) Chen, Wenlin, Grangier, David, and Auli, Michael. Strategies for training large vocabulary neural language models. CoRR, abs/1512.04906, 2016.
    • Collobert et al. (2011) Collobert, Ronan, Kavukcuoglu, Koray, and Farabet, Clement. Torch7: A Matlab-like Environment for Machine Learning. In BigLearn, NIPS Workshop, 2011. URL http://torch.ch.
    • Dauphin & Grangier (2015) Dauphin, Yann N and Grangier, David. Predicting distributions with linearizing belief networks. arXiv preprint arXiv:1511.05622, 2015.
    • Glorot & Bengio (2010) Glorot, Xavier and Bengio, Yoshua. Understanding the difficulty of training deep feedforward neural networks. The handbook of brain theory and neural networks, 2010.
    • Grave et al. (2016a) Grave, E., Joulin, A., Cissé, M., Grangier, D., and Jégou, H. Efficient softmax approximation for GPUs. ArXiv e-prints, September 2016a.
    • Grave et al. (2016b) Grave, E., Joulin, A., and Usunier, N. Improving Neural Language Models with a Continuous Cache. ArXiv e-prints, December 2016b.
    • (10) Gutmann, Michael and Hyvärinen, Aapo. Noise-contrastive estimation: A new estimation principle for unnormalized statistical models.
    • He et al. (2015a) He, Kaiming, Zhang, Xiangyu, Ren, Shaoqing, and Sun, Jian. Deep residual learning for image recognition. arXiv preprint arXiv:1512.03385, 2015a.
    • He et al. (2015b) He, Kaiming, Zhang, Xiangyu, Ren, Shaoqing, and Sun, Jian. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. In Proceedings of the IEEE International Conference on Computer Vision, pp.  1026–1034, 2015b.
    • Hochreiter & Schmidhuber (1997) Hochreiter, Sepp and Schmidhuber, Jürgen. Long short-term memory. Neural computation, 9(8):1735–1780, 1997.
    • Ji et al. (2015) Ji, Shihao, Vishwanathan, SVN, Satish, Nadathur, Anderson, Michael J, and Dubey, Pradeep. Blackout: Speeding up recurrent neural network language models with very large vocabularies. arXiv preprint arXiv:1511.06909, 2015.
    • Jozefowicz et al. (2016) Jozefowicz, Rafal, Vinyals, Oriol, Schuster, Mike, Shazeer, Noam, and Wu, Yonghui. Exploring the limits of language modeling. arXiv preprint arXiv:1602.02410, 2016.
    • Kalchbrenner et al. (2016) Kalchbrenner, Nal, Espeholt, Lasse, Simonyan, Karen, van den Oord, Aaron, Graves, Alex, and Kavukcuoglu, Koray. Neural Machine Translation in Linear Time. arXiv, 2016.
    • Kneser & Ney (1995) Kneser, Reinhard and Ney, Hermann. Improved backing-off for m-gram language modeling. In Acoustics, Speech, and Signal Processing, 1995. ICASSP-95., 1995 International Conference on, volume 1, pp.  181–184. IEEE, 1995.
    • Koehn (2010) Koehn, Philipp. Statistical Machine Translation. Cambridge University Press, New York, NY, USA, 1st edition, 2010. ISBN 0521874157, 9780521874151.
    • Kuchaiev & Ginsburg (2017) Kuchaiev, Oleksii and Ginsburg, Boris. Factorization tricks for LSTM networks. CoRR, abs/1703.10722, 2017. URL http://arxiv.org/abs/1703.10722.
    • LeCun & Bengio (1995) LeCun, Yann and Bengio, Yoshua. Convolutional networks for images, speech, and time series. The handbook of brain theory and neural networks, 3361(10):1995, 1995.
    • Manning & Schütze (1999) Manning, Christopher D and Schütze, Hinrich. Foundations of statistical natural language processing, 1999.
    • Merity et al. (2016) Merity, S., Xiong, C., Bradbury, J., and Socher, R. Pointer Sentinel Mixture Models. ArXiv e-prints, September 2016.
    • Mikolov et al. (2010) Mikolov, Tomáš, Martin, Karafiát, Burget, Lukáš, Cernocký, Jan, and Khudanpur, Sanjeev. Recurrent Neural Network based Language Model. In Proc. of INTERSPEECH, pp.  1045–1048, 2010.
    • Mnih & Hinton (2007) Mnih, Andriy and Hinton, Geoffrey. Three new graphical models for statistical language modelling. In Proceedings of the 24th international conference on Machine learning, pp.  641–648. ACM, 2007.
    • Morin & Bengio (2005) Morin, Frederic and Bengio, Yoshua. Hierarchical probabilistic neural network language model. In Aistats, volume 5, pp.  246–252. Citeseer, 2005.
    • Oord et al. (2016a) Oord, Aaron van den, Kalchbrenner, Nal, and Kavukcuoglu, Koray. Pixel recurrent neural networks. arXiv preprint arXiv:1601.06759, 2016a.
    • Oord et al. (2016b) Oord, Aaron van den, Kalchbrenner, Nal, Vinyals, Oriol, Espeholt, Lasse, Graves, Alex, and Kavukcuoglu, Koray. Conditional image generation with pixelcnn decoders. arXiv preprint arXiv:1606.05328, 2016b.
    • Pascanu et al. (2013) Pascanu, Razvan, Mikolov, Tomas, and Bengio, Yoshua. On the difficulty of training recurrent neural networks. In Proceedings of The 30th International Conference on Machine Learning, pp.  1310–1318, 2013.
    • Salimans & Kingma (2016) Salimans, Tim and Kingma, Diederik P. Weight normalization: A simple reparameterization to accelerate training of deep neural networks. arXiv preprint arXiv:1602.07868, 2016.
    • Shazeer et al. (2014) Shazeer, Noam, Pelemans, Joris, and Chelba, Ciprian. Skip-gram language modeling using sparse non-negative matrix probability estimation. arXiv preprint arXiv:1412.1454, 2014.
    • Shazeer et al. (2017) Shazeer, Noam, Mirhoseini, Azalia, Maziarz, Krzysztof, Davis, Andy, Le, Quoc V., Hinton, Geoffrey E., and Dean, Jeff. Outrageously large neural networks: The sparsely-gated mixture-of-experts layer. CoRR, abs/1701.06538, 2017. URL http://arxiv.org/abs/1701.06538.
    • Steedman (2002) Steedman, Mark. The syntactic process. 2002.
    • Sutskever et al. (2013) Sutskever, Ilya, Martens, James, Dahl, George E, and Hinton, Geoffrey E. On the importance of initialization and momentum in deep learning. 2013.
    • Wang et al. (2015) Wang, Mingxuan, Lu, Zhengdong, Li, Hang, Jiang, Wenbin, and Liu, Qun. gencnn: A convolutional architecture for word sequence prediction. CoRR, abs/1503.05034, 2015. URL http://arxiv.org/abs/1503.05034.
    • Yu & Deng (2014) Yu, Dong and Deng, Li. Automatic Speech Recognition: A Deep Learning Approach. Springer Publishing Company, Incorporated, 2014. ISBN 1447157788, 9781447157786.