Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the acf domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6260

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the all-in-one-seo-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6260

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-user-avatar domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/planetac/desa.planetachatbot.com/wp-includes/functions.php on line 6260

Warning: Cannot modify header information - headers already sent by (output started at /home/planetac/desa.planetachatbot.com/wp-includes/functions.php:6260) in /home/planetac/desa.planetachatbot.com/wp-content/plugins/all-in-one-seo-pack/app/Common/Meta/Robots.php on line 87

Warning: Cannot modify header information - headers already sent by (output started at /home/planetac/desa.planetachatbot.com/wp-includes/functions.php:6260) in /home/planetac/desa.planetachatbot.com/wp-includes/feed-rss2.php on line 8
Patrick Meyer - Planeta Chatbot https://desa.planetachatbot.com Comunidad de expertos en IA Conversacional Wed, 08 Jun 2022 08:50:25 +0000 es hourly 1 https://wordpress.org/?v=7.1 https://desa.planetachatbot.com/wp-content/uploads/2021/05/cropped-favicon-32x32.png Patrick Meyer - Planeta Chatbot https://desa.planetachatbot.com 32 32 Cómo diseñar un flujo de conversación para tu chatbot – EmpathyBots https://desa.planetachatbot.com/como-disenar-un-flujo-de-conversacion-para-tu-chatbot-empathybots/?utm_source=rss&utm_medium=rss&utm_campaign=como-disenar-un-flujo-de-conversacion-para-tu-chatbot-empathybots https://desa.planetachatbot.com/como-disenar-un-flujo-de-conversacion-para-tu-chatbot-empathybots/#respond Thu, 30 Dec 2021 08:00:08 +0000 https://desa.planetachatbot.com/?p=9812 Entonces, ¡ahora estás listo para crear un chatbot y deseas obtener más información sobre cada paso! ¿Entonces, a qué estás esperando? Da el primer paso y aprende a diseñar un flujo de conversación para tu chatbot. En esta guía, te voy a contar el proceso de 5 pasos que debes seguir para diseñar un flujo […]

The post Cómo diseñar un flujo de conversación para tu chatbot – EmpathyBots first appeared on Planeta Chatbot.

]]>
Entonces, ¡ahora estás listo para crear un chatbot y deseas obtener más información sobre cada paso!

¿Entonces, a qué estás esperando?

Da el primer paso y aprende a diseñar un flujo de conversación para tu chatbot.

En esta guía, te voy a contar el proceso de 5 pasos que debes seguir para diseñar un flujo de conversación efectivo (con un ejemplo).

Pero antes de seguir adelante, si no sabes qué es un chatbot y el proceso paso a paso para crearlo.
Entonces te sugiero que leas estas 2 guías:

  • ¿Qué es exactamente un chatbot? ¿Y porque es importante?
  • Cómo crear un chatbot desde cero en 2021 (la guía definitiva)

¡De acuerdo, empecemos!


¿Qué es un flujo conversacional?

El flujo de la conversación no es más que un diagrama de flujo que representa una progresión sin esfuerzo de respuestas que ocurre en un chatbot en función de condiciones o valores.

Es diferente a un guion conversacional. El guion conversacional es un conjunto de diálogos en la conversación.

Y el flujo de la conversación es la estructura general de tu chatbot.

Ahora, te diré cómo diseñar un flujo conversacional tomando el ejemplo de FAQBot.


5 pasos para crear un flujo de conversación

1. Conoce el propósito y la funcionalidad del bot

Espero que sepas de qué se trata. De lo contrario, consulta la guía de 11 mejores prácticas de chatbot para conocer en detalle el propósito y la funcionalidad del bot.

Para darte una breve idea, el propósito no es más que las expectativas que tienes de tu chatbot y la funcionalidad es cómo cumplir esas expectativas.

Al igual que, el propósito de mi FAQBot es responder a las preguntas más frecuentes de los usuarios.
Y lo cumpliré creando botones de preguntas con prefijo en los que los usuarios pueden hacer clic para obtener respuestas.

2. Considera todos los escenarios

Por escenarios, me refiero a considerar todas las situaciones posibles que pueden ocurrir durante la conversación y diseñar su flujo conversacional en consecuencia.

Hay 5 situaciones principales que ocurren normalmente en un chatbot.

1. Saludos

Este es el mensaje de bienvenida que debe enviar Tu chatbot cuando los usuarios interactúan con él.
Puedes elegir enviar diferentes mensajes a usuarios nuevos y recurrentes.

2. Preguntar

Puede haber una situación en la que tu chatbot tenga que hacer diferentes preguntas a los usuarios para mantener la conversación.
Por ejemplo, enviando un «¿Cómo puedo ayudarte?» mensaje.

3. Sugerencias

En una situación particular, debes mostrar a los usuarios cómo tu chatbot puede ayudar mostrando los botones o respuestas rápidas.

4. Fracaso

Esta situación puede ocurrir cuando los usuarios solicitan algo que está fuera del alcance de tu chatbot.
En este caso, tu chatbot debe enviar un mensaje de disculpa a los usuarios y dirigirlos hacia otras opciones posibles.

5. Fin

Este es el final de una conversación.
No lo termines para siempre. Los usuarios deberían tener ganas de volver a él.

3. Dibuja un contorno

Ahora que conoces el propósito y la funcionalidad de tu chatbot, es hora de diseñar un esquema básico.
Simplemente visualiza el flujo de la conversación y dibújela en papel o donde desee.

Este es el esquema de mi FAQBot:


4. Diseña un flujo de conversación

Ahora, finalmente, es el momento de diseñar un flujo de conversación.
Puedes usar la herramienta gratuita llamada Draw.io para diseñar un flujo (yo personalmente lo usé).
Simplemente dibuja el diagrama de flujo de tu chatbot en función de la progresión condicional de las respuestas.

Así es como he diseñado el flujo de conversación de mi FAQBot:

 

5. Optimizar

Y, por último, optimiza tu flujo de conversación para brindar una experiencia de conversación de primer nivel a tus usuarios.

Ahora, el siguiente paso es escribir un guion. Y te sugiero que leas esta guía detallada sobre cómo escribir un guion conversacional para tu chatbot.

Conclusiones para el flujo de la conversación

  • El flujo de conversación es como la base de tu chatbot. Por eso debería ser fuerte.
  • El rendimiento de todo tu chatbot depende de esto.

Por lo tanto, tómate el tiempo para pensar, intercambiar ideas, visualizar y seguir estos 5 pasos para diseñarlo de manera efectiva.

¿Te gustó esta historia? Considera seguirme para leer más historias como esta.
También puedes seguirme en Twitter y LinkedIn.

The post Cómo diseñar un flujo de conversación para tu chatbot – EmpathyBots first appeared on Planeta Chatbot.

]]>
https://desa.planetachatbot.com/como-disenar-un-flujo-de-conversacion-para-tu-chatbot-empathybots/feed/ 0
En tecnología conversacional, la Precisión y el Recall no son (en verdad) tus mejores amigos https://desa.planetachatbot.com/tecnologia-conversacional-precision-y-recall/?utm_source=rss&utm_medium=rss&utm_campaign=tecnologia-conversacional-precision-y-recall https://desa.planetachatbot.com/tecnologia-conversacional-precision-y-recall/#respond Thu, 20 Aug 2020 13:33:59 +0000 https://desa.planetachatbot.com/?p=7416 Para que un asistente conversacional responda automáticamente a la solicitud de un usuario, es necesario capacitarlo para que reconozca correctamente las preguntas y, por lo tanto, active los escenarios correctos. Para esto, las soluciones industriales (es decir, las soluciones de chatbot) utilizan principalmente el aprendizaje automático para realizar esta detección creando un modelo (el resultado […]

The post En tecnología conversacional, la Precisión y el Recall no son (en verdad) tus mejores amigos first appeared on Planeta Chatbot.

]]>
Para que un asistente conversacional responda automáticamente a la solicitud de un usuario, es necesario capacitarlo para que reconozca correctamente las preguntas y, por lo tanto, active los escenarios correctos. Para esto, las soluciones industriales (es decir, las soluciones de chatbot) utilizan principalmente el aprendizaje automático para realizar esta detección creando un modelo (el resultado del proceso de aprendizaje) para clasificar las solicitudes por intención. La literatura sobre el aprendizaje nos recomienda verificar el rendimiento del modelo a través de precisión e indicadores de recall. Por experiencia, he descubierto que estos indicadores son realmente irrelevantes en una conversación y conducen a interpretaciones erróneas, exceso de confianza y, en última instancia, son engañosos para el analista. Recomiendo el uso del Critical Success Indez (CSI), pero como todavía no es suficiente, para completar este indicador mediante un análisis del coeficiente de variación imparcial de nuestros viejos amigos y el nuevo.

Introducción

En la IA conversacional, los sistemas deben “comprender” la solicitud del usuario antes de que puedan realizar la acción solicitada (por ejemplo, “encender la luz”, “pedirme una pizza”, “cómo puedo apagar el televisor”, etc.). Para hacer esto, estos sistemas utilizan una de las técnicas de aprendizaje automático, que consiste en crear automáticamente modelos de clasificación a partir de agrupaciones de oraciones que tienen el mismo significado, que implícitamente significan lo mismo. Para esto, el dialogador o diseñador conversacional (es decir, el que escribe los diálogos de un asistente de conversación) debe supervisar la capacitación de un detector (el clasificador) proporcionándole un conjunto de oraciones de ejemplo y agrupándolas por intención (por tipo de solicitud).

Ejemplos de oraciones para un asistente de predicción del clima

Después de aprender, el sistema debe ser probado para garantizar que sea lo suficientemente “inteligente” como para comprender todas las solicitudes. Especialmente porque estos sistemas se utilizan por su capacidad de detectar la demanda, incluso si varía de lo esperado. Para obtener una descripción del procesamiento de las solicitudes de los usuarios, puedes chequear mi artículo anterior sobre AI conversacional para diseñadores conversacionalesla escala de 4 niveles de complejidad.

Para evaluar al asistente, el diseñador debe hacer preguntas que no están en la capacitación y verificar que el sistema detecte la intención a pesar de las variaciones que introducirá para verificar que el sistema pueda obtener oraciones diferentes. Un defecto de entrenamiento, por ejemplo como resultado de un entrenamiento insuficiente, puede tener efectos negativos para el usuario, ya que el sistema activará una acción que no corresponde a su solicitud inicial.

Ejemplo de mala detección en un chatbot en inglés

La teoría

En la clasificación automática, la precisión (también llamada valor predictivo positivo) es la proporción de información relevante entre todos los elementos propuestos. Recordar (sensibilidad) es la proporción de elementos relevantes propuestos entre todos los elementos relevantes [1].

Cuando un asistente conversacional responde correctamente 20 veces (también llamado Verdadero Positivo o TP), ejecuta una acción cuando no es la solicitud 10 veces (llamado Falso Positivo o FP), no ejecuta la acción esperada 40 veces (llamado Falso Negativo o FN), su precisión es entonces 20 / (20 + 10) = 0.667 (66.7%) y su recuperación es igual a 20 / (20 + 40) = 0.334 (33.4%). Un sistema capaz de detectar sin errores tiene una precisión igual a 1 (100%) y una recall también igual a 1 (100%).

Después de una fase de entrenamiento, el clasificador se prueba con las diferentes frases de prueba de una intención (y luego la siguiente). El resultado de cada prueba se ordena según la intención reconocida.

Cálculo de valores de precisión y recalls para un sistema binario (detectado o no detectado)

En sistemas de clases múltiples (en nuestro caso, sistemas de intención múltiple y, por lo tanto, escalable a cualquier asistente conversación), la Precisión general del sistema es el promedio de las Precisiones de todos los intentos y la Recuperación es el promedio de los Recalls de todos los intentos. Estos valores se denominan macro-promedio de Precisión y macro-promedio de Recall.

Cálculo de precisión y recalls en un sistema multiclase

La precisión y la recall se calculan para cada uno de las intenciones y se promedian los resultados generales. El verdadero resultado positivo corresponde a la detección correcta de la intención. El falso negativo corresponde al caso en que nuestra oración de prueba de intención dio otra intención como resultado (una de las otras intenciones). Falso positivo corresponde a las oraciones de otras intenciones que dieron como resultado esa intención. Y el verdadero negativo corresponde a todas las otras pruebas que no dieron nuestra intención como resultado.

Hay otro indicador que es el micro-promedio de las Precisiones y que corresponde a la suma de los TP de las diferentes clases dividida por la suma de los TP y los FP. Este cálculo consiste en sumar todos los valores en el denominador que conduce al cálculo de la tasa de éxito al final.

Para probar el sistema, el diseñador conversacional prepara un conjunto de frases de prueba (llamado conjunto de datos de validación) que consta de frases que no son parte del entrenamiento (llamado conjunto de datos de entrenamiento). Cada oración está vinculada a uno de los intentos.

También es posible utilizar técnicas de prueba automáticas separando los datos disponibles en datos de entrenamiento y datos de prueba de acuerdo con una regla dependiendo del tipo de validación cruzada elegida. En la separación no cruzada, se elige una relación para separar los datos en dos conjuntos. A menudo se usan las relaciones 50/50, 66/33 u 80/20. Sin embargo, la separación de los datos disponibles en dos subconjuntos disjuntos puede generar sesgos de detección si el número de datos es pequeño. Estos sesgos pueden ser un ajuste deficiente o un error de margen demasiado grande.

Ejemplo de separación de datos en datos de capacitación y validación.

Una solución a este problema es utilizar la técnica de validación cruzada de separar conjuntos por pliegues llamados k-pliegues. El k-fold propone realizar una separación de los datos en k fold. Un pliegue se mantiene para la prueba y los pliegues restantes (k-1) se utilizan para el entrenamiento [2]. En los sistemas donde el diseñador o experto conversacional puede intervenir directamente en el modelo, este modo de prueba permite ajustar los hiperparámetros del modelo y detener el entrenamiento en el momento adecuado (es decir, antes de un ajuste excesivo).

Ejemplo de separación de datos en pliegues (k = 4)

En sistemas con intentos desequilibrados (es decir, que tienen diferentes números de oraciones por intento, que también suele ser el caso en los asistentes conversacionales), es importante mantener las proporciones de bloque en la intención. Esta técnica se llama validación cruzada estratificada o stratified cross validation

En las soluciones de inteligencia artificial conversacionales “estándar” (es decir, casi todas las soluciones comerciales de Chatbot), no es posible seleccionar estos hiperparámetros y el sistema se establece “por sí solo”. Este lado de la caja negra hace que sea difícil saber si el sistema está preestablecido de fábrica o si se adapta automáticamente mediante la validación cruzada interna y las funciones de apagado anticipado.

La práctica

Tomemos como ejemplo un sistema de 4 intenciones con la constitución de un conjunto de pruebas que ha sido creado especialmente para la validación. Supongamos que se entrena después de una primera iteración comercial, es decir, los expertos en la materia han dado el conjunto de oraciones que corresponden, según ellos, a las solicitudes de usuario más comunes para los dominios que necesitan ser automatizados. Supongamos que una primera fase de prueba arrojó los siguientes resultados:

TEST_1: resultados de la primera campaña de prueba

El clasificador se prueba usando las oraciones de prueba (20 oraciones por intención) y los resultados de las detecciones se anotan en una tabla llamada matriz de confusión, dividida en filas para las intenciones que se probarán y columnas para las intenciones que se detectan. Los números en las intersecciones corresponden a los números de ocurrencias de detección para la intención probada.

En el ejemplo TEST_1, las 20 frases de prueba de la primera intención se clasificaron correctamente 16 veces y se encontraron 4 errores. De las 80 frases de prueba, 59 frases fueron detectadas globalmente correctamente y 21 resultaron en errores de clasificación. La precisión promedio de este clasificador es del 74% y la recuperación también es del 74%. La tasa de éxito (oraciones correctamente identificadas / número total de oraciones) da un resultado del 74% (59/80) que es relativamente correcto para una primera iteración.

Después de una segunda iteración para completar la capacitación general, el sistema se prueba nuevamente con las oraciones de prueba iniciales. Esta nueva prueba da los siguientes resultados:

TEST_2: resultados de la segunda campaña de prueba

La nueva tasa de éxito es idéntica a la formación anterior, es decir, 59/80 = 74%. La precisión en la prueba de Intención 3 es del 100% y la recall es del 5%. El conjunto de promedios significa que la precisión general de este entrenamiento es del 80% y la recuperación es del 74%, es decir, un aumento del 6% en la precisión y la recuperación idéntica, mientras que el resultado se ha deteriorado bruscamente en la prueba de intención 3, que prácticamente ya no se reconoce. El análisis de la precisión general, por lo tanto, da un resultado positivo, mientras que existe una fuerte degradación de la experiencia del usuario, ya que el sistema prácticamente ya no podrá responder a una categoría de preguntas. Solo el análisis fino de cada intención permite verificar la evolución del sistema después de la nueva capacitación.

Supon que el analista realiza un trabajo adicional en la intención 3 para corregir el problema identificado, aumenta el aprendizaje sobre esta intención y realiza un nuevo conjunto de pruebas.

TEST_3: resultados de la tercera campaña de prueba

La nueva tasa de éxito es del 74%, que es la misma que en las otras 2 pruebas. La precisión es del 87%, un aumento del 7% en comparación con la prueba anterior y la recall es del 74%, un valor que no cambia en todas las pruebas. Para el analista, el sistema muestra una progresión global de la precisión que sugiere una mejora del sistema. Al analizar los resultados con más detalle, podemos ver que la intención 3 ahora se detecta en exceso con casi una precisión para esta intención de 20/41 = 49%, que es inferior a la prueba anterior. Desde el punto de vista del usuario, y esto es lo más importante al final, el sistema da la impresión de activar sistemáticamente la misma acción (50% de las solicitudes con 25% que, sin embargo, están justificadas).

El análisis de los cambios generales en Precisión, por lo tanto, no habría identificado ninguna clasificación errónea. El análisis de la retirada tampoco habría sido concluyente en estos casos, ya que no varió en las 3 pruebas. Desde el punto de vista del evaluador, la distinción entre una no detección o una detección falsa es importante para el análisis de los resultados y para determinar las acciones que se llevarán a cabo en los entrenamientos (crear nuevas intenciones, agruparlas, agregar oraciones a intenciones…).

Sin embargo, desde la perspectiva del usuario final, lo importante es que el sistema responde correctamente la mayor parte del tiempo y el análisis general de estos valores habría omitido errores que habrían penalizado la experiencia del usuario. Por supuesto, el rendimiento del clasificador debe ser globalmente equilibrado. Sin embargo, se puede prever una detección menos buena en solicitudes menos frecuentes. Entonces es necesario correlacionar los resultados con la frecuencia de las solicitudes, pero este es otro tema.

Un enfoque en sistemas desequilibrados

Al probar el rendimiento de un clasificador, es importante tener en cuenta el equilibrio de los conjuntos de prueba y, si es posible, tener el mismo número de valores de prueba en cada intención.

Para resaltar esto, vamos a ver otro ejemplo. Estamos realizando una prueba de detección, pero no tenemos un sistema equilibrado ya que el número de oraciones de prueba varía según la intención: la intención 1 tiene solo 10 oraciones de prueba, la intención 2 tiene 20, la intención 3 es la más completa con 45 oraciones e intención 4 tiene solo 5 oraciones.

La prueba da los siguientes resultados:

Resultados de la primera prueba

Tenemos los siguientes indicadores: precisión = 86%, recuperación = 84% y tasa de éxito = 86%. Para equilibrar los resultados, es necesario introducir la noción de indicador ponderado. Los valores de los respectivos indicadores de las diferentes clases deben multiplicarse por la razón de las oraciones utilizadas para la prueba. La relación de intención 1 es 10/80 = 0.125. Los indicadores ponderados son entonces Precisión ponderada = 87% y Recall ponderada = 86%.

Modificamos la capacitación para tratar de mejorar nuestro sistema.

Resultados de la segunda prueba

Los indicadores tienen los siguientes valores: precisión = 80%, recuperación = 89% para una tasa de éxito del 90%. La precisión ponderada es del 93% y la recall ponderada es del 90%. En el cálculo sin ponderación, habríamos visto una disminución del 6% en la precisión, mientras que el sistema ha mejorado en general, lo que se muestra por el valor ponderado, ya que vemos una mejora del 7% en la precisión. Esta diferencia muy importante proviene del hecho de que el peso de la instancia 4 es idéntico a las otras clases, mientras que el número de pruebas es bajo para esta instancia. El bajo número de pruebas para la instancia 4 significa que el impacto de un mal resultado da mucho peso a los resultados de la prueba para esta instancia, que se destaca aquí.

¿Qué indicador (s) elegir entonces?

Hemos visto que los indicadores de precisión y recuperación no destacan los errores de clasificación localizados, lo que puede penalizar a todo el sistema. En el caso de TEST_3, el sistema detecta una mala intención en una cuarta parte de las solicitudes, lo que seguramente conducirá al rechazo del asistente conversacional. Además, Precisión y recall se centran en 2 ejes diferentes: el primero resalta los problemas de falsos positivos cuando el segundo resalta los problemas de falsos negativos. Para el usuario, esto sigue siendo una respuesta incorrecta y, por lo tanto, necesitamos un nuevo indicador que tome para agrupar estos dos ejes.

Este indicador existe (aunque no es demasiado visible) y es el Critical Success Index (CSI, por sus siglas en inglés) más bien utilizado en el pronóstico del tiempo en otros lugares. También se llama Threat Score TS. El CSI es una medida de verificación del rendimiento para detecciones categóricas. Es igual al número total de pronósticos de eventos (TP) correctos dividido por el número total de detecciones falsas (FN + FP) a las que se agrega TP para obtener una relación de rendimiento.

Para finalizar nuestras pruebas antes de entrar en funcionamiento, estamos llevando a cabo una nueva capacitación que mejora globalmente nuestro modelo, colocándolo en un nivel completamente operativo con una precisión del 90%, una recuperación del 89% y una tasa de éxito del 89%.

TEST_4: resultados de la cuarta campaña de prueba

Luego calculamos varios indicadores que encontrarás en esta página de Wikipedia.

Valores del indicador de rendimiento para las diferentes pruebas.

Un estudio de la tabla muestra que ningún indicador realmente resalta los problemas de los clasificadores TEST_2 y TEST_3. Solo los indicadores CSI, F1-score, Matthews Correlation Coefficient (MCC) y el índice de Fowlkes-Mallows destacan una disminución de la calidad en el clasificador TEST_2. No hay indicador para detectar el problema TEST_3. El indicador CSI es el más cercano a una expectativa del rendimiento general del sistema, lo que lo convierte en un indicador más relevante que Precisión, Recall e incluso Accuracy.

Dado que los indicadores no dan ninguna indicación, estamos obligados a mirar los detalles de las pruebas de valores para cada intención a fin de determinar qué intenciones son problemáticas.

Clasificador de puntuaciones por intención

Dado que este trabajo es tedioso en una gran cantidad de pruebas y para muchas intenciones, propongo usar un indicador de dispersión llamado coeficiente de variación (o desviación estándar relativa). Este indicador se define como la relación entre la desviación estándar y la media [3]. Este número sin unidad permite una comparación entre varias series, lo que lo hace interesante para pruebas automatizadas. Sin embargo, este valor debe ajustarse para tener en cuenta el pequeño número de muestras. La fórmula para este indicador es la siguiente:

Coeficiente de variación imparcial

El cálculo de este indicador para nuestras 4 pruebas arroja los siguientes resultados para precisión, recuperación y CSI:

Resultados del cálculo de los coeficientes de variación ajustados para los indicadores de precisión, recuperación y CSI y resaltado del valor máximo

Por lo tanto, superar un umbral (por ejemplo, 20%) de uno de estos 3 valores puede usarse para informar al analista de un problema de calidad de la capacitación. Este indicador complementa el análisis clásico de los indicadores de rendimiento, es decir, baja precisión general, por ejemplo. Cuando se alcanza el umbral, es aconsejable analizar los resultados más de cerca para determinar la(s) intención (es) problemática (s) y así ver cómo modificar el entrenamiento, o incluso rechazar el nuevo entrenamiento.

Conclusión

En el área de los asistentes conversacionales, una de las causas del rechazo de los sistemas es cuando no reconocen correctamente las solicitudes. Por lo tanto, es importante probar el rendimiento de tu asistente antes de publicarlo y ponerlo a disposición de los usuarios. Hemos visto cómo calcular los valores de Precisión y Recall para un sistema de varias clases y lo importante que es ponderar los valores cuando el número de oraciones de prueba no está equilibrado. Sin embargo, los indicadores de precisión y recuperación, los más utilizados en el aprendizaje automático, no nos permiten concluir si un sistema no contiene un error en uno o más intentos, ya que solo estamos estudiando un valor global.

Por lo tanto, te invito a completar tu caso agregando el indicador CSI, que es más relevante para las expectativas del usuario, es decir, un asistente que responde correctamente con la mayor frecuencia posible (independientemente del error tipo I o II). Completa este indicador calculando el coeficiente de variación ajustado (imparcial) para precisión, recall y CSI. Establecer un umbral de alerta en el máximo de estos 3 valores te permite resaltar un problema de aprendizaje sin tener que verificar los indicadores uno por uno y así ahorrar tiempo en el análisis de tus iteraciones de entrenamiento.

Referencias

[1] Precisión y exhaustividad— Wikipedia — https://es.wikipedia.org/wiki/Precisi%C3%B3n_y_exhaustividad

[2]. Validación cruzada — Wikipedia — https://es.wikipedia.org/wiki/Validaci%C3%B3n_cruzada

[3]. Coeficiente de variación — Wikipedia — https://es.wikipedia.org/wiki/Coeficiente_de_variaci%C3%B3n

The post En tecnología conversacional, la Precisión y el Recall no son (en verdad) tus mejores amigos first appeared on Planeta Chatbot.

]]>
https://desa.planetachatbot.com/tecnologia-conversacional-precision-y-recall/feed/ 0
Inteligencia Artificial conversacional para desarrolladores: los cuatro niveles de complejidad https://desa.planetachatbot.com/inteligencia-artificial-conversacional-para-desarrolladores-cuatro-niveles-de-complejidad/?utm_source=rss&utm_medium=rss&utm_campaign=inteligencia-artificial-conversacional-para-desarrolladores-cuatro-niveles-de-complejidad https://desa.planetachatbot.com/inteligencia-artificial-conversacional-para-desarrolladores-cuatro-niveles-de-complejidad/#respond Wed, 15 Jul 2020 13:26:58 +0000 https://desa.planetachatbot.com/?p=7400 Cuándo quieres construir una solución de tecnología conversacional basada en IA, es importante tener en cuenta que los diálogos generalmente siguen patrones, secuencias de etapas y que estas etapas son más o menos complejas. Introducción Un asistente conversacional es un programa informático que simula el comportamiento humano respondiendo preguntas hechas por una persona y generalmente […]

The post Inteligencia Artificial conversacional para desarrolladores: los cuatro niveles de complejidad first appeared on Planeta Chatbot.

]]>
Cuándo quieres construir una solución de tecnología conversacional basada en IA, es importante tener en cuenta que los diálogos generalmente siguen patrones, secuencias de etapas y que estas etapas son más o menos complejas.

Introducción

Un asistente conversacional es un programa informático que simula el comportamiento humano respondiendo preguntas hechas por una persona y generalmente se utiliza para brindar asistencia a esas personas. Estos asistentes son comúnmente conocidos como chatbots. Este término se refiere a asistentes que se dedican a conversaciones versátiles, simuladores de relaciones humanas. Sin embargo, el término chatbot es ampliamente utilizado y más asociado con este tipo de tecnología.

Algunos analistas estiman que hay entre 1,000 y 1,500 proveedores en todo el mundo que pueden hacer este tipo de sistemas y tengo una lista de más de 450 soluciones a fines de mayo de 2020. Cada una de estas soluciones tiene sus características, sus diferentes capacidades de procesamiento y cada uno dice tener la mejor plataforma del mundo. Entonces, ¿cómo podemos distinguir entre las soluciones? ¿Qué hace que una solución sea mejor que otra y que hace posible resolver los casos comerciales que se están considerando? El criterio que presento aquí me permitirá distinguir los diálogos de acuerdo con la forma en que se llevarán a cabo globalmente, de acuerdo con el nivel de interacción que el sistema tendrá con los usuarios. Es importante comprender las etapas que componen los diálogos.

Cuando hablamos de diálogos, estamos hablando de un número realmente infinito de variaciones posibles, por lo que necesitamos un marco general que guíe nuestro diseño. Al construir un diálogo, es necesario tener un marco de referencia compartido para que los expertos en soluciones y los expertos en negocios puedan entenderse entre sí. Deben poder ponerse de acuerdo sobre cómo modelar el diálogo a nivel mundial y al mismo tiempo verificar si se puede transcribir en el sistema de destino. Te proporciono este sistema de referencia aquí.

¿Qué es un diálogo?

Antes de abordar su complejidad, primero es necesario definir qué es un diálogo. La palabra diálogo se refiere a un tipo de comunicación entre varias personas, la mayoría de las veces en forma verbal, la forma más sencilla de comunicarse. El diálogo se refiere a un modo de conversación que requiere razón, discernimiento, precisión y sabiduría, así como una interpretación de argumentos convergentes y convincentes para que la discusión conduzca a algo. Cabe señalar que el diálogo verbal es la forma de comunicación que consume la menor cantidad de energía.

El diálogo es un intercambio de puntos de vista, una confrontación que permite acceder a una verdad a través de él. El origen etimológico griego de la palabra diálogo se refiere a un concepto que se puede traducir como “seguir un pensamiento” (dialogos : de dia “a través” y logos la “palabra”).

Un diálogo debe tener un propósito, un mensaje que transmitir y un objetivo final. El propósito puede ser responder una pregunta, ayudar a tomar una decisión o llevar a cabo una acción en nuestro lugar o en el de otra persona. A menudo se lo conoce como un asistente orientado a la actividad para distinguirlo de los “chatbots” que se encuentran en un dominio diferente al que aborda este marco de referencia.

A diferencia del diálogo, que se construye, la conversación es un intercambio natural y espontáneo de ideas, más entretenimiento, no confrontación. La conversación es un poco como “dejarse hablar”. No hablamos cuando hablamos del clima, ¡hacemos conversación! La conversación debe distinguirse esencialmente por su aspecto naturalmente juguetón y frívolo. El propósito social de la conversación es reunir, conectar e intercambiar entre 2 personas. En la retórica de la conversación, hay frases preparadas como: “¿Estás seguro?”, “¡Eso no es posible!”.

La conversación tiene muchos sinónimos que ilustran este lado frívolo: charlar, cotillear, parlotear… Los franceses tienen muchas palabras para este tipo de converesaciones: bavardage, papotage, racontage, commérage, babil, potinage, ragot, causette, causerie, jacasserie, jamesserie, commérage, caquetage… Si paseas por las calles de París y ves las terrazas de los cafés, encontrarás muchas personas en plena conversación. En las pequeñas aldeas provinciales en los bancos de las plazas también, lo que muestra el apetito de los humanos por este tipo de ejercicio.

En el resto de este artículo y cuando hablo de diálogos, me refiero a los intercambios entre un humano (el solicitante) y un asistente virtual (el encuestado) en un intento por lograr un objetivo común.

Las etapas de los diálogos

Al igual que un guionista que escribe una obra de teatro o un diálogo cinematográfico, es necesario seguir un marco general que permita concebir el diálogo con el asistente.

Un diálogo normalmente pasa por 3 etapas: Apertura, intercambio y cierre.

El inicio de la conversación (conventional operning) permite al asistente presentarse y, en general, indicar cuáles son sus habilidades. A veces, el sistema puede proponer los temas o preguntas más frecuentes.

Las Etapas del diálogo o dialogue stages tratan de hacer que el objetivo del diálogo sea un éxito. Está compuesto por una serie más o menos larga de oraciones o información transmitida en lenguaje natural. Comienza con la pregunta o consulta del usuario y termina con la respuesta o ejecución vinculada con la consulta. Las preguntas pueden ser preguntas de tipo de soporte informático, preguntas sobre productos, consultas sobre reglas de operación, etc. Las consultas se refieren a acciones que el usuario desea que el sistema realice: encender una luz, reproducir una lista de reproducción, obtener una rotación de una base de datos, solicitar vacaciones, obtener el pronóstico del tiempo para el día siguiente, etc.

El cierre convencional o conventional closing permite al asistente concluir con un saludo cortés o incluso una invitación a nuevos intercambios.

El intercambio a veces se ve interrumpido por un cambio inesperado de tema. Estos cambios introducen pasos adicionales en el curso (normalmente planificado previamente) del diálogo. En un diálogo con un asistente, estos son algunos de los cambios más comunes:

  • La Social Interaction que consiste en que el usuario cuestione el sistema en un nivel más “personal”. “¿Cómo te llamas?”, “¿Eres una niña o un niño?”
  • La definición que consiste en pedir la definición de una palabra durante el diálogo. “¿Qué es el vidrio unidireccional?”
  • La digresión que consiste en cambiar de tema, ya sea temporal o permanentemente.
  • El proceso de desambiguación, que está más del lado del sistema y que consiste en pedir una aclaración de la información porque uno duda entre varias opciones. “¿Quieres dejar un permiso o posponerlo?”
  • El “Fuera de alcance” o “off of scope”, que corresponde a iniciar una discusión sobre un tema que no está dentro del área de competencia del sistema.

En el contexto específico de las interacciones vocales, debe tenerse en cuenta que estos cambios genéricos se complementan con una serie de eventos que son específicos del contexto sonoro, como la solicitud de pausa, la solicitud de repetir la oración, la falta de comprensión, etc. “¿Puede repetir la pregunta?”, “Espere, tengo otra llamada telefónica”.

Los sistemas de administración del asistente conversacional administrarán estos cambios de manera más o menos automática y con más o menos libertad para el diseñador. Siguiendo el sistema, podrá cambiar, más o menos, comportamientos y frases preconfigurados. El manejo adecuado de estos eventos es una garantía de un sistema que brinda una mejor experiencia de usuario.

Sistemas de diseño

El primer sistema para construir asistentes de conversación es ELIZA (Weizenbaum, 1966) [1]. Es un sistema relativamente simple que busca coincidencias en las oraciones y permite la sustitución de ubicaciones por valores recuperados de la oración. Para hacer esto, el diseñador debe construir la oración en respuesta indicando qué porción (index) de la pregunta debe reutilizar para completar la respuesta. Esta realidad nos demuestra que reproducir el comportamiento humano de comunicarse, usando un sistema informático, no es algo novedoso (¡54 años!).

Por Autor desconocido — http://www.le-grenier-informatique.fr/medias/images/eliza-title.jpg, Dominio Público

Este campo, que ha sido relativamente confidencial hasta ahora, se ha convertido en un tema del que todos hablan en los últimos años con la reciente explosión en el rendimiento de los algoritmos de IA (especialmente el reconocimiento de voz) y la explosión de las redes sociales. Es importante agregar el lanzamiento público “muy reciente” de un asistente de conversación llamado Siri (Apple, 2010–2011), el asistente personal de Apple que complementa la funcionalidad del iPhone. Otro evento también ha cambiado el juego: la creación de Watson por IBM. El nombre del primer CEO de IBM, Thomas J. Watson, fue diseñado originalmente para aparecer en el programa de televisión estadounidense “Jeopardy”, donde venció a dos de los ex campeones en 2011 en su propio dominio: comprensión de oraciones. Posteriormente, Watson se dividió en varios servicios que ahora están disponibles en el entorno Cloud de IBM.

Además de las etapas de apertura y cierre, que están relativamente enmarcadas, es necesario configurar la serie de intercambio para poder gestionar el diálogo como un todo. Los sistemas para crear asistentes tienen su propia lógica global y sus propias herramientas para modelar los intercambios. Dado que la herramienta condiciona la forma de configurar el intercambio, el error más común es querer usar la interfaz directamente para diseñar estos diálogos. Terminamos con el síndrome del desarrollador que hace su programa sin especificaciones y que diseñará su aplicación a medida que avanza. Pierde de vista el contexto, corre el riesgo de olvidar casos y, por lo tanto, corre el riesgo de entregar un sistema descoyuntivo y no coherente, lo que conducirá a una mala experiencia del usuario. Por lo tanto, es más que deseable trabajar en el modelado de interacciones desde arriba.

Tecnología basada en IA

Sería un error pensar que los sistemas actuales están completamente administrados por AI. La mayoría de los sistemas utilizan solo dos etapas utilizando técnicas de machine learning: reconocimiento de intención (lo que quiere el usuario) y extracción de entidades (los parámetros de la solicitud, por así decirlo). Para esto, se enseña a la máquina a reconocer (generalizar) grupos de oraciones similares dando ejemplos de oraciones con el mismo significado (intención). Del mismo modo, la máquina está entrenada para extraer palabras de la oración al etiquetar ejemplos de oraciones. Una vez que se ha logrado el reconocimiento de la fase y sus elementos importantes, los algoritmos “clásicos” entran en juego mediante la ejecución de una serie de condiciones, o mediante una máquina de estados que desencadena una o más acciones.

Actualmente, entrenamos los sistemas usando oraciones. La investigación actual ahora se centra en aprender de los diálogos (sistemas de extremo a extremo [2]) o en el uso de gráficos de conocimiento (QA basado en el conocimiento) con generación automática de respuestas [3]. Por el momento, estos sistemas permanecen inestables a largo plazo y aún no se pueden implementar en la producción debido a la falta de datos, sesgo de aprendizaje, dificultad para hacer coincidir la pregunta con el gráfico, etc. La generación automática de oraciones de respuesta usando representación semántica sigue siendo relativamente complicada de configurar e implementar. Esta disciplina del procesamiento automático del lenguaje natural está más presente en la generación automática de informes meteorológicos, artículos [4] o informes financieros.

Los 4 niveles de complejidad

Para ayudar a diseñar los intercambios entre el usuario y el sistema, propongo 4 niveles de complejidad de diálogo. Estos niveles van desde el diálogo más simple hasta el más complejo. Cada nivel corresponde a una tipología de intercambios fácil de identificar y correspondiente a una tipología de parametrización.

La escala de complejidad del diálogo

Nivel 1: Diálogo simple

El nivel 1 corresponde a un nivel de diálogo de preguntas frecuentes (sistemas de preguntas y respuestas). El intercambio entre el usuario y el asistente conversacional comienza con una pregunta y termina inmediatamente con la respuesta a la pregunta. El intercambio tiene solo una interacción. El sistema analiza la pregunta, estima la intención más probable y proporciona la respuesta correspondiente a la intención. Estos sistemas reemplazan las páginas clásicas de preguntas frecuentes de los sitios web.

Ejemplos de diálogos de nivel 1

Casi todas las soluciones cubren este nivel de complejidad. En este nivel, existen soluciones antiguas que no han evolucionado y algunas nuevas empresas que se están iniciando y optan por comenzar en este nivel, el más fácil. En estos sistemas, el diseñador simplemente tiene que asociar la respuesta con la intención. La mayor parte del trabajo es identificar el conjunto de preguntas en el dominio y escribir la respuesta asociada. Para una buena experiencia de usuario, se recomienda limitar el tamaño de la respuesta al tamaño de la ventana donde se realizan los intercambios.

Como el trabajo de búsqueda de respuestas lleva mucho tiempo, estos sistemas pronto serán reemplazados por sistemas automáticos de autoaprendizaje capaces de extraer automáticamente las respuestas en textos de ejemplos (Sistemas de preguntas y respuestas de dominio abierto, DeepPavlov 2018 y recientemente DrQA Facebook 2020 ) o capaz de generar la respuesta con la representación gráfica del conocimiento generado a partir de una documentación. Los gráficos se han generado automáticamente a partir de la extracción de entidades y relaciones.

Este nivel 1 es rápidamente decepcionante para el usuario que no tiene la posibilidad de interactuar con el sistema o ejecutar acciones complejas. Notamos un abandono de soluciones que solo pueden manejar este nivel. Un nivel intermedio (complejidad 1.5) mejora la experiencia del usuario al permitirle hacer una pregunta de followup

Ejemplo de diálogo de nivel 1.5

La intención inicial y las posibles entidades se mantienen en el contexto del diálogo, lo que permite al usuario hacer una pregunta de seguimiento relacionada con el contexto de la primera pregunta.

Nivel 2: dialogo slot-based

El Nivel 2 sigue al Nivel 1 al agregar capacidades de intercambio de recuperación de datos a los diálogos de preguntas y respuestas. Después de una solicitud del usuario, el sistema encadenará una serie de preguntas para poder, por ejemplo, ejecutar una acción, recuperar el estado de un comando, crear un valor en una base de datos, enviar un mensaje, etc. Estos intercambios son llamados sistemas de diálogo basados en espacios, ya que el principio es llenar espacios libres con valores de los intercambios con el usuario.

El objetivo final es recuperar todos los parámetros obligatorios que permitirán llamar al servicio, un servicio web con mayor frecuencia, que permite la ejecución de la acción solicitada. El sistema trabajará para recuperarlos haciendo una pregunta definida por el diseñador para cada uno de los parámetros. En algunos sistemas, es posible configurar varias preguntas diferentes para recuperar el mismo valor. Mientras haya valores vacíos, el sistema continuará haciendo las preguntas para todos los elementos faltantes obligatorios. Los datos a recuperar suelen ser valores mecanografiados, entidades, un valor de una lista, una descripción… A veces, el sistema permite la recuperación de documentos: ID, currículum, documento firmado, etc.

Ejemplo de diálogos de nivel 2

Las soluciones DialogFlow de Google, SAP Conversational AI, Botpress, FlowXO, RASA y varias otras son particularmente adecuadas para este tipo de operaciones.

Ejemplo de una interfaz de configuración de nivel 2 en Google DialogFlow

La herramienta facilita la configuración del diálogo al permitir definir la lista de valores a recuperar y asociar una pregunta a cada uno de estos valores. A partir de esta configuración, el sistema gestionará las secuencias de intercambio de forma completa y automática. En soluciones basadas en IA, la detección de un valor en una de las oraciones del intercambio llena automáticamente el valor y, por lo tanto, evita hacer la pregunta. La extracción de entidades nombradas mediante el aprendizaje facilita el trabajo de recuperación y hace posible responder ciertas preguntas sin que el usuario tenga que volver a ingresar la información solicitada. Por ejemplo, la frase “Dime el pronóstico para Brooklyn para el próximo fin de semana” permitirá que la predicción del clima se obtenga directamente sin que el sistema tenga que hacerle preguntas adicionales al usuario, ya que tiene toda la información requerida en la solicitud inicial.

Ejemplo de procesamiento de la consulta de un usuario

Nivel 3: Diálogo basado en árbol de decisión

El nivel 3 completa los niveles anteriores de una capacidad para adaptar los intercambios según las respuestas o el contexto o según los elementos recuperados desde fuera del sistema (software de gestión de relaciones con el cliente, base de datos, etc.). El conjunto forma un árbol de decisión con nodos que corresponden a acciones y ramas que corresponden al contexto de la conversación. Las soluciones basadas en árboles de decisión son las más representativas del estado del arte hasta la fecha.

El objetivo del intercambio es dar la respuesta más adecuada y contextualizada posible. Esta respuesta puede ser la resolución de un problema o la ejecución de una acción precisa y parametrizada al final del intercambio. La ventaja del nivel 3, en comparación con el nivel lineal 2, es que es posible seguir una serie de pasos que combinan preguntas, respuestas, condiciones, recuperación de valores, ejecución de acciones intermedias, etc. El nivel 3 es un nivel muy lineal. Un nivel completo 3 permite la inclusión de los niveles de complejidad 1 y 2 durante la discusión. A diferencia del nivel 2, donde el estado de la conversación está vinculado al llenado de pares de valores, el nivel 3 convierte el estado de la conversación a través de la rama seguida de las decisiones tomadas en cada intercambio.

El diálogo se modela como un árbol que consiste en una raíz, nodos y ramas que conectan los nodos entre sí. La raíz corresponde al inicio del intercambio. Los nodos son condiciones o acciones. Las hojas terminan los intercambios. Los nodos son los elementos más importantes del árbol. Pueden corresponder a condiciones en los datos de contexto, preguntas que se le harán al usuario o respuestas dadas por el usuario o consejos a dar, llamadas a servicios externos, pruebas de entidades, etc. Los nodos son los elementos más importantes del árbol. Las herramientas en el mercado permiten más o menos variabilidad en estos tratamientos.

Ejemplo de diálogo de nivel 3

Se utilizan varias técnicas para realizar diálogos de nivel 3: a través de un lenguaje de programación estándar, un motor de estado, un motor de reglas y context manager. Varias soluciones en el mercado tienen un editor gráfico que permite modelar el árbol de conversación. El editor de árbol (s) de diálogo gráfico es sin duda la forma más fácil de visualizar las diferentes variaciones de preguntas y acciones, y la solución más accesible para aquellos que no saben programar. Las capacidades de diálogo más o menos avanzadas dependen de las capacidades de parametrización de la herramienta. El uso de un lenguaje de programación es realmente la solución más eficiente, pero también la más lenta en reactividad, ya que la persona que programa generalmente no es la que tiene el conocimiento comercial (el experto en la materia).

Dado que los asistentes de conversación están por encima de todos los sistemas que deben hablar el idioma de los usuarios, la velocidad de modificación es, por lo tanto, un criterio de agilidad importante. La rápida mejora de los diálogos permite que el sistema se adapte a nuevas interacciones, malentendidos y cambios en la respuesta. También hay soluciones que permiten modelar gráficos de diálogo. A diferencia del árbol, estos sistemas permiten realizar bucles, llamar módulos y, por lo tanto, permiten reutilizar secuencias de diálogos ya construidos.

Nivel 4: Diálogo Domain-Based

El nivel 4 abarca todos los niveles al traer la noción de diálogos multidominio. En un intercambio, este último nivel aparece cuando el usuario solicita información que requiere varias habilidades y, por lo tanto, cuando el sistema debe poder administrar varios dominios comerciales diferentes. En el enfoque de un asistente conversacional que vendría a acompañar a los empleados de una empresa, esta última inevitablemente tendrá que gestionar más y más preguntas en dominios cada vez más múltiples: soporte de TI, recursos humanos, proyectos internos, sociales, etc. En este contexto, este sistema debe poder determinar el dominio comercial afectado por una solicitud, desambiguarlo si se trata de varios dominios y administrar digresiones entre dominios.

Otra característica de este nivel es que algunos diálogos pueden ser diferentes dependiendo de ciertas características del usuario. Por ejemplo, un gerente de recursos humanos podrá acceder a respuestas específicas de su dominio, mientras que un usuario externo a la empresa no podrá acceder a las reglas internas de la empresa. Si hace la misma pregunta que el gerente, obtendrá una respuesta diferente, o incluso una respuesta que indique que no tiene derecho a saber la respuesta a esta pregunta. Este nivel responde a una necesidad natural de poder hacer preguntas relacionadas con varias áreas de negocios en la misma interfaz de acceso en lugar de tener que ir a otro sitio web o página para acceder a otro asistente virtual. o incluso una declaración que indique que no tiene derecho a saber la respuesta a esta pregunta.

Ejemplo de diálogo de nivel 4 (área de negocios de Aduanas y Fronteras y Seguridad Social)
Ejemplo de diálogo de nivel 4 (con desambiguación de dominio)

Por razones de rendimiento y mantenimiento, los asistentes conversacionales generalmente se crean para manejar bien solo un área comercial. El rendimiento está relacionado con el sistema de clasificación de las solicitudes de los usuarios, que requiere muchas oraciones de muestra en relación con la cantidad de preguntas típicas que se deben manejar. Cuantas más clases de intención hay, más datos representativos son necesarios para permitir un buen reconocimiento de la pregunta del usuario. Esta clasificación generalmente se lleva a cabo utilizando una red neuronal supervisada basada en una vectorización de un conjunto de oraciones de entrenamiento. Cuantas más funciones tenga la red, más datos de entrada necesitará. Esta clasificación, es un buen consejo (regla general) para tener al menos 10 veces el número de oraciones por número de características. Para 5,000 tipos de preguntas, esto significa capacitar a la red con al menos 50,000 oraciones de ejemplo para que la precisión del reconocimiento sea relevante.

IBM, por ejemplo, ha limitado el número de intents a 2,000 para 25,000 utterances para una skill en Watson Assistant [5]. DialogFlow limita a 100.000 uterrances para el mismo número máximo de intents. De hecho, esto limita el número de preguntas que puede manejar un solo asistente. Además, desde el punto de vista comercial, también se hace difícil separar las oraciones en sus respectivas intenciones cuando el número de preguntas a manejar se vuelve muy grande. Al final, es importante no olvidar la noción de mantenimiento y la capacidad de actualizar toda la información. Cuantos más datos relacionados haya en un dominio (intentos y entidades), más complicado será determinar los impactos de una modificación. Además, los equipos de negocios generalmente están especializados en su campo y no pueden crear los diálogos para otros dominios de negocios, lo que implica diferentes puntos de vista o incluso diferentes instancias.

Este es sin duda el nivel de soluciones más reciente y menos cubierto hasta la fecha. DialogFlow llama al componente para gestionar este nivel un Mega Agent [6] y Kore.ai los Asistentes Virtuales Universales [7].

Conclusión

Espero que a través de este artículo veas la organización de los diálogos de los asistentes conversacionales bajo un punto de vista diferente. La historia de esta tecnología es antigua y muy reciente y se encuentra cada vez más en nuestra vida cotidiana: en la oficina, en nuestro automóvil, en nuestro salón y en nuestro teléfono móvil. Los niveles de complejidad que he detallado están ahí para ayudarnos a determinar cómo diseñar diálogos y cómo modelarlos. Desde el nivel 1 más simple hasta el nivel 4, que representa el nivel más complejo de la escala actual. Paralelamente a estos niveles, está la constitución de un contexto de conversación cuya vida útil nos permite contextualizar las interacciones y llegar hasta establecer un asistente personal que nos pueda acompañar a lo largo de nuestra vida privada y profesional.

Referencias

[1]. ELIZA. From Wikipedia, the free encyclopedia. https://es.wikipedia.org/wiki/ELIZA

[2]. Antoine Bordes, Y-Lan Boureau, and Jason Weston. 2017. Learning end-to-end goal-oriented dialog. In Proceedings of the International Conference on Learning Representations (ICLR)

[3]. Alibaba Clouder. Progress in Dialog Management Model Research. April 20, 2020. https://www.alibabacloud.com/blog/progress-in-dialog-management-model-research_596140

[4]. New-York Times. The Rise of Robot Reporter. https://www.nytimes.com/2019/02/05/business/media/artificial-intelligence-journalism-robots.html

[5]. IBM Cloud documentation. Watson Assistanthttps://cloud.ibm.com/docs/assistant-data

[6]. Google DialogFlow documentation. Mega Agents betahttps://cloud.google.com/dialogflow/docs/agents-mega

[7]. Kore.ai. Universal Virtual Assistants: Orchestrate Tasks From Multiple Specialized Virtual Assistantshttps://kore.ai/platform/features/universal-bots/

The post Inteligencia Artificial conversacional para desarrolladores: los cuatro niveles de complejidad first appeared on Planeta Chatbot.

]]>
https://desa.planetachatbot.com/inteligencia-artificial-conversacional-para-desarrolladores-cuatro-niveles-de-complejidad/feed/ 0