Reconocimiento del habla (III): modelos y arquitecturas

Rubén Rodríguez Abril

Los sistemas de reconocimiento automático de habla a menudo precisan de la combinación de diferentes arquitecturas de Deep Learning. Algunas de ellas, como las redes convolucionales, las RNNs o los transformers son viejas conocidas del lector.

CTCs – Connectionist Temporal Classifications

Las Connectionist Temporal Classifications o CTCs (Graves et al) son redes neuronales orientadas hacia adelante utilizadas para transcribir fonéticamente fragmentos de lenguaje hablado. Toman como entrada un vector de Fourier (que como señalábamos en el artículo anterior, contiene los componentes espectrales de una determinada ventana de muestreo) y ofrece como salida un signo de transcripción fonética, que puede ser un símbolo AFI o una letra de un alfabeto convencional (p.e. latino).

El algoritmo se estructura en varias fases:

  • En primer lugar, a cada paso, una red neuronal orientada hacia adelante asigna un valor de transcripción a un vector espectral. Este valor se denomina alineamiento, y puede consistir en uno de los signos del alfabeto de salida o en su símbolo específico denominado “blanco” (blank).
  • En una segunda fase, los símbolos replicados dentro de la cadena son eliminados. Se exceptúan aquellos que están separados por blancos.
  • En último lugar, los espacios en blanco son eliminados. El resultado es la cadena definitiva.

Dado que la red está orientada hacia adelante (feed-forward), carece de memoria interna, y las elecciones de caracteres que realiza su última capa son por completo independientes de las elecciones anteriores.

Figura 1: Una frase en lengua uighur es transcrita por una CTC. En primer lugar, los marcos yx son transformados en caracteres y blancos (“-”). En segundo lugar, los caracteres dulicados son eliminados, a no ser que estén separados por blancos. En último término, se eliminan los blancos Fuente: A Three-Stage Uyghur Recognition Model Combining the Attention Mechanism and Different Convolutional Recurrent Networks.

Europarl-ST es una base de datos creada para entrenar sistemas de traducción oral (Speech Language Translation, SLT) desde y hacia 9 idiomas diferentes, en 72 líneas de traducción diferentes. Se ha construido a partir de debates en el Parlamento Europeo sostenidos entre los años 2008 y 2022.

LAS – Listen, Attend, Spell,

El modelo LAS (Chan et al) está compuesto de dos redes: La primera de ella, denominada listener, es una red piramidal de LSTM que transforma vectores de Fourier (que contienen el espectro de frecuencias de una ventana se señal) en otros vectores de estado interno, de contenido semántico. La segunda de ellas, llamada speller, es una red neuronal recurrente que transforma estos vectores de estado interno en una cadena de salida compuesta de y = (<sos>, y1, . . . , yS,<eos>), a partir del alfabeto de caracteres yi ∈ {a, b, c, · · · , z, 0, · · · , 9, <espacio>, <coma>,<periodo>,<apóstrofe>,<unk>}, donde <sos>, <eos> y <unk> representan respectivamente los tokens de inicio de cadena, fin de cadena y sonido desconocido.

Figura 2: Esquema del modelo LAS. El listener puede ser entendido como tres LSTMs que avanzan a diferentes niveles. Toman como entrada su propio estado anterior (flechas horizontales), así como el estado de dos células inferiores adyacentes.. Por lo que se refiere al speller, cada una de sus columnas representa un instante de tiempo. La fila inferior describe los estados temporales de una RNN, la segunda fila, los de la unidad de atención. El resto de filas representa la evolución temporal de una red orientada hacia adelante (perceptrón multicapas). Fuente: Chan et al.

Listener

El primer submodelo, listener, realiza tareas de submuestreo (subsampling), dado que reduce el tamaño del vector de estado interno h desde T, que es el tamaño de la cadena de entrada, hasta U, que es la cadena con la que se alimenta el siguiente submodelo. Las células de la pirámide son LSTM.

Speller

El segundo submodelo (speller) se compone de tres partes:

  • una red neuronal recurrente (RNN), cuyo estado interno (s_{i}) deriva de su estado interno en el instante anterior (s_{i}  –  1), del token anteriormente producido (y_{i}  –  1) y vector de contexto inmediatamente anterior (c_{i}  –  1). Si se trata del primer token, no hay vector de contexto.
  • un módulo de atención que crea un vector de contexto (c_{i}) a partir de los vectores producidos por el codificador/listener (h) y el estado interno de la RNN,
  • un perceptrón multicapas (esto es, una red orientada hacia adelante) que a partir del estado interno de la RNN (s_{i}) y del vector de contexto (c_{i}) genera una distribución de probabilidad sobre el vocabulario de salida.

Matemáticamente se expresa por medio de las siguientes fórmulas:

c_{i} = \text{AttentionContext}(s_{i},h)
s_{i} = \text{RNN}(s_{i-1}, y_{i-1}, c_{i-1})
P(y_{i} \mid  x, y_{i} ) = \text{CharacterDistribution}(s_{i}, c_{i})

Los valores de ci en su conjunto suman la unidad, y determinan

e_{i,u} = <φ(s_{i}), ψ(h_{u})>
a_{i,u} = \text{softmax}(e_{i,u})
c_{i} =∑a_{i,u}h_{u}

Como vemos, a_{i,u}, cuyos valores suman la unidad, se utiliza para ponderar los valores de h_{u} en la formación de c_{i} · a_{i,u} es a su vez calculado aplicándole la función softmax a la energía escalar e_{i,u}.

Figura 3: En la imagen se muestra cómo funciona el mecanismo de atención de una LAS. La matriz a_{i,u} vincula cada uno de los caracteres de la cadena de salida con uno o varios segmentos del audio. Fuente Chan et al.

Transductores (transducers)

Los transductores parten de la misma base que las CTCs: atribuyen a cada vector de Fourier un signo de salida, ya sea un símbolo del alfabeto o un espacio en blanco, de tal manera que la cadena de salida, antes de la eliminación de los espacios en blanco, tiene la misma longitud que la de entrada. Los transductores se diferencian de las CTCs en que, a diferencia de estas últimas, los primeros tienen memoria, es decir, en la predicción del nuevo símbolo influye el estado interno del modelo (modelo recurrente) o la cadena hasta entonces producida (modelo autorregresivo).

El esquema general del modelo es el señalado en la imagen:

Figura 4: En el nivel más bajo, dos codificadores (redes de aprendizaje profundo) transforman vectores de entrada en representaciones de alto nivel (u_{h} y h_{t}). El codificador de etiquetas (label encoder) toma como entrada el token anteriormente producido (y_{u-1}). El token de audio (audio encoder) el vector espectral correspondiente a ese instante de tiempo (x_{t}). Los estados internos de ambas RNNs se combinan y se hacen pasar a través de una red neuronal conjunta, orientada hacia adelante, y que hace las funciones de descodificador. La función softmax final se usa para predecir el nuevo token y_{u}.

Los transductores pueden tener por base RNNs o transformers. El primer caso es el de las RNN-Transducers o RNN-Ts (Graves et al): Aquí ambos codificadores son redes recurrentes, mientras que la red conjunta está orientada hacia adelante. A diferencia de lo que sucede en los sistemas de traducción a máquina, en los que el modelo lee toda la cadena y cuando acaba lectura es comienza tenerse en cuenta su traducción, en las RNN-Ts, la función softmax realiza prediccion conforme los dos codificadores van leyendo sus cadenas de entrada.

Transformers Transducers

En el caso de los Transformers Transducers (Zhang et al), los codificadores son transformers. Que como el lector recordará son redes carecen de estado interno y cuya aparente memoria se explica por el hecho de que son modelos autorregresivos, que toman por entrada toda la cadena anteriormente producida. En el codificador de audio, la entrada es una cadena de vectores espectrales, mientras que en el codificador de etiquetas la matriz de contexto es ensamblada a partir de la cadena hasta este momento producida, complementada por tokens de padding (almohadillado). Las matrices de salida producidas por ambos transformers son sumadas e introducidas en una capa densa (descodificador) seguida de una función softmax.

Por lo demás, en Zhang et al los autores introducen en los transformers las innovaciones descritas en la imagen siguiente, y que se sustancian fundamentalmente en el apagado (dropout) de un cierto porcentaje de neuronas en algunas capas densas durante los entrenamientos.

Figura 5. Como el lector recordará de artículos anteriores, los módulos de transformers se dividen en dos grandes subsecciones: la unidad de atención y la red orientada hacia adelante (feed-forward). La red orientada hacia adelante está representada esquemáticamente e la derecha. En general, en casi todos los modelos suele consistir en una suerte de “sandwich” de dos capas densas (en verde) con una capa ReLU, GeLU o similar en el medio (en azul oscuro). Además, una capa de normalización (en celeste) reduce la magnitud de los vectores a la unidad y una conexión residual (en amarillo) permite que parte de la información pueda “saltarse” las capas intermedias. La novedad de Zhang et al es que incluyen dos capas de apagado (dropout) de neuronas antes y después de la segunda capa densa con el propósito de evitar el “overfitting” y la memorización de cadenas de entrada. Fuente: Zhang et al.

Conformers

Por último, el Conformer (Gulati et al) es, como su propio nombre indica, un modelo que incorpora capas convolucionales y unidades de atención (propias de los transformers). Las primeras son eficientes detectando localmente patrones en la ventana de acción de su kernel y las segundas pueden analizar y construir estructuras gramaticales y son la clave del éxito de los sistemas de procesamiento de lenguaje natural existentes en la actualidad.

El modelo presentado por Gulati et al es similar al de los Transformers Transducers (codificadores audio y de etiquetas), sólo que en el codificador de audio los bloques transformers son sustituidos por bloques conformers, en el modo y con la estructura señalada en la imagen. De nuevo, los vectores espectrales (o de Fourier) son ensamblados en una matriz de contexto, que tiene dos dimensiones: temporal y espectral.

Figura 6. A la izquierda se muestra el esquema básico de un codificador. Los datos son sometidos a un proceso de aumento (SpecAug) y submuestreo. A continuación, una capa lineal (sometida a apagado parcial durante el entrenamiento) procesa la matriz de contexto antes de que entre en la sección de los bloques de conformers. Cada uno de estos, como se puede comprobar en el diagrama de la derecha, se compone de cuatro subsecciones llamados módulos. Una última capa de normalización asegura que los vectores/tokens tengan una longitud de uno. Fuente: Gulati et al.

A diferencia de los bloques transformers, los de conformers tienen una estructura interna compuesta de cuatro módulos: dos de ellos son módulos orientados hacia adelante, otro módulo de autoatención y el último de convolución. En las imágenes se muestra la estructura interna de cada uno de ellos. El lector puede observar que la primera y la última capa de todos los módulos consiste en una capa de normalización y otra de apagado, respectivamente, y que existe en todos los casos una conexión residual que permite que parte de la información pueda “saltarse” el módulo al completo.

Figura 7: Esquema del módulo de convolución de un conformer. Hay convoluciones punto a punto (pointwise) y de una sola dimensión (1D depthwise). Las funciones de activación Glu y swish son muy parecidas a GeLU. Las capas de apagado (dropout) y de normalización por lotes (BatchNorm) sólo se activan durante el entrenamiento y se desactivan durante la evaluación.

A diferencia de lo que sucede en el procesado de imágenes, en el que se utilizan kernels bidimensionales para la convolución, en los conformers la matriz de contexto es barrida bien por kernels de dimensión 1×1 (convoluciones punto a punto) o por kernels que consisten en un vector de longitud N (en cuyo caso se habla de convoluciones de una sola dimensión). En estas últimas, la convolución tiene lugar a través de la dimensión temporal, y por lo tanto, tienen por objeto detectar en los sonidos patrones que se desplieguen a lo largo del tiempo.

Figura 8. Esquema del módulo de atención de un conformer.

Figura 9. Módulo orientado hacia adelante,, dotado de dos capas lineales.

Las matrices producidas por los codificadores de audio y de etiquetas son sumadas y se hacen pasar a través de un descodificador consistente en una capa de LSTM. La función de salida, encargada de realizar las predicciones es, como no podía ser menos, la función softmax.

Modelos complejos

Los modelos de reconocimiento de lenguaje más modernos existentes en la actualidad combinan, ya sea durante su entrenamiento o su fase de evaluación, varias de las arquitecturas expuestas en este artículo. Uno de estos modelos es USM (Universal Speech Model), de Google, que será objeto de exposición el próximo artículo de esta serie..