Comparando técnicas de procesamiento de lenguaje natural RNNs, Transformers, BERT

Comparando técnicas de procesamiento de lenguaje natural RNNs, Transformers y BERT

 

El Procesamiento del Lenguaje Natural, o PLN, es un campo dentro de la inteligencia artificial en el que las máquinas tienen la capacidad de comprender datos textuales. La investigación en PLN ha existido durante mucho tiempo, pero solo recientemente ha cobrado más relevancia con la introducción de big data y una mayor capacidad de procesamiento computacional.

A medida que el campo del PLN se va haciendo más grande, muchos investigadores intentarán mejorar la capacidad de las máquinas para comprender mejor los datos textuales. A través de mucho progreso, se han propuesto y aplicado muchas técnicas en el campo del PLN.

Este artículo comparará varias técnicas para procesar datos de texto en el campo del PLN. Se enfocará en discutir RNN, Transformers y BERT porque son los que se utilizan con mayor frecuencia en la investigación. Vamos a ello.

 

Redes Neuronales Recurrentes

 

Las Redes Neuronales Recurrentes o RNN se desarrollaron en 1980, pero solo recientemente han ganado atención en el campo del PLN. RNN es un tipo particular dentro de la familia de redes neuronales utilizado para datos secuenciales o datos que no pueden ser independientes entre sí. Ejemplos de datos secuenciales son series de tiempo, audio o datos de frases de texto, básicamente cualquier tipo de dato con un orden significativo.

Las RNN son diferentes de las redes neuronales de alimentación directa regulares ya que procesan la información de manera diferente. En la alimentación directa normal, la información se procesa siguiendo las capas. Sin embargo, la RNN utiliza un ciclo de bucle en la entrada de información como consideración. Para entender las diferencias, veamos la siguiente imagen.

  

Como puedes ver, el modelo de las RNN implementa un ciclo de bucle durante el procesamiento de la información. Las RNN tienen en cuenta los datos de entrada actuales y anteriores al procesar esta información. Por eso el modelo es adecuado para cualquier tipo de dato secuencial.

Si tomamos un ejemplo en datos de texto, imaginemos que tenemos la frase “Me despierto a las 7 de la mañana” y la tenemos como entrada de palabras. En la red neuronal de alimentación directa, cuando llegamos a la palabra “despierto”, el modelo ya habría olvidado las palabras “Me”, “despierto” y “a”. Sin embargo, las RNN utilizan cada salida para cada palabra y las retroalimentan para que el modelo no las olvide.

En el campo del PLN, las RNN se utilizan a menudo en muchas aplicaciones textuales, como la clasificación y generación de texto. Se utilizan a menudo en aplicaciones a nivel de palabras como etiquetado de partes de la oración, generación de palabras siguientes, etc.

Si profundizamos más en las RNN en los datos de texto, hay muchos tipos de RNN. Por ejemplo, la siguiente imagen muestra el tipo “muchos a muchos”.  

Observando la imagen anterior, podemos ver que la salida para cada paso (paso de tiempo en RNN) se procesa paso a paso, y en cada iteración siempre se considera la información anterior.

Otro tipo de RNN utilizado en muchas aplicaciones de PLN es el tipo codificador-decodificador (Secuencia a Secuencia). La estructura se muestra en la siguiente imagen.

  

Esta estructura introduce dos partes que se utilizan en el modelo. La primera parte se llama Codificador, que es la parte que recibe la secuencia de datos y crea una nueva representación basada en ella. La representación se utilizará en la segunda parte del modelo, que es el decodificador. Con esta estructura, las longitudes de entrada y salida no necesariamente tienen que ser iguales. Un caso de uso de ejemplo es una traducción de idiomas, que a menudo no tiene la misma longitud entre la entrada y la salida.

Existen varios beneficios de utilizar RNN para procesar datos de lenguaje natural, incluyendo:

  1. Las RNN se pueden utilizar para procesar entrada de texto sin limitaciones de longitud.
  2. El modelo comparte los mismos pesos en todos los pasos de tiempo, lo que permite que la red neuronal utilice el mismo parámetro en cada paso.
  3. Tener la memoria de la entrada pasada hace que las RNN sean adecuadas para cualquier dato secuencial.

Pero también hay varias desventajas:

  1. RNN es susceptible tanto a gradientes que desaparecen como a gradientes explosivos. En el caso de los gradientes que desaparecen, el resultado del gradiente es un valor cercano a cero, lo que provoca que el peso de la red solo se actualice en una cantidad muy pequeña. En el caso de los gradientes explosivos, el resultado del gradiente es tan significativo que asigna una importancia enormemente irreal a la red.
  2. Tiempo prolongado de entrenamiento debido a la naturaleza secuencial del modelo.
  3. Memoria a corto plazo significa que el modelo comienza a olvidar a medida que se entrena más tiempo. Existe una extensión de RNN llamada LSTM para mitigar este problema.

 

Transformers

 

Transformers es una arquitectura de modelo de procesamiento del lenguaje natural que intenta resolver las tareas de secuencia a secuencia que se encuentran en las RNN. Como se mencionó anteriormente, las RNN tienen problemas con la memoria a corto plazo. Cuanto más larga es la entrada, más prominente es el problema de olvido de información por parte del modelo. Aquí es donde el mecanismo de atención puede ayudar a resolver el problema.

El mecanismo de atención fue introducido en el artículo de Bahdanau et al. (2014) para resolver el problema de la entrada larga, especialmente con un tipo de RNN llamado codificador-decodificador. No explicaré en detalle el mecanismo de atención. Básicamente, es una capa que permite que el modelo se enfoque en la parte crítica de la entrada del modelo mientras realiza una predicción de salida. Por ejemplo, la entrada de la palabra “Reloj” tendría una correlación alta con “Mermelada” en indonesio si la tarea es de traducción.

El modelo de transformers fue introducido por Vaswani et al. (2017). La arquitectura está inspirada en las RNN codificador-decodificador y está diseñada teniendo en cuenta el mecanismo de atención, sin procesar los datos de manera secuencial. El modelo de transformers es estructurado de la siguiente manera:

 

En la estructura anterior, los transformers codifican la secuencia de vectores de datos en la incorporación de palabras con codificación posicional, mientras utilizan la decodificación para transformar los datos a su forma original. Con el mecanismo de atención presente, la codificación puede asignar importancia de acuerdo a la entrada.

Los transformers ofrecen algunas ventajas en comparación con otros modelos, que incluyen:

  1. El proceso de paralelización aumenta la velocidad de entrenamiento y de inferencia.
  2. Capacidad para procesar entradas más largas, lo que ofrece una mejor comprensión del contexto.

Todavía existen algunas desventajas con el modelo de transformers:

  1. Alto procesamiento computacional y demanda.
  2. El mecanismo de atención podría requerir que el texto se divida debido al límite de longitud que puede manejar.
  3. El contexto podría perderse si la división se realiza incorrectamente.

BERT

BERT, o Bidirectional Encoder Representations from Transformers, es un modelo desarrollado por Devlin et al. (2019) que involucra dos pasos (pre-entrenamiento y ajuste fino) para crear el modelo. Si comparamos, BERT es una pila de encoders de transformers (BERT Base tiene 12 capas mientras que BERT Large tiene 24 capas).

El desarrollo general del modelo de BERT se puede mostrar en la siguiente imagen:

 

Las tareas de pre-entrenamiento inician el entrenamiento del modelo al mismo tiempo, y una vez que se completa, el modelo se puede ajustar finamente para diversas tareas secundarias (preguntas y respuestas, clasificación, etc.).

Lo que hace especial a BERT es que es el primer modelo bidireccional de lenguaje no supervisado que se pre-entrena en datos de texto. BERT fue pre-entrenado previamente en la totalidad de la Wikipedia y el corpus de libros, que consta de más de 3000 millones de palabras.

BERT se considera bidireccional porque no lee los datos de entrada de manera secuencial (de izquierda a derecha o viceversa), sino que el encoder del transformer lee la secuencia completa simultáneamente.

A diferencia de los modelos direccionales, que leen el texto de entrada de manera secuencial (de izquierda a derecha o viceversa), el encoder del transformers lee la secuencia completa de palabras simultáneamente. Por eso, el modelo se considera bidireccional y permite que el modelo comprenda todo el contexto de los datos de entrada.

Para lograr la bidireccionalidad, BERT utiliza dos técnicas:

  1. Modelo de Lenguaje de Máscara (MLM) – Técnica de máscara de palabras. La técnica enmascara el 15% de las palabras de entrada e intenta predecir esta palabra enmascarada en función de la palabra no enmascarada.
  2. Predicción de la Siguiente Oración (NSP) – BERT intenta aprender la relación entre las oraciones. El modelo tiene pares de oraciones como entrada de datos e intenta predecir si la oración subsiguiente existe en el documento original.

Hay algunas ventajas de usar BERT en el campo del Procesamiento del Lenguaje Natural (NLP), que incluyen:

  1. BERT es fácil de usar para aplicaciones posteriores preentrenadas de NLP.
  2. La bidireccionalidad hace que BERT comprenda mejor el contexto del texto.
  3. Es un modelo popular que cuenta con mucho apoyo de la comunidad.

Aunque también tiene algunas desventajas, que incluyen:

  1. Requiere una alta potencia computacional y un largo tiempo de entrenamiento para ajustar algunas tareas posteriores de NLP.
  2. El modelo BERT puede resultar en un modelo grande que requiere un almacenamiento mucho más grande.
  3. Es mejor usarlo para tareas complejas, ya que el rendimiento para tareas simples no es muy diferente al de modelos más simples.

 

Conclusión

 

El procesamiento del lenguaje natural (NLP) se ha vuelto más prominente recientemente y mucha investigación se ha enfocado en mejorar las aplicaciones. En este artículo, discutimos tres técnicas de NLP que se utilizan con frecuencia:

  1. RNN
  2. Transformers
  3. BERT

Cada una de las técnicas tiene sus ventajas y desventajas, pero en general, podemos ver que el modelo está evolucionando de una manera mejor. [Cornellius Yudha Wijaya](https://www.linkedin.com/in/cornellius-yudha-wijaya/) es un asistente gerente de ciencia de datos y escritor de datos. Mientras trabaja a tiempo completo en Allianz Indonesia, le encanta compartir consejos sobre Python y datos a través de las redes sociales y los medios de comunicación escritos.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Tecnología de IA

David Autor nombrado Científico Distinguido NOMIS 2023

La Fundación NOMIS honra al Profesor Ford de Economía por sus contribuciones en la comprensión de los efectos del cam...

Inteligencia Artificial

Los Gemelos Digitales Brindan un Camino más Verde para el Crecimiento del Hidrógeno

Un investigador cree que los gemelos digitales podrían ayudar a reducir los costos de producción de hidrógeno limpio ...

Inteligencia Artificial

¿Qué es la generación aumentada por recuperación?

Para entender el último avance en inteligencia artificial generativa, imagina un tribunal. Los jueces escuchan y deci...