¿Qué es un chatbot?


Un chatbot es un sistema computacional cuyo objetivo es sostener una conversación con un usuario humano usando lenguaje natural, es decir el lenguaje que usamos diario a diario cuando hablamos con otras personas.

En los últimos años los chatbots han adquerido relevancia con el resurgimiento de la Inteligencia Artificial. En general los chatbots se centran en una interfaz textual donde tanto como chatbot y usuario escriben sus peticiones y respuestas, sin embargo con el estado actual del reconocimiento de voz es posible pensar en usar la voz como modo de entrada en un chatbot como en los asistentes vituales tales como: Amazon Alexa o Siri.

Sistema de diálogo o agente conversacional son otros nombres por los que se conocen a los chatbots.

El siguiente es un ejemplo de conversación textual entre Cleverbot y un usuario anónimo de esa plataforma:

¿Piensas?


Sí, pienso ¿tú piensas?


Algunas veces


¿En qué te gusta pensar?


Los sims 2


¿Cada cuánto juegas los Sims 2?


No lo juego más porque lo gané


¿Como le ganas a los Sims?


Saliendo afuera


El hacer que un sistema computacional, es decir un programa, que sea capaz de platicar con un humano es un reto muy grande. La solución puede incluir requerir utilizar múltiples fuentes de conocimiento como por ejemplo:

  • Conocimiento lingüístico para entender lo que escribió el usuario
  • Sentido común para resolver inquietudes sencillas del usuario
  • Conocimiento especializado para poder hablar de algún tema especializado
  • Conocimiento discursivo y cultural para atender a las costumbres comunicativas cómo decir: hola, al inicio de una conversación, y adios, al final de esta.

Incorporar estos conocimientos en un sistema computacional son en si otros retos que hacen el problema de programar un chatbot muy interesante.

Elementos del chatbot y otros conceptos

Durante el funcionamiento de un chatbot existen los siguientes elementos:

  • Chatbot es el programa conversacional que en general realiz, a dos funciones: Mantener la interfaz la interfaz es el mecanismo que permite al usuario mandar información comunicativa y al chatbot presentar su respuesta. Y segundo la Inteligencia es la mecanismo que permite al chatbot construir una respuesta al usuario
  • Usuario(s) es el humano con el que el chatbot conversa
  • Servicios estos son otros programas auxiliares que nos ayudan a acceder a otros componentes como son: tocar música, presentar una imágen, agendar un boleto, etc.
  • La conversacion es el intercambio comunicativo entre chatbot y usuario
  • La interacción sinónimo técnico de la conversación, generalmente implican que no sólo haya elementos comunicativos como el acceso a otros servicios como tocar una canción o tomar una foto.
  • Turno es la secuencia de intervenciones por parte de un mismo participante en la conversación
  • Oración/elocución/interacción es la unidad mínima de intervención del chatbot o usuario
  • Historia del chat es la colección de elocuciones y turnos de la conversación, y muchas veces del uso de los servicios.
  • Inteción es el objetivo general de una oración o elocución.
  • Contexto es el estado de la conversación hasta cierto momento, lo que ha pasado hasta ese momento y que ha desembocado en lo que entienden las partes, y el estado de los servicios.
  • Acuerdo es el conjunto de información para la cual el chatbot cree que ambos, usuario y chatbot, concuerdan, por ejemplo las preferencias musicales del usuario.
  • Interpretación es el proceso que realizar el chatbot para entender qué dijo el usuario.
  • Generación es el proceso que realiza el chatbot para generar su respuesta.

Metodologías de inteligencia

La función de la inteligencia del chatbot es construir una interacción a la intervención del usuario durante la conversación. Para lograr esto hay diferentes metodologías posibles:

Dada la fuente de la inteligencia

  • Basado en reglas: El programador codifica cómo responder en una serie de reglas, el chatbot sólo sigue la codificación y construye la respuesta.
  • Basado en datos: El chatbot usa ejemplos de conversaciones para construir los datos.

Dada la tecnología

  • AIML: Lenguaje de programación para chatbots basado en pattern matching de expresiones regulares y lo dicho por el usuario.
  • NLU, Natural Languaje Undersatenaing: Sistemas que recaen en el análisis de lo dicho por el usuario para entender qué dijo.
  • NLG, Natural Language Generarion: Sistemas que generan una respuesta en lenguaje natural basada en una representación computacional de esta.
  • Seq2seq: Modelos que aprenden a transformar una intervención del usuario en una respuesta por parte del chatbot generalmente basado en modelos de aprendizaje profundo. Esta técnica es muy exitosa en modelos de traducción automática.

Dada la estrategia interpretación-generación

  • Matching cada caso está representado por un patrón y la respuesta, cuando se da una coincidencia con lo dicho por el usuario se genera la respuesta.
  • Por modelo de diálogo: Un programador codifica una secuencia de guiones que representan las posibles conversaciones entre chatbot y usuario.
  • Por recuperación: El sistema compara lo dicho por el usuario a conversaciones pasadas, la respuesta a la intervención más parecida es presentada como la respuesta del chatbot.
  • Por refuerzo: Modelos que aprenden un política de interacción a través de la simulación de conversaciones; para una interpretación aprenden que

Dado como representan el contexto

Naturaleza de la interacción

De lo que podría hablar un humano con un chatbot es de dimensiones infinitas. Lograr imitar las capacidades comunicativas y de inteligencia de un humano raya en lo imposible, y aunque existen investigación alrededor de esto, en este momento nos encontramos muy lejos de lograrlo. Con esto en mente, cómo es posible programar un chatbot qué converse con el humano. Para lograrlo controlamos varios aspectos de la interacción:

  1. Los chatbots son especialistas y sólo conversan en dominio (tema) específico. Esto tiene que ver que la Inteligencia Artificial que usan no es general sino especializada. Por ejemplo, pueden saber todo sobre nuestra colección de música.
  2. En los chatbots la conversación va dirigida a resolver una tarea y la interacción va estar dirigida a que ambos, usuario y chatbot, colaboran para lograr el objetivo de terminar con la tarea (leer Towards Conversational Human-Computer Interaction ). Sin embargo, en los últimos años ha habido interés en interacciones no colaborativas (leer Non-Cooperative and Deceptive Virtual Agents).
  3. El control de la conversación lo tiene el chatbot esto es para no permitir que el usuario cambie la conversación hacia un tema del cual el chatbot no sabe. Esto se logra a través de qué el chatbot haga las preguntas. Sin embargo, esta estrategia hay que saberla aplicar ya que hecha con exceso se siente como un chatbot mandón o un chatbot inseguro.

Chatbots notables

  • ELIZA, 1966 fue uno de los primeros chatbos. El dominio del chatbot era una sesión psicológica con un paciente, su forma de interactuar, que consistía en mantener hablando al usuario hizo posible su implementación aún cuando su entendimiento era muy limitado. Para un demo visitar esta página.
  • SHRDLU, 1970 sistema que permitía manejar objetos en mundo de bloques. Para demos visitar esta página
  • Lunar, 1973 sistema que permitía consular una base de datos con información geológica de muestras lunares.
  • Mitsuku, 2012 chatbot actual ganador del premio Loebner que trata de cuantificar el avance con la prueba de Turing. Mitsuku es de inteligencia general.
  • Poncho, 2016 chatbot para el pronostico del clima.
  • Swelly, 2016 chatbot en la plataforma facebook que ayuda a tomar decisiones.

Para una lista de chatbots más recientes consultar la lista de Topbots, para boots en la plataforma de Microsoft consular esta lista o esta otra lista.