Chatbots: Conversación natural con robots

Publicado en

Los avances tecnológicos han generado un constante cambio en la manera en que interactuamos. Actualmente, las conversaciones en persona son menos comunes que por teléfono, chat o redes sociales. Esto ha generado que sea completamente normal hablar abiertamente con una máquina que llevará el mensaje a nuestro interlocutor y después nos comunicará su respuesta.

Ya que lo anterior lo encontramos cotidiano, no nos será ajeno comunicarle a la máquina nuestras necesidades y que las resuelva. Para ello se han desarrollado los bots conversacionales (chatbots), los cuales permiten interactuar con las personas ya sea como asistente personal, para atender un servicio, entretener mediante una conversación o en el área de Servicio al Cliente.

De las reglas a la inteligencia

La mayoría de los chatbots existentes están muy lejos de ser perfectos, por lo tanto,  los usuarios prefieren evitarlos y tratar directamente con una persona. ¿A qué se debe esa preferencia? La respuesta a esto es simple, el robot no interactúa de la misma manera que lo hace un humano. No debería de sorprendernos que el cliente se disguste y exija ser atendido por un operador si el robot es incapaz de entender lo que le solicitan y sólo realiza un interrogatorio acerca de la problemática. Esto nos indica que el grado de éxito de un chatbot se encuentra directamente relacionado con el grado de inteligencia que éste tiene. Por esto es necesario comprender que no todos los chatbots son iguales y que estas diferencias pueden impactar en la experiencia de nuestro cliente.

Los chatbots basados en reglas siguen un flujo determinado de interacciones y generalmente se limitan al entendimiento de oraciones con construcciones o comandos específicos. Éste es el tipo más común de robots de servicio, eficientes para realizar tareas sencillas como indicar una hora, proveer información básica de un producto, proponer opciones de pago, capturar datos del cliente o promocionar un producto. No obstante, estos robots no entienden realmente al usuario, se limitan a seguir una serie de reglas, que en procesos complejos se vuelven demasiado complicadas de seguir tanto para usuarios como para programadores.

Todos nos hemos encontrado con este problema al llamar a un corporativo y encontrar una interminable serie de menús que buscan determinar a qué área dirigir nuestra llamada. Seguramente, la mayor parte de los usuarios preferirían que un operador tomara la llamada, entendiera su problema y lo comunicara con la persona adecuada para resolverlo. Esta interacción nos ha llevado a creer que los robots son poco inteligentes, deficientes, se confunden con facilidad y su funcionalidad es extremadamente limitada.

La interacción con chatbots debería ser muy similar a la que tendríamos con una persona para que sean exitosamente incorporados como agentes de servicio. Esto ha motivado la investigación para generar modelos que permitan al usuario interactuar con los chatbots de una manera más natural, que sean capaces de entender el lenguaje de la misma manera que lo haría una persona.

Lo anterior es investigado por el procesamiento de lenguaje natural (PLN), una rama de las Ciencias de la Computación, que analiza la forma de interactuar entre la computadora con el lenguaje humano. Es un área multidisciplinaria que engloba las ciencias de la computación y la ingeniería lingüística. Se ha estudiado desde los años 50;  se realizaba a partir de complicadas reglas hechas a mano por expertos, pero no era capaz de contemplar todas las posibilidades del proceso de comunicación humana. En los años 80 mejoró considerablemente gracias a la incorporación de algoritmos de aprendizaje automático, desafortunadamente no logró la eficiencia esperada debido a las limitaciones físicas de procesamiento en las computadoras y a las escasas bases de conocimiento disponibles. Actualmente, esto ha dejado de ser un impedimento puesto que las  computadoras ahora son capaces de procesar grandes volúmenes de información y se encuentran disponibles grandes volúmenes de conversaciones libres en internet.

Con lo antes expuesto, una motivación y la capacidad tecnológica para desarrollar mejores chatbots han sido las condiciones adecuadas para fomentar la investigación y desarrollo en el área de lenguaje natural.

Así pues, los chatbots impulsados por inteligencia artificial (IA) tienen como objetivo realizar un verdadero entendimiento del lenguaje: son capaces de entender una petición del usuario a partir del contexto obtenido a lo largo de la conversación, comprender un mensaje sin importar que tenga errores ortográficos o cambios de palabras introducidos por el corrector ortográfico, y de permitir que el cliente se exprese libremente sin limitarlo a una construcción determinada.

Componentes de un chatbot basado en IA

Para entender mejor el funcionamiento de un chatbot basado en inteligencia artificial es necesario analizar a detalle los elementos que lo conforman. A continuación, se presenta el esquema de una de las configuraciones más usadas por investigadores y empresas reconocidas mundialmente. Algunos ejemplos se pueden encontrar en [1] y [2].

 

Componentes chatbot

Figura 1: Esquema de un chatbot basado en inteligencia artificial

En un primer momento, el cliente interactúa con el chatbot mediante un mensaje de texto que llega al módulo de entendimiento del lenguaje, el cual procesa el texto para que el chatbot sea capaz de entender el significado. Después, el seguidor de estado se encarga de llevar el registro de la conversación, lo que permite al chatbot entender nuevos mensajes a partir del contexto de todo el diálogo. Luego, la política de diálogo permite la toma de decisiones acerca de las respuestas y acciones que debe seguir el chatbot. Finalmente, el módulo generador de lenguaje natural toma en cuenta el mensaje, el contexto de la conversación y la política de diálogo para generar la respuesta más adecuada.

Cada módulo involucra el uso de algoritmos de IA especializados para resolver el problema en cuestión. Éste es un campo con gran dinamismo en el que continuamente se están generando nuevas técnicas y herramientas.

En relación con el entendimiento del lenguaje se han desarrollado múltiples técnicas para analizar la composición, sintaxis y el significado de un mensaje. Uno de los grupos de investigadores que más ha contribuido en esta área es el Grupo de Procesamiento de Lenguaje Natural en Stanford [3], que ha hecho disponibles diversas publicaciones y herramientas bajo software libre para el procesamiento de lenguaje natural.

El módulo generador de lenguaje ha sido abordado por medio de algoritmos de inteligencia artificial que permiten obtener una respuesta para cada mensaje. El método más común es llamado secuencia a secuencia [4] (sequence to sequence) y primordialmente se ha usado para realizar labores de traducción.

El módulo para seguimiento de estado es uno de los mayores retos a resolver para poder implementar exitosamente un chatbot, y todavía no existen soluciones adecuadas a este problema. Por esta razón es necesario involucrar a la mayor cantidad de investigadores para obtener una solución. Ésta es la motivación de The Dialog State Tracking Challenge [5], el cual se encuentra impulsado por múltiples instituciones académicas y empresas para incentivar a investigadores alrededor del mundo a poner a prueba diferentes técnicas para realizar el seguimiento de una conversación.

Panorama en nuestra región

De este breve acercamiento al funcionamiento de los chatbots, pueden resaltarse dos puntos muy importantes: en primera instancia, no se ha logrado desarrollar un chatbot capaz de entender el lenguaje en su totalidad, a pesar de todos los esfuerzos invertidos; y, en segunda instancia, la mayor parte de toda la investigación realizada se ha enfocado en el idioma inglés. Esto nos hace pensar que aún falta mucho para contar con un chatbot inteligente centrado en el español. Sin embargo, esto no es del todo cierto, ya que académicos de múltiples países hispanoparlantes se encuentran realizando investigaciones para generar técnicas de inteligencia artificial adecuadas a nuestro idioma.

Sabemos que la investigación necesita la inversión de la industria privada, es por ello que hay industrias interesadas en invertir capital en el desarrollo de estas tecnologías. Existen grandes empresas multinacionales como Google o IBM que buscan desarrollar estos servicios en español, al tiempo que existen empresas mexicanas que también han observado este nicho de oportunidad y han apostado por el desarrollo tecnológico en nuestro país. Uno de los casos a notar es el de Gus Servicios Tecnológicos que, en su interés por mejorar la atención al cliente, desarrolla inteligencia artificial para su asistente personal Hola Gus [6], un chatbot que busca atender al cliente de una manera natural y personalizada. Esta área de investigación se encuentra en sus primeras etapas de desarrollo, así que seguramente empezaremos a ver cada vez más chatbots en nuestro país.

Referencias

  1. B. Dhingra, et al. End-to-End Reinforcement Learning of Dialogue Agents for Information Access. http://swgu.ru/rx

  2. T.-H Wen, et al. A Network-based End-to-End Trainable Task-oriented Dialogue System. http://swgu.ru/ry

  3. The Stanford Natural Language Processing Group. http://nlp.stanford.edu

  4. I. Sutskever, et al. Sequence to Sequence Learning with Neural Networks. Advances in Neural Information Processing Systems 2014. http://swgu.ru/rz

  5. J. Williams, et al. The Dialog State Tracking Challenge. http://swgu.ru/r-  

  6. Gus Servicios Tecnológicos. https://www.holagus.com

 

Bio

Carlos A. Duchanoy (carlos.duchanoy@holagus.com) es Doctor en Ciencias de la Computación por parte del Centro de Investigación en Computación del IPN, y actualmente colabora en Gus Servicios Tecnológicos, a cargo del desarrollo e investigación de inteligencia artificial aplicada al desarrollo de chatbots.