La Unidad de Atención

Rubén Rodríguez Abril

La unidad de atención fue introducida para ponderar la contribución de cada uno de los estados internos del codificador en la construcción del vector-contexto. En la actualidad, se ha convertido en la base del modelo transformer, que es a su vez la arquitectura sobre la que se levantan las afamadas IAs generadoras de lenguaje con ChatGPT o Bard.

La Unidad de Atención

Limitaciones de Seq2Seq

Los mecanismos de traducción de secuencia a secuencia (seq2seq), analizados en el artículo anterior, se estructuran en dos fases sucesivas. En la primera, una cadena de palabras es codificada en un único vector-contexto, inserto en un espacio semántico multidimensional. En la segunda fase, de descodificación, el vector-contexto vuelve a ser de nuevo transformado en otra cadena de vocablos, esta vez, pertenecientes a la lengua de destino. 

Este sistema está sometido a importantes limitaciones relativas al tamaño de las cadenas de entrada, toda vez que el vector-contexto sólo puede almacenar una cantidad limitada de información. Por este motivo, los sistemas de codificación seq2seq disminuyan extraordinariamente su eficacia cuando el texto a traducir sobrepasa un determinado tamaño.

Mecanismo de Atención

Para solventar este problema, en los años 2014 y 2015 fueron introducidos por primera vez las denominados mecanismos de atención, que suponen que en cada paso de la traducción el descodificador tiende a absorber información predominantemente de una parte determinada de la cadena de origen, ignorando el resto.

Durante la lectura del texto de entrada, el codificador, que es una red neuronal recurrente, construye a cada paso un vector-memoria a partir de la palabra recientemente leída y de su propio estado interno. Se construyen tantos vectores-memoria como palabras existen en el texto original, y cada uno de ellos se corresponde con un instante determinado dentro de la codificación.

Una vez que concluye la lectura, se activa el descodificador, que consiste en otra red neuronal recurrente auxiliada esta vez por una red orientada hacia adelante denominada unidad de atención y dotada de una función softmax. Como vimos en el artículo anterior, en los sistemas seq2seq, el descodificador transforma a cada paso el vector-contexto, que contiene información semántica, en una palabra de la lengua de destino. Lo característico de los sistemas con mecanismos de atención es que el vector de contexto es construido a partir de todos los vectores-memoria. Y la misión de la unidad de atención es la de ponderar el peso de cada uno de los vectores-memoria en la formación del vector-contexto.

Algoritmo de traducción con Unidad de Atención.

El codificador aparece en azul mientras que el descodificador está en rosa. En el momento que es leída la expresión <eos>, la cual designa el fin de la frase, el descodificador se activa y comienza a producir el nuevo texto. La Unidad de Atención (UA en la imagen) selecciona, a cada paso del descodificador, información procedente de dos fuentes: el propio estado interno del descodificador, y los vectores-memoria generados por el codificador durante la fase de lectura.

Comprensión del texto

Vectores alineamiento generados por la Unidad de Atención.

Una frase en inglés es traducida al español. Cada uno de las columnas de la matriz es un vector de alineamiento. Los valores del vector señalan en qué palabra o palabras concretas de la frase inglesa debe de fijarse el descodificador a la hora de producir la palabra española de la traducción.

Grosso modo, podría decirse que la unidad de atención señala a cada momento de qué palabra (o grupo de palabras) del texto original el algoritmo extrae la información para generar la nueva palabra de la cadena de destino.

Mientras que en los algoritmos seq2seq ordinarios una misma unidad, el descodificador, es la encargada de procesar tanto la información sintáctica como la semántica, en los sistemas con mecanismos de atención parece producirse una suerte de especialización: El árbol sintáctico es construido por la unidad de atención mientras que la última capa del descodificador se limita a determinar el contenido semántico de cada vocablo de la nueva frase.

En este artículo presentaremos dos de los primeros trabajos que incorporaron este mecanismo: Bahdanau et al (2014) y Luong et al (2015).

Codificadores bidireccionales

En el trabajo de Bahdanau et al hay dos codificadores. Uno lee la frase desde el principio hasta el final, y el otro lo hace en dirección inversa. Los vectores-memoria (llamados “anotaciones” en este trabajo) son concatenados en pares, uno para cada palabra de la frase inicial.

En un sistema unidireccional los vectores-memoria capturan información procedente de la palabra actual y de las anteriores en la cadena, pero no de las posteriores. Por eso, la información relativa al contexto es construida de una manera incompleta. La presencia simultánea de dos codificadores que leen el texto en direcciones opuestas resuelve este problema.

Por lo demás, la arquitectura del codificador y el descodificador es similar a la presentada en el artículo Cho et al., y que fue analizada en el artículo inmediatamente anterior de esta serie. La unidad de atención, que recibe el nombre de “modelo de alineamiento” (“alignment model”), es una red neuronal orientada hacia adelante, que recibe por entrada todos los vectores-memoria así como el estado interno inmediatamente anterior del descodificador. Su función de salida es softmax.

Unidad de Atención global y local

El trabajo de Luong et al. contiene un modelo formado por dos capas de unidades LSTM acompañadas de una tercera capa de salida. La primera de ellas se alimenta del vector de entrada y de su propio estado interno (h_{t}) en el tiempo t. La segunda capa, lo hace del anterior y de un vector contexto c_{t}. Su estado interno (\tilde{h}) recibe el nombre de estado interno atencional, por razones que a continuación veremos. La tercera capa está formada por neuronas ordinarias, densamente conectadas con la capa anterior y dotadas de una función softmax. Es la que realiza la predicción final.

Atención global

Los autores del artículo introducen una distinción entre atención global y atención local. La primera es similar a la expuesta por Bahdenau et al.

Los valores del vector de alineamiento (a_{t}) para el instante t se determinan por una única capa de neuronas densamente conectada con la segunda capa de LSTM, y dotada de una función softmax y una matriz de pesos sinápticos W.

a_{t} = softmax(Wh_{t})
Funcionamiento de la Unidad de Atención.

Funcionamiento básico de la Unidad de Atención. En el caso de la atención global, los estados del codificador de todas las palabras del texto contribuyen a la formación del vector de contexto c_{t}. El vector de alineamiento determina un coeficiente para cada vector de memoria. Su suma pondera por dicho coeficiente es el vector de contexto que alimenta la última capa de descodificador.

Atención local

En los modelos con atención local, no todos los vectores-memoria participan en el cálculo del vector contexto, sino sólo aquellos situados a cierta distancia (D) de un cierto momento p_{t} dentro de los estados de entrada. El vector de alineación se calcula exclusivamente para esta “ventana de estados”. El valor p_{t} es calculado del siguiente modo: Una capa de neuronas densamente conectada con la primera capa LSTM (estado interno h_{t}) y dotada de función de activación tangente hiperbólica calcula un vector, que es multiplicado escalarmente con otro vector, cuyos componentes son aprendidos por la red. El resultado se hace pasar a través de una función sigmoide, como se muestra en la ecuación:

p_{t} = σ(vW(h_{t}))

Resultados

Los dos modelos que acabamos de presentar fueron entrenados utilizando la base de datos WMT 2014, en la que se incluían, entre otros textos, los diarios de sesiones del Parlamento Europeo (Europarl) o el Corpus Paralelo de Naciones Unidas (Uncorpus), que contiene los documentos publicados simultáneamente en las 6 lenguas oficiales de la organización. El modelo de evaluación utilizado fue en ambos casos el sistema BLEU. Los dos modelos fueron capaces de mantener la calidad de las traducciones incluso para textos de 60 (Bahdenau et al.) o 75 (Long et al.) palabras.

Conclusión

La unidad de atención permitió mejoras de rendimiento de los sistemas de traducción a máquina basados en redes neuronales recurrentes y en LSTM. Sin embargo, el destino les reservaría un papel más prominente: el de constituir el núcleo de la arquitectura de transformers, un modelo de IA capaz de redactar con eficiencia documentos de una longitud bastante extensa y con una calidad similar o superior a los redactados por autores humanos. A este modelo dedicamos nuestro próximo artículo.

Deep Learning

CLIP