Construyendo un chatbot sin “Utterances”

Publicado el 19 Abr 2019

Julio Prada, director general de Inbenta en España y EMEA.

Desde el boom de los chatbots en mensajería como WeChat o Facebook, las empresas cada vez tienen más claro que deben estar donde está el cliente. Como usuarios, empleamos un 90% de nuestro tiempo en el smartphone en únicamente 3 aplicaciones, siendo la mensajería instantánea la principal de ellas.

Estos factores, junto con el hecho de que las empresas necesitan automatizar al máximo posible su atención al cliente, confluyen en el fenómeno y actual auge de los chatbots. Su misión es sencilla: formar parte de nuestro día a día a la hora de resolver dudas, preguntas o compras, y ayudarnos a obtener información relevante de forma instantánea sin esperas ni colas interminables en llamadas telefónicas. La reciente irrupción de los altavoces inteligentes en nuestros hogares añaden, además, el atractivo de la voz a la hora de interactuar con los chatbots.

Pero la pregunta es: ¿qué tan fácil es para una empresa crear uno de estos chatbots? En la actualidad existe una corta lista de proveedores clave de software para diseñar y poner en marcha un chatbot. Los más relevantes del panorama actual son: Google Dialog flow, Inbenta, Amazon Alexa, Microsoft e IBM Watson. Todos ellos, a priori similares, ofrecen la posibilidad de ser probados sin tener que llevar a cabo una inversión económica y en definitiva deberían ser la pieza clave para dar luz a tu chatbot. Pero la realidad es que estas plataformas de software por sí solas no son capaces de entender las necesidades de tu negocio ni tampoco crear inteligencia para que el chatbot aprenda automáticamente. He aquí un gran mito sobre los chatbots: el Machine Learning (término sobrevalorado y hasta inadecuado en este contexto) o auto-aprendizaje. No existe ningún software que genere conocimiento en un chatbot de forma automática y, si la hubiese, no sería nada recomendable. El aprendizaje de un chatbot debe ser siempre asistido o supervisado. Y esto lo saben muy bien los Botmasters.

El Botmaster es el responsable de enseñar, gestionar y mantener el chatbot. Uno de los grandes retos con los que se encuentran los Botmasters es la creación de unidades de conocimiento del chatbot, también conocidas como “intents”. Representan la capacidad individual de dar respuesta o solución a un tema en concreto. Por ejemplo, en una aerolínea, un “intent” podría ser “¿Cómo viajar con mascotas?”. Ante una pregunta de un usuario sobre este tema, el chatbot proporciona una respuesta relevante que ayuda al usuario a resolver su duda. Hasta aquí todo bien. El Botmaster ha sido capaz de generar un “intent” para la máquina y le ha proporcionado una enseñanza sobre cuál es la respuesta. El verdadero problema está por llegar… ¿Qué pasará si reformulamos la misma pregunta con palabras distintas? “¿Puedo volar con mi perro?”

En este caso, el chatbot por defecto carece de comprensión para entender que las dos preguntas se refieren a lo mismo. En términos específicos, esta capacidad se denomina NLU(Natural Language Understanding). Sólo las herramientas que dispongan de Inteligencia Artificial y NLU serán capaces de procesar y concluir que ambas frases se refieren a lo mismo. Muchas tecnologías no disponen de NLU y obligan al Botmaster a llevar a cabo un entrenamiento manual y unitario de “variaciones” del mismo “intent” con el fin de dotar el chatbot de una mínima capacidad comprensiva. Incluso alguna de las mencionadas plataformas necesita disponer de un número mínimo de iteraciones. Siguiendo el ejemplo de “¿Cómo viajar con mascotas?”, el Botmaster deberá crear cuantas más variaciones posibles mejor: “Puedo viajar con mascotas”, “Se permite volar con mascotas”, “Puedo llevar mascotas a bordo” etc. Por norma general, se recomienda disponer de un mínimo de entre 10 y 40 iteraciones por cada unidad de conocimiento del chatbot. Eso sin mencionar casos del estilo “Puedo volar con un perro”, “Puedo volar con un gato”, “Puedo volar con un dálmata”, “Puedo volar con xxxx…” y así ir engrosando la lista, cuyo límite será la creatividad del Botmaster.

Y en todo esto, ¿dónde está la Inteligencia Artificial? ¿Es la máquina la que está al servicio del ser humano? A priori da la sensación de que es todo lo contrario, pues el Botmaster es, de alguna manera, quien necesita llevar a cabo un gran esfuerzo para que el chatbot funcione mínimamente bien. Algún lector podría llegar a la conclusión de que tampoco supone un gran esfuerzo la creación de esas variaciones o ‘utterances’. Y en parte podría tener razón. Todo dependerá del propósito del chatbot (qué misión tiene) y a qué colectivo va dirigido.

La realidad es que en cualquier vertical empresarial, un negocio necesita una media de entre 200 y 800 “intents” para cubrir un caso de uso. Tomando un valor intermedio, por ejemplo 500 “intents”, y considerando que tenemos suerte y no nos toca crear variaciones del estilo “Viajar a Paris, Viajar a Barcelona, Viajar a xxx”, y teniendo en cuenta que vamos a crear un mínimo de 20 variaciones por intent, nos salen unas 10.000 iteraciones. Posiblemente el tiempo de implementación de un chatbot se dilate en semanas (y en coste) sólo por la necesidad de tener que crear esas ‘utterances’ o variaciones. De hecho, en muchos casos representa más de la mitad del tiempo de implementación de un proyecto de chatbot. Por no mencionar el tema de los idiomas: si estamos construyendo un chatbot que debe llevar a cabo la misma función pero en 10 idiomas, nuestra complejidad y esfuerzo se verán multiplicados por 10 veces (100.000 utterances, ¿casi un libro?).

¿Existe algún modo de paliar esta situación? Por supuesto. A la hora de escoger la tecnología y el software de chatbot, hay que buscar aquel que disponga de capacidades de NLU. En caso de no disponer de Lenguaje Natural, esto no significa necesariamente que no puedas poner en marcha un chatbot, pero seguramente la falta de capacidad comprensiva se traducirá en un incremento considerable de tiempo y coste en tu proyecto. El NLU permite obtener automáticamente a partir de la lingüística computacional una infinidad de utterances o variaciones para un mismo intent, y por tanto un ahorro considerable de dinero a la par que mejorar el “time-to-market” del chatbot. Es muy importante poder validar estas tecnologías, sin olvidar la funcionalidad multi idioma. La mayoría de software de origen estadounidense dispone de un cierto grado de eficacia en inglés, pero a la hora de lidiar con idiomas como el alemán, el italiano o el portugués, nos encontraremos que su rendimiento cae en picado. Seguramente tendremos más suerte con tecnología europea, en la que existe una sensibilidad más desarrollada respecto a la realidad idiomática de los usuarios.

No existe el software de chatbot definitivo, todavía, pero es importante evaluar las bondades y desventajas de cada uno de ellos. Sin duda el NLU es un elemento clave, sobre todo si nuestro chatbot va a interactuar con idiomas distintos al inglés. Si nuestro proyecto requiere de un volumen muy grande de “intents” y además necesitamos construir un chatbot en más de una lengua, seguramente el NLU será la funcionalidad a la que más atención habrá que prestar.

¿Qué te ha parecido este artículo?

Tu opinión es importante para nosotros.

P
Julio Prada

Artículos relacionados

Artículo 1 de 3