Tabla de contenidos
Introducción
En el seminario web de Rasa de marzo de 2021, Beyond the Release Notes, se mencionó la desaprobación intencional. Esto les brinda a los fabricantes la opción de no hacer uso de las intenciones en escenarios en los que se adapta a la narrativa; bastante literal.
Obviamente, los casos de uso se establecerán a medida que aumenten las implementaciones y las conversaciones. Una razón definitiva para la implementación sin intención será aumentar la flexibilidad conversacional y la conciencia contextual.
Dentro de una conversación, hay varios hilos de contexto que se ejecutan simultáneamente.
Por ejemplo, el llenado de formularios es un enfoque rígido. Principalmente un enfoque necesario para hacer cumplir un contexto, para una parte concreta de la conversación.
El enemigo de las conversaciones mapeadas es la digresión.
La digresión es donde el usuario se desvía del camino conversacional establecido y común.
Se puede ver un ejemplo típico en la imagen de la izquierda, donde el usuario está pidiendo una pizza y el chatbot está tratando de saber si el usuario necesita un “extra de queso”.
El usuario pregunta “¿cuánto es?”, y el contexto se pierde para ese punto de la conversación en particular. El bot tiene por defecto:
- Completando el pedido.
- Precio general actual
Mientras tanto, el contexto se pierde, ya que el usuario simplemente desea saber cuánto se cobrará por el queso adicional. Vincular el enunciado del usuario a la respuesta de un bot introduce esta flexibilidad.
Arquitectura de Chatbot 101
Se puede decir que tradicionalmente los chatbots, o agentes de IA conversacionales, están constituidos por una arquitectura de cuatro pilares.
Esta arquitectura es muy universal en las plataformas de chatbot comerciales; siendo:
- Intenciones.
- Entidades.
- Respuestas de bot (también conocido como diálogo Script/Bot).
- Gestión de estado de la máquina (diálogo).
Los cuatro pilares de la arquitectura tradicional de chatbotComo se ve aquí, hay dos componentes: el componente NLU y el componente de gestión de diálogo. En el caso de Microsoft, Rasa, Amazon Lex, Oracle, etc., la distinción y separación entre estos dos es clara y pronunciada. En el caso de IBM Watson Assistant, no es el caso.
El componente NLU está constituido por intenciones y entidades. Y el componente Dialog por las respuestas del bot y la state machine.
El crecimiento del chatbot y por qué los puntos de rigidez deben depreciarse.
Los dos impedimentos para que los chatbots se conviertan en verdaderos agentes de inteligencia artificial son las intenciones y las state machine.
- Por ejemplo, la expresión de un usuario se asigna a una única intención.
- A las intenciones se les asignan puntos de entrada dentro de una state machine rígida para que el bot responda.
Las intenciones pueden verse como verbos o intenciones de usuario y las entidades como sustantivos (ciudades, fechas, nombres, etc.).
Así que está claro con esta rigidez, el progreso se ve gravemente obstaculizado. Rasa está desaprobando tanto las intenciones como las state machine… pero ¿por qué?
El escenario ideal es donde la entrada del usuario se relaciona directamente con una historia de aprendizaje automático que puede aprender y adaptarse a las conversaciones de los usuarios. Rompiendo la rigidez de la arquitectura actual donde el aprendizaje automático solo existe al hacer coincidir la entrada del usuario con las intenciones y las entidades.
¿Rasa es ambicioso? Sí. ¿Es necesario … definitivamente!
Volviendo a las Deprecating Intents
Tradicionalmente, todas y cada una de las entradas imaginables del usuario deben asignarse a una intención particular. Durante la revisión de la transcripción, si la entrada del usuario no coincide perfectamente con una intención existente, es necesario inventar una.
Esta capa estrecha de categorizar la expresión de un usuario de acuerdo con una intención es rígida e inflexible en el sentido de ser un conjunto de categorías que maneja la conversación.
Por lo tanto, dentro de un chatbot, la primera línea de facilitación de la conversación es el reconocimiento de intenciones.
Y aquí radica el desafío, en la mayoría de las plataformas de chatbots hay un modelo de aprendizaje automático que se utiliza para asignar la expresión de un usuario a una intención específica.
Y desde aquí, la intención está vinculada a un punto específico en la state machine (también conocida como árbol de diálogo). Como puedes ver en la secuencia a continuación, el usuario envía el input de “Estoy pensando en comprar un perro” que coincide con la intención Buy Dog. Y desde aquí, las intenciones están codificadas en puntos de entrada de diálogo.
La expresión del usuario se asigna a una intención. A su vez, la intención está vinculada a un punto particular de la máquina de estados.
Las intenciones también son una capa rígida dentro de un chatbot. Cualquier entrada concebible del usuario debe anticiparse y asignarse a una única intención.
Nuevamente, la lista de intenciones es rígida y fija. Posteriormente, cada intención se vincula a una parte del cuadro de diálogo predefinido.
Pero, ¿qué pasa si la capa de intenciones puede quedar obsoleta y la entrada del usuario se puede asignar directamente al cuadro de diálogo?
Este desarrollo es crucial para pasar de un bot que envía mensajes a a una interfaz de IA conversacional.
Esta capa de intenciones es también una capa de traducción que enturbia las el desarrollo del diálogo. Tener intenciones opcionales y ejecutar los dos enfoques en paralelo permite que la conversación use o evite las intenciones.
No Intent Stories
Esta es una de las dos formas de abordar las historias sin intención. A continuación se muestra el enfoque más simple; una conversación sin intención que vive en el mismo archivo de entrenamiento que otras historias basadas en la intención.
Es evidente que la intención y la acción están ausentes.
- story: No Intent Storysteps: - user: “hello” - bot: “Hello human!” - user: “Where is my nearest branch?” - bot: “We are digital! Who needs branches.” - user: “Thanks anyway” - bot: “You are welcome. No to branches!”
A continuación, puedes ver una conversación que invoca esta historia, y las desviaciones de la historia entrenada son obvias.
ML Story se define a la izquierda y una conversación de prueba interactiva a la derecha. Rasa X y el aprendizaje interactivo aún no están disponibles sin intención.
El siguiente paso es buscar un enfoque híbrido, donde las no intent stories se pueden introducir en un entorno existente.
Enfoque híbrido
Al mirar la historia a continuación, verá el nombre de la historia y fluye hacia el nombre de la intención, la acción… y luego la entrada del usuario se detecta sin ninguna intención. Seguido de una acción.
- story: account_checking steps: — intent: tiers — action: utter_tiers — user: “just give that to me again?” — action: utter_tiers
Aquí está la conversación con el chatbot:
ML Story se define a la izquierda y una conversación de prueba interactiva a la derecha. Rasa X y el aprendizaje interactivo aún no están disponibles.
Conclusión
En general, las plataformas de chatbots están creciendo y mejorando en alcance y funcionalidad.
El progreso está muy definido por las nuevas funciones y mejoras en el desarrollo y la gestión de chatbots.
Yuxtapón esta realidad al enfoque de Rasa, y es un enfoque de desaprobación.
Rasa está desaprobando la funcionalidad y las interfaces, dos cuestiones que se convierten en verdaderos impedimentos para alcanzar el objetivo de un agente conversacional inteligente.