La construcción de una chatterbot inicialmente parece bastante simple. Internet está lleno de ejemplos y es fácil armar algo. En el mundo real (es decir, de producción), la vida es más complicada.
Los programadores de computadoras hacen suposiciones sobre el comportamiento del usuario. Establecemos las invariantes del sistema y las aplicamos a través de UI, reglas de validación y manejo de errores. La vida es predecible. Desafortunadamente Chatbots, como todos los bots, deberían comportarse como humanos, no como sistemas informáticos.
Esperamos que los chatbots se encarguen de todo lo que se les arroje. En esta publicación, cubriré las cosas en las que debemos pensar al construir un grado de producción. chatterbot. En particular, voy a explicar por qué necesitamos construir diálogos adaptativos.
Los conceptos de esta publicación se aplican a todos los principales motores de chatbot (Rasa, Google Dialogflow, Amazon Lex, etc.).
La mayoría de los chatbots se basan en flujos de diálogo predefinidos, creados para cumplir un objetivo específico. Tomemos un ejemplo simple:
Larva del moscardón: ¿cómo puedo ayudar?
Usuario: Necesito un extracto bancario duplicado
Larva del moscardón: ok que año?
Usuario: 2020
Larva del moscardón: ¿cual mes?
Usuario: podrían
Este sencillo ejemplo se puede servir utilizando la intención clásica de mapeo de diálogo. En este escenario, la frase inicial "Necesito un extracto bancario" desencadena un cuadro de diálogo predefinido. El diálogo tiene dos turnos / ranuras, solicitando el mes y el año.
Incluso este ejemplo no es tan simple como parece. ¿Qué sucede si la conversación es así?
Larva del moscardón: ¿cómo puedo ayudar?
Usuario: Necesito un extracto bancario duplicado para mayo de 2020
Larva del moscardón: ok que año?
Usuario: te lo acabo de decir
Si ahora le preguntamos al usuario en qué mes y año parecemos estúpidos. El flujo de diálogo debe adaptarse. La solución más común para esto es usar una combinación de Reconocimiento de entidad nombrada y relleno de ranura. En este caso, necesitamos llenar dos "espacios": mes y año. Primero asignamos las ranuras a las indicaciones:
año ➞ que año?
mes ➞ que mes?
A continuación, realizamos el reconocimiento de entidades nombradas. (NER) en el texto del usuario, tratando de llenar ambos espacios. En el ejemplo anterior, "extracto bancario" activa el diálogo y NER llena los espacios de año y mes. "¿qué año?" y "¿qué mes?" no se le pedirá.
1. Informe de tendencias de chatbot 2021
2. 4 HACER y 3 NO HACER para entrenar un modelo de PNL Chatbot
3. Bot Concierge: Maneja múltiples chatbots desde una pantalla de chat
Hasta aquí todo bien. ¿Qué sucede si la conversación es así?
Larva del moscardón: ¿cómo puedo ayudar?
Usuario: Necesito un banco duplicado del último mes
Larva del moscardón: ok que año?
Usuario: este año por supuesto
Esto se vuelve más difícil. Es poco probable que el reconocimiento de entidad nombrada funcione para "el mes pasado". Podríamos entrenar explícitamente el modelo NER para este escenario, pero es probable que sea frágil. Necesitamos otro enfoque. Un enfoque es intentar NER primero y si esto falla, recurrir a Parte del discurso etiquetado y Análisis de dependencia.
Parte del discurso (POS) el etiquetado nos dice que "banco", "extracto" y "mes" son sustantivos. El análisis de dependencias nos dice que "banco" y "extracto" forman una sustantivo compuesto; "Último" califica "mes" y "extracto bancario" es el Objeto de preposición a "mes". Si juntamos todo esto, podemos entender la intención de los usuarios:
Parte del etiquetado de voz y el análisis de dependencias es mucho más complejo que el simple NER, pero también es mucho más flexible.
Tomemos otro ejemplo, esta vez minorista. Imagine que tenemos una tienda de ropa y queremos recomendar productos a nuestros clientes. Primero le hacemos algunas preguntas al usuario para comprender sus deseos. Para este ejemplo asumiremos que necesitamos llenar estos "espacios":
- PRODUCTO
- papa
- marca
- material
- color,
- tamaño
- precio
Podemos usar una combinación de reconocimiento de entidad nombrada, etiquetado de parte de voz y análisis de dependencia para llenar estos espacios. Es de esperar que el sistema sea lo suficientemente inteligente como para adaptarse, llenando más de un espacio a la vez.
"Quiero un vestido negro de talla 8"
En el ejemplo anterior, no es necesario que preguntemos por el producto, el color o el tamaño, pero sí debemos hacer 4 preguntas adicionales.
¿Realmente necesitamos capturar 7 piezas de información antes de mostrar algunos resultados? Corremos dos riesgos:
- Podemos obligar al usuario a ser tan específico que no podamos encontrar coincidencias en nuestra base de datos.
- El diálogo puede ser tan largo que el usuario se aburra y se rinda.
Tal vez decidamos centrarnos en los atributos / espacios que absolutamente necesitamos. Quizás tipo de producto, precio y tamaño. Después de todo, no tiene mucho sentido ofrecer a alguien algo que no puede pagar o que no le queda bien.
Sin embargo, tenemos que preguntarnos qué valor estamos agregando. Una simple búsqueda por facetas en el sitio de comercio electrónico lograría los mismos resultados. También corremos el riesgo de no calificar la necesidad. Por ejemplo, si el usuario pide un vestido que cueste menos de £ 500, podemos encontrar cientos de coincidencias.
Idealmente queremos lograr tres objetivos:
- Satisfacer las necesidades del usuario
- Ofrecer valor real, más allá de lo que se puede lograr a través de otros medios (por ejemplo, un sitio web).
- Estimular y retener el interés del usuario (AIDA)
Los primeros y segundos objetivos podrían lograrse utilizando un enfoque basado en reglas con cortocircuito. Hacemos preguntas al usuario, mientras buscamos coincidencias en nuestra base de datos. Cuando somos capaces de ofrecer resultados “suficientes”, dejamos de hacer preguntas y pasamos a mostrar los resultados.
El tercer objetivo no es tan fácil de conseguir. Nosotros podría También use un enfoque basado en reglas, quizás limitando los atributos a 3 para el producto uno, 4 para el producto dos, etc. Sin embargo, esto es una conjetura. En realidad, la capacidad de atención del usuario dependerá de muchos factores, entre los que se incluyen:
- la intención / necesidad
- la hora del día
- el dispositivo utilizado
- cliente nuevo vs cliente habitual / leal
El aprendizaje automático puede ayudarnos aquí. Durante un período de "entrenamiento", construimos los diálogos dinámicamente, probando diferentes permutaciones de ranuras. Como pruebas divididas A / B con esteroides. Registramos todo, incluida la hora del día, la tasa de abandono, las conversiones, etc. Estos datos de comportamiento se pueden utilizar para crear un modelo de aprendizaje automático. Este podría ser un modelo de regresión simple o algo más sofisticado como un árbol de decisiones o un modelo de conjunto.
Cuando tenemos un buen modelo, podemos conectarlo a nuestros diálogos. Introducimos las mismas variables (producto, dispositivo, tiempo, etc.) en el modelo y le pedimos que prediga qué espacios deben llenarse. Por supuesto, esto puede complementarse con un algoritmo basado en reglas. El resultado final es un flujo de diálogo dinámico, que está estadísticamente probado para generar los mejores resultados.
Utilizamos el comercio electrónico minorista como ejemplo, pero este concepto se puede aplicar a cualquier dominio. Volviendo a nuestro ejemplo bancario original, podría preguntar al usuario si quiere un estado de cuenta en papel o electrónico? ¿Quieren una copia certificada? etc. Un modelo de aprendizaje automático podría predecir qué preguntas hacer para obtener los mejores resultados.
Como mínimo, nuestro flujo de diálogo debe ser lo suficientemente inteligente como para evitar hacer preguntas redundantes. Hacemos esto llenando múltiples espacios de cada respuesta de usuario. Solo solicitamos a los usuarios espacios vacíos. El reconocimiento de entidad nombrada puede no ser suficiente. También es posible que debamos emplear el análisis de dependencias y parte del habla para conceptos más complejos.
Por último, debemos pensar detenidamente sobre la información que recopilamos de nuestros usuarios. Si pedimos muy poco, es posible que no podamos ofrecer ningún valor. Si pedimos demasiado, podemos perder su interés o tener dificultades para devolver un resultado. Podemos utilizar modelos de aprendizaje automático para crear flujos de diálogo de forma dinámica, ofreciendo los mejores resultados para cada usuario individual.
Coinsmart. Mejor Bitcoin-Börse en Europa
Source: https://chatbotslife.com/adaptive-chatbot-dialogs-e7f0f19ae3c5?source=rss—-a49517e4c30b—4