El pasado lunes el equipo de 1MillionBot mantuvo una sesión de trabajo con Mikel Forcada para profundizar en el tema del procesamiento del lenguaje natural (PLN) y la IA, bajo el título: El estado de la cuestión en el procesamiento del lenguaje natural.
La comprensión del lenguaje es difícil para las computadoras (las maneras muchas veces sutiles en que las personas hacemos uso del lenguaje real no son fáciles de programar). Pero los avances en el PLN son cruciales para tecnologías como los chatbots, la búsqueda por voz y los asistentes virtuales inteligentes en general.
Mikel Forcada es experto en traducción automática y en redes neuronales y compartió con nosotros su punto de vista sobre lo que él denominó «el estado de la cuestión en procesamiento de lenguaje natural».
El procesamiento del lenguaje natural es difícil porque cuando se interpreta un texto humano la ambigüedad y la imprecisión del lenguaje puede complicar mucho las cosas. La forma en la que los humanos nos comunicamos se basa fuertemente en el contexto del acto de comunicación: el tema, el medio, etc. y la interpretación depende de la experiencia, de las expectativas y de las creencias del receptor.
Los modelos de procesamiento del lenguaje natural tradicionales estaban basados en reglas explícitas; ello hace que a menudo sean impracticables ya que requieren que expertos expliciten el conocimiento en forma de bases de datos y reglas. Estas reglas además deben ser eficientemente computables y pueden interaccionar entre ellas de manera compleja, cuando se tiene que aplicar varias reglas a una situación concreta y entonces tenemos que establecer un orden de prioridad o unos protocolos de aplicación de reglas.
Aunque los modelos explícitos tradicionales están siendo superados por las tecnologías actuales del procesamiento de lenguaje natural, en algunos casos pueden ser los únicos de los que dispongamos, por ejemplo para una lengua muy pequeña o que no tiene recursos o para trabajar en un tema para el que no tenemos datos y donde puede ser más barato crear reglas que crear datos para entrenar un sistema.
La mayor parte de los sistemas actuales son modelos de deep learning. Son modelos implícitos; es decir, no tienen reglas ni expertos que las programen y tienen el inconveniente de que son muy poco interpretables, porque cuando un modelo de deep learning produce una salida es muy difícil conocer por qué lo ha hecho y si la salida deseada no es la correcta es muy difícil corregirlo porque no sabemos la causa del error. Estos sistemas están basados en redes neurales artificiales que aprenden automáticamente a partir de grandes cantidades de ejemplos a los que se deben exponer muchas veces para que aprendan, a veces demasiado lentamente.
ELMO y BERT
Actualmente hay 2 modelos llamados ELMO y BERT que son arquitecturas neurales que han sido entrenadas sobre grandes cantidades de texto llano sin anotar( es decir de manera no supervisada) para que puedan realizar tareas sencillas como completar oraciones “mutiladas” o “incompletas”. Estos modelos se usan para muchas otras tareas de procesamiento del lenguaje natural
Los dos sistemas están basados en una arquitectura codificador–descodificador, ELMO está basada en unidades LSTM y BERT usa un transformer.
Algunos enlaces sobre ELMO y BERT:
ELMO: http://demo.allennlp.org (por ejemplo modelos de comprensión lectora que responden preguntas a partir de un texto)
BERT se puede entrenar y usar en https://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/bert_finetuning_with_cloud_tpus.ipynb#scrollTo=5U_c8s2AvhgL Otra demo de BERT: https://www.pragnakalp.com/demos/BERT-NLP-QnA-Demo/
Google ya usa la tecnología de BERT para completar e intentar entender que es lo que el usuario quiere cuando usa su buscador y es muy probable que lo esté usando en otras soluciones como DialogFlow. Pero hay que insistir en que estos sistemas son no supervisados.
El avance más reciente en este campo es un sistema que ideó Google que se llama T5 (Text-to-Text Transfer Transformer) que está basado en está basado en un corpus que se llama C4: Colossal Clean Crawled Corpus, que tiene 750 GB de texto, texto. T5 es un transformer, básicamente un super-BERT, con 220 millones de parámetros ajustables. En T5 todas las tareas que se realizan se plantean como tareas texto a texto; esto quiere decir que el problema se presenta como texto y el resultado tiene que ser texto, se usa un modelo único para todas las tareas y un único entrenamiento, la idea es probar el aprendizaje de transferencia, lo que se intenta es ver como se puede transferir conocimiento de una tarea a otra.
La idea es tener un modelo único, por ejemplo las tareas más habituales que se abordan por T5 pueden ser:
- traducción automática
- respuestas a preguntas
- resumen automático
- aceptabilidad de oraciones
- resolución de anáfora
- inferencia
- análisis de sentimientos
- (…)
Un aspecto importante es que estos modelos aprenden a partir de texto llano; el conocimiento que adquieren no se representa en una base de datos por ello un tema interesante podría ser ¿cómo se pueden combinar con bases de datos? En el congreso de la ACL (Association for Computational Linguistics) que se celebrará este año en Julio de forma virtual, se aceptó un artículo sobre un sistema llamado TAPAS – Weakly supervised TAble PArSing via pre-training) en el que explican como han enseñado a un sistema a contestar preguntas a partir de tablas.
En resumen y según como yo lo veo el procesamiento del lenguaje natural es difícil, los sistemas actuales usan conocimiento implícito y se basan en aprendizaje profundo (redes neurales). Pueden aprender a partir de texto llano sin anotar y es interesante resaltar que lo aprendido en una tarea se puede transferir a otra.
Sobre Mikel Forcada
Mikel Forcada es Catedrático en el Departamento de Lenguajes y sistemas Informáticos de la Universidad de Alicante y presidente de la Asociación Europea de Traducción Automática (European Association of Machine Translation, EAMT). Su investigación está marcada por su interés en relación con la traducción automática, la traducción asistida y el procesamiento del lenguaje natural. Ha desarrollado el sistema de traducción automática Apertium, y otras aplicaciones como Bitextor, todas ellas de código abierto.