Tabla de contenidos

Introducción

El problema al que se enfrentan todos los marcos de IA conversacional es el de elaborar un ecosistema para crear experiencias conversacionales naturales.

  1. Es necesario identificar y abstraer los elementos de las conversaciones naturales entre humanos.
  2. A su vez, estos elementos deben orquestarse en un marco, que puede ser sin código, de bajo código o pro código, o una combinación.
  3. Este marco debe permitir a los usuarios diseñar, integrar y elaborar conversaciones.
  4. Estas conversaciones elaboradas deben ser empaquetadas y puestas a disposición de los usuarios. Aquí es también donde comienza de nuevo el proceso iterativo, pasando del punto 4 al punto 1. Pero esta vez no se abstraen necesariamente los elementos conversacionales de las conversaciones entre humanos, sino de las conversaciones entre humanos y robots. Hay una serie de herramientas disponibles para pasar del punto 4 al 1. Una de ellas es HumanFirst, sobre cuyo proceso puedes leer aquí.
El proceso de creación de un ecosistema de IA conversacional. Abstrayendo elementos conversacionales, orquestando estos elementos en una interfaz de usuario, permitiendo a los usuarios crear conversaciones utilizando estos bloques de construcción. Y, por último, tener un proceso para empaquetar la conversación y hacerla llegar al usuario a través de una especie de medio. Este medio puede ser el chat web, el messenger, la voz, etc.

Como se ha visto anteriormente, el proceso de creación de un ecosistema de IA conversacional. Abstrayendo elementos conversacionales, orquestando estos elementos en una interfaz de usuario, permitiendo a los usuarios crear conversaciones utilizando estos bloques de construcción.

Esta secuencia de acontecimientos es válida cuando se crea un marco de IA conversacional, pero también cuando se elaboran experiencias conversacionales.

Y, por último, tener un proceso de empaquetado de la conversación y de presentación al usuario a través de una especie de medio. Este medio puede ser un chat en la web, un mensajero, una conversación, etc.


La verdadera medida de un marco de IA conversacional es lo bien que se abstraen y orquestan los elementos de conversación del mundo real en una interfaz de usuario.

Generalización

Como hemos dicho, para construir conversaciones cotidianas y naturales con cualquier herramienta, es necesario abstraer todos los conceptos, objetos y atributos de una conversación del mundo real. De ahí el proceso de creación de conceptos-objetos abstractos reflejando características o atributos comunes de una conversación no abstracta de la vida real.

A su vez, estos elementos abstraídos deben orquestarse en un entorno de desarrollo para crear un marco de IA conversacional.
En este proceso de abstracción se pierden detalles, por la generalización.

  • La generalización es necesaria para constituir bloques de construcción.
  • La generalización también es importante para ser precisos en la elaboración de las conversaciones y tener el control de las mismas. Queremos control, con flexibilidad.

 

El bloque de construcción del ecosistema Nuance Mix. Verás que hay una clara separación entre NLU y Dialog Features. Sin embargo, más adelante en el proceso de diseño del diálogo hay un vínculo con NLU. Este es el reto de cualquier ecosistema de IA conversacional, tener elementos acoplados pero también independientes hasta cierto punto.

Este principio es evidente en la arquitectura de Cognigy. Cognigy es, de hecho, un marco de IA conversacional completo y muy cohesionado. Su producto es realmente perfecto para el desarrollo de experiencias conversacionales, pero los diferentes componentes pueden utilizarse de forma independiente. Así, la solución de Cognigy puede utilizarse como una API NLU, o la gestión del diálogo puede utilizarse de forma aislada. O incluso toda la solución puede ser de marca blanca.


Control y flexibilidad

Control y flexibilidad; ambos deben estar en equilibrio:

  • El control sin flexibilidad anula elementos conversacionales clave como la digresión, la desambiguación, la aclaración, el dominio/la relevancia, las intenciones y las entidades compuestas.
  • La flexibilidad sin control tiene sin duda cierto atractivo, pero da lugar a la falta de posibilidades de ajustar las conversaciones. Este es el caso de la API de lenguaje de OpenAI. La inmensa flexibilidad es atractiva, pero el ajuste es limitado.

Hay marcos de IA conversacional con un alto grado de control, entre los que se encuentra el Asistente Watson de IBM. Esto no es malo y permite una rápida adopción de la tecnología y la proliferación de bots. A esta lista hay que añadir IBM Watson Assistant Action Skills y Microsoft Power Virtual Agents.

Luego tenemos a OpenAI con su Language API, donde su implementación de la Generación de Lenguaje Natural (NLG) es realmente tan buena, que resulta sorprendente. La forma en que se mantiene el contexto a través de múltiples turnos de diálogo, la capacidad de recuperación general del bot… todos los aspectos son asombrosos. Pero con esta inmensa flexibilidad el control es difícil… y por control estamos pensando en el ajuste fino.

Y, por último, los elementos abstraídos deben utilizarse para constituir conversaciones que simulen lo más posible las conversaciones del mundo real. Así se cierra el círculo.

Cuando creamos, o más bien elaboramos, una conversación con un chatbot, los diseñadores debemos inspirarnos y guiarnos por las conversaciones del mundo real.

Naturaleza muerta del pintor holandés Henk Helmantel. Ver sus cuadros en la vida real me resultaba chocante. Sabes que es una abstracción de la realidad, aunque parezca real.

Hay que identificar y abstraer los elementos de la conversación humana para incorporarlos a la conversación de nuestro chatbot.

Las reglas y conceptos generales de las conversaciones humanas deben derivarse e implementarse por medios técnicamente astutos.

A continuación enumero 10 elementos de la conversación humana que deberían incorporarse en una interfaz de IA conversacional. Los diseñadores conversacionales quieren que los usuarios hablen con su chatbot como con un humano… de ahí que sea el momento de que el chatbot converse de forma más humana.

Christoph Niemann tiene ideas fascinantes sobre la abstracción y sobre cuándo el diseño visual se vuelve demasiado abstracto.


1️⃣ Digresión

La digresión es una parte común y natural de la mayoría de las conversaciones.

Este es el escenario, el orador introduce un tema, posteriormente el orador introduce un segundo tema, otra historia que parece no estar relacionada. Y luego vuelve al tema original. O bien, la digresión también se puede explicar de la siguiente manera… cuando un usuario está en medio de un diálogo, también se refiere al viaje del cliente, al tema o a la historia del usuario.

Arriba, una conversación en la que el usuario puede pasar del flujo de saldos al flujo de sucursales. El usuario no puede retroceder, ya que la NLU de sucursales no tiene saldos adjuntos.

Y, está diseñado para lograr un único objetivo, pero el usuario decide cambiar bruscamente de tema para iniciar un flujo de diálogo que está diseñado para abordar un objetivo diferente.

Por lo tanto, el usuario quiere saltar a mitad de camino de un viaje o historia a otro. Esto normalmente no es posible dentro de un Chatbot, y una vez que el usuario se ha comprometido con un viaje o tema, tiene que verlo terminado. Normalmente, el diálogo no admite esta posibilidad de que un usuario cambie de tema.

A menudo, un intento de divagar por parte del usuario termina con un «lo siento» del chatbot y rompe el viaje actual. O hay una proliferación de fallback.

Por lo tanto, el marco de trabajo del chatbot que está utilizando debe permitir la digresión. Cuando los usuarios salen y vuelven a la conversación.

El enfoque fácil es estructurar la conversación de forma muy rígida desde la perspectiva del chatbot. Y canalizar al usuario dentro y fuera de la interfaz conversacional, esto podría incluso presentarse muy favorablemente en los informes. Pero la experiencia del usuario es pésima.

La estructuración excesiva de la conversación rompe la belleza de una interfaz conversacional. Las interfaces conversacionales desestructuradas son difíciles de elaborar, pero permiten una experiencia de usuario excepcional.

Una de las razones es que los usuarios están tan acostumbrados a tener que estructurar su entrada, que quieren disfrutar y ejercer la libertad de expresión (hablada o de texto), lo que puede llevar a la decepción si no se cumple la expectativa de libertad.

La digresión tampoco debe ser demasiado indulgente. Si así fuera, los usuarios podrían divagar inadvertidamente y entonces se produciría una interrupción de la conversación. En algunos casos, tiene sentido avisar a los usuarios antes de la digresión.


2️⃣ Desambiguación

Como se ha mencionado antes, te darás cuenta de que muchos de los elementos básicos de la conversación humana no se introducen en la mayoría de los chatbots.

Un buen ejemplo de esto, como hemos visto, es la digresión 👆🏻… y otro es la desambiguación. A menudo, a lo largo de una conversación, los humanos detectamos invariablemente y de forma intuitiva la ambigüedad.

Ejemplo de desambiguación entre nodos de diálogo de IBM Watson Assistant

La ambigüedad se produce cuando escuchamos algo que se dice y que admite más de una interpretación. En lugar de salirse por la tangente, lo que no está previsto en el enunciado, realizo el acto de desambiguación; haciendo una pregunta de seguimiento.

Se trata, sencillamente, de eliminar la ambigüedad de un enunciado o de un diálogo.
La ambigüedad hace que las frases sean confusas. Por ejemplo, «Vi a mi amigo Juan con unos prismáticos». ¿Significa esto que Juan llevaba un par de prismáticos? ¿O que sólo pude ver a Juan con unos prismáticos?

Por lo tanto, tengo que realizar una desambiguación y pedir una aclaración. Un chatbot se encuentra con el mismo problema, cuando la expresión del usuario es ambigua, y en lugar de que el chatbot parta de una supuesta intención, puede pedir al usuario que aclare su entrada. El chatbot puede presentar algunas opciones basadas en un determinado contexto, lo que puede ser utilizado por el usuario para seleccionar y confirmar la opción más adecuada.

Para ilustrar lo eficaces que somos los humanos para desambiguar y detectar matices sutiles, fíjate en las dos frases siguientes:

  • Una gota de agua en mi teléfono móvil.
  • Se me cae el móvil al agua.

Estas dos frases tienen significados muy diferentes, y comparadas entre sí no hay ninguna ambigüedad real, pero para una interfaz conversacional esto será difícil de detectar y separar.

Configuración inicial de IBM Watson Assistant para la desambiguación

La desambiguación permite al chatbot solicitar al usuario una aclaración contextual. Se debe presentar al usuario una lista de opciones relacionadas que le permita desambiguar el diálogo seleccionando una opción de la lista.

Pero la lista presentada debe ser relevante para el contexto del enunciado, por lo que sólo deben presentarse opciones contextuales.

La desambiguación permite a los chatbots solicitar ayuda al usuario cuando hay más de un nodo de diálogo que puede aplicarse a la consulta del usuario.

En lugar de asignar la mejor intención a la entrada del usuario, el chatbot puede crear una colección de los mejores nodos y presentarlos. En este caso, la decisión, cuando hay ambigüedad, se difiere al usuario.

Lo que realmente es una situación en la que todos ganan es cuando la información del usuario se puede utilizar para mejorar el modelo NLU, ya que se trata de datos de entrenamiento muy valiosos que han sido examinados por el usuario.

La desambiguación puede activarse cuando las puntuaciones de confianza de las segundas intenciones, detectadas en la entrada del usuario, se acercan al valor de la primera intención.
Por lo tanto, no hay una separación clara ni certeza.

Por supuesto, debería haber una opción de «no«, si el usuario la selecciona, se puede realizar un traspaso de agente en tiempo real, o se puede programar una devolución de llamada. O bien, se puede presentar un conjunto más amplio de opciones.


3️⃣ Aprendizaje automático

Al igual que un conserje o recepcionista humano aprenderá con el tiempo y mejorará en su trabajo, un chatbot también debería aprender con el tiempo y mejorar. El aprendizaje debe producirse de forma automática. He aquí un ejemplo práctico para conseguirlo…

Por ejemplo, la conversación ideal de un chatbot es precisamente eso, una conversación. El lenguaje natural es muy poco estructurado. Cuando la conversación no gana terreno, tiene sentido introducir una forma de estructura.
Esta forma de estructura es la ideal:

  • Un breve menú de 3 o 4 elementos presentados al usuario.
  • Con los elementos del menú vinculados contextualmente al contexto del último diálogo.
  • Actuando para desambiguar el contexto general.
  • Y una opción para que el usuario establezca un contexto no detectado.

Una vez confirmado el contexto por el usuario, la estructura puede ser eliminada de la conversación. Donde la conversación puede entonces continuar sin estructura con lenguaje natural.

IBM es realmente el líder con este principio de que un chatbot aprenda a priorizar automáticamente.

La breve introducción de la estructura sólo está ahí como mecanismo para fomentar el diálogo. Esto sirve como remedio contra la proliferación de desambiguaciones.

La idea del aprendizaje automático es ordenar estos menús de desambiguación según el uso o la popularidad del usuario.

Un ejemplo práctico:

Cuando un cliente hace una pregunta que el asistente no está seguro de entender, suele mostrarle una lista de temas y pedirle que elija el correcto. Este proceso se llama desambiguación.

Si, cuando se muestra una lista de opciones similar, los clientes suelen hacer clic en la misma opción (la nº 2, por ejemplo), su habilidad puede aprender de esa experiencia.

Puedes aprender que la opción 2 es la mejor respuesta a ese tipo de pregunta. Y la próxima vez, puedes incluir la opción nº 2 como primera opción, para que los clientes puedan llegar a ella más rápidamente.

Y, si el patrón persiste en el tiempo, puede cambiar su comportamiento aún más. En lugar de hacer que el cliente elija entre una lista de opciones, puede devolver la opción 2 como respuesta inmediata. La premisa de esta función es mejorar el proceso de desambiguación a lo largo del tiempo hasta tal punto que, finalmente, se presente al usuario la opción correcta de forma automática. Así, el chatbot aprende a desambiguar en nombre del usuario.


4️⃣ Dominio e irrelevancia

Un agente de servicio no está capacitado para responder a preguntas irrelevantes y fuera del dominio de la organización.

Cómo se desarrolla para las entradas de los usuarios que no son relevantes para su diseño… En general, los chatbots se diseñan y desarrollan para un dominio específico. Estos dominios son estrechos y aplicables a la preocupación de la organización a la que sirven. Por lo tanto, los chatbots son personalizados y construidos a propósito como una extensión de la operación de la organización, generalmente para permitir a los clientes el autoservicio.

Como elemento añadido para hacer que el chatbot sea más interactivo y realista, y para antropomorfizar la interfaz, se introduce una pequeña charla. También se denomina cháchara.

Pero, ¿qué ocurre si una expresión del usuario queda fuera de este estrecho ámbito? En la mayoría de las implementaciones se asigna la intención de mayor puntuación a la expresión del usuario, en un intento frenético de responder a la consulta.

Negar la asignación de intención falsa

Así, en lugar de declarar que la intención está fuera de alcance, en un intento desesperado por manejar la expresión del usuario, el chatbot asigna la intención más adecuada al usuario; a menudo errónea.
Alternativamente, el chatbot continúa informando al usuario de que no entiende, y hace que el usuario reformule continuamente la entrada. Es preferible que el chatbot se limite a decir que la pregunta no forma parte de su dominio.

Un elemento de diseño útil es hacer que dos o tres frases sirvan de introducción para los usuarios que llegan por primera vez, esbozando lo esencial del dominio del chatbot.

Los enfoques tradicionales son:

  • Se sueña con muchos ejemplos «fuera del ámbito» y se introducen. Lo que difícilmente tiene éxito.
  • Se intenta desambiguar la entrada del usuario.

Pero, en realidad, el chatbot debería limitarse a declarar que la consulta está fuera de su dominio y a orientar al usuario.

OOD & ID

Las entradas del usuario pueden dividirse en dos grupos: entradas dentro del dominio (ID) y entradas fuera del dominio (OOD). Las entradas ID son aquellas en las que se puede asociar la entrada del usuario a una intención basada en los datos de entrenamiento existentes. La detección OOD se refiere al proceso de etiquetar los datos que no coinciden con ninguna etiqueta del conjunto de entrenamiento; la intención.

Un ejemplo de la interfaz de prueba y entrenamiento de IBM Watson Assistant. Las expresiones del usuario pueden asignarse a una intención existente o marcarse como irrelevantes.

Tradicionalmente, el entrenamiento de OOD requiere grandes cantidades de datos de entrenamiento, de ahí que OOD no funcione bien en los entornos de chatbot actuales.

Una de las ventajas de la mayoría de los entornos de desarrollo de chatbots es que la cantidad de datos de entrenamiento es muy limitada; quizás entre 15 y 20 ejemplos de expresiones por intención.

No queremos que los desarrolladores dediquen grandes cantidades de tiempo a un elemento que no forma parte del núcleo del bot.

El reto es que, como desarrollador, tienes que proporcionar datos y ejemplos de entrenamiento. La entrada OOD o irrelevante es posiblemente una cantidad infinita de escenarios ya que no hay un límite que defina la irrelevancia.

Lo ideal es construir un modelo que pueda detectar entradas OOD con un conjunto muy limitado de datos que definan la intención; o ningún dato de entrenamiento OOD. La segunda opción es la ideal.


5️⃣ Intentos complejos

Los intentos se estructuran en forma de intentos jerárquicos o anidados (HumanFirst y Cognigy). Las intenciones se pueden activar y desactivar, y se pueden añadir pesos. Los umbrales se fijan por intención para la relevancia, y en algunos casos se puede fijar un umbral para una solicitud de desambiguación. Sub-patrones dentro de las intenciones (ver Kore.ai). Kore.ai también tiene subintentos e intentos de seguimiento.

Intentos jerárquicos (Intentos anidados)

La principal actividad en el mercado de los chatbot en torno a los intents y las entidades son:

  • Detección automatizada de intenciones a partir de las expresiones del usuario.
  • Detección de conflictos/superposición de intenciones
  • Añadir estructura a las entidades
  • Eliminación de intenciones

Tanto HumanFirst como Cognigy ofrecen intenciones jerárquicas o anidadas. Cognigy ofrece 3 niveles de anidación de intenciones.

La intención Balances (rojo) tiene tres subintentos (verde), y la intención de tercer nivel (amarillo). Este ejemplo es de Cognigy.

Como se ve arriba, la intención Balances (rojo) tiene tres subintentos (verde), y las intenciones de tercer nivel (amarillo).

En el enunciado «saldo de ahorro para mi propia cuenta», la NLU devuelve:


"intentLevel": {
"level1": "Balances",
"level2": "Personal Accounts",
"level3": "Savings"
}

Puedes ver la ventaja de las intenciones anidadas, sabiendo que se solicitó un saldo, para una cuenta personal, y que el tipo de cuenta es Ahorro.

HumanFirst permite un anidamiento mucho más profundo. Vea abajo, HumanFirst permite a los usuarios la capacidad de anidar intents (sub intents). En este ejemplo se puede ver un complejo anidamiento de subintentos bajo Deportes.

Puedes ver que en este ejemplo el anidamiento es de 7 niveles de profundidad; Deportes/Bola Base/Equipos/Equipos Top5/New York Yankees/Entradas/Temporada.

HumanFirst ofrece a los usuarios la posibilidad de anidar intenciones (subintentos). En este ejemplo se puede ver un complejo anidamiento de subintentos bajo Deportes. Puede ver que en este ejemplo el anidamiento es de 7 niveles de profundidad; Deportes/Baloncesto/Equipos/Top5Equipos/New York Yankees/Entradas/Temporada.

6️⃣ Antropomorfizar

La gente responde bien a los personajes, también a la representación gráfica de un personaje. Antropomorfizamos las cosas por naturaleza; los coches, los barcos, otros objetos inanimados… y los chatbots no son diferentes. La percepción que el usuario tiene del chatbot afecta sin duda a la forma en que se involucra e interactúa.

La imagen de perfil que elijas para tu chatbot juega un papel importante. Con el guión, el lenguaje y la redacción de su chatbot.

La imagen de perfil más atractiva para tu chatbot será la que tenga una persona, una cara. Esta cara debe tener un nombre, y también una forma de hablar, un vocabulario que sea coherente y relevante para la persona que quieres establecer. Esto es crucial, ya que esta persona crecerá y, con el tiempo, se convertirá en su empleado más valioso, ya sea digital.

Una persona crecerá en uso, en múltiples canales, en alcance y funcionalidad. De ahí la importancia de esta base.


7️⃣ Entidades Nombradas

Sin ningún tipo de entrenamiento, los humanos podemos entender y detectar entidades generales como Amazon, Apple, Sudamérica, etc.
Pero primero, ¿qué es una entidad?

Las entidades son la información de la entrada del usuario que es relevante para sus intenciones.
Las intenciones pueden verse como verbos (la acción que un usuario quiere ejecutar), las entidades representan sustantivos (por ejemplo; la ciudad, la fecha, la hora, la marca, el producto.). Por ejemplo, cuando la intención es obtener una previsión meteorológica, se necesitan las entidades de ubicación y fecha relevantes para que la aplicación pueda devolver una previsión precisa.

Reconocer las entidades en la entrada del usuario le ayuda a elaborar respuestas más útiles y específicas. Por ejemplo, usted puede tener una intención de #compraralgo. Cuando un usuario hace una solicitud que desencadena la intención #compraralgo, la respuesta del asistente debe reflejar una comprensión de qué es el algo que el cliente quiere comprar. Puede añadir una entidad de producto y utilizarla para extraer información de la entrada del usuario sobre el producto que le interesa al cliente.

En NLP, una entidad con nombre es un objeto del mundo real, como personas, lugares, empresas, productos, etc.

Estas entidades con nombre pueden ser abstractas o tener una existencia física. A continuación se muestran ejemplos de entidades con nombre detectadas por Riva NLU.

Bloque de código de Entidades Nombradas en el Jupyter Notebook

Ejemplo de entrada:

Jensen Huang is the CEO of NVIDIA Corporation, located in Santa Clara, California.

Ejemplo de salida:

Named Entities:
jensen huang (PER)
nvidia corporation (ORG)
santa clara (LOC)
california (LOC)

Extracción de entidades con nombre de una frase

Por ejemplo, spaCy cuenta con un sistema de detección de entidades muy eficaz que también asigna etiquetas. El modelo por defecto identifica una gran cantidad de entidades con nombre y numéricas. Esto puede incluir lugares, empresas, productos y similares.

  • Texto: El texto original de la entidad.
  • Inicio: Índice del inicio de la entidad en el documento
  • Fin: Índice del final de la entidad en el documento
  • Etiqueta: Etiqueta de la entidad, es decir, tipo
Detalle de cada entidad con nombre detectada

Hay entidades con nombre que todos esperamos que sean de conocimiento común, éstas también deberían ser de conocimiento común para su chatbot. Lo ideal es que se incluyan en el modelo NLU desde el principio.


8️⃣ Modalidad mixta y componentes conversacionales

¿Veremos mucho de esto con la Web 3.0?
¿Qué es la Web 3.0? Es la tercera generación de Internet… una red que se apoya en interfaces e interacciones inteligentes.

La Web 3.0 estará constituida por software, con el navegador actuando como interfaz o medio de acceso.

Una habilidad de Amazon Echo Show integrada en la API de Mercedes-Benz para las especificaciones e imágenes de los vehículos. El usuario puede hacer preguntas sobre los vehículos de Mercedes y se muestra una pantalla interactiva que se puede ver, escuchar y tocar para navegar. También se pueden emitir comandos de voz de seguimiento.

Por ejemplo, una habilidad de Amazon Echo Show integrada en la API de Mercedes-Benz para las especificaciones e imágenes de los vehículos. El usuario puede hacer preguntas sobre los vehículos de Mercedes y se muestra una pantalla interactiva que se puede ver, escuchar y navegar táctilmente. También se pueden emitir comandos de voz de seguimiento.

Probablemente, la comparación más cercana actualmente a la Web 3.0 son dispositivos como el Amazon Echo Show o el Google Nest Hub.

En ellos vemos múltiples modalidades combinadas en una sola experiencia de usuario.
El usuario emite la voz y la pantalla muestra una interfaz de usuario con imágenes, texto y/o vídeo. El contenido se puede ver, escuchar, con la navegación táctil o por voz.

Este enfoque multimodal reduce la carga cognitiva, ya que la entrada del usuario se realiza principalmente a través de la voz y no de la escritura. Los medios se proyectan al usuario mediante texto, imágenes/vídeo y voz. El perfeccionamiento de las consultas en función de lo que se presenta deberá probablemente dar lugar a una navegación táctil.

De ahí que veamos representaciones completas de contenido contextual basadas en la intención del usuario hablado.

Una gran ventaja de la Web 3.0 es que un equipo muy pequeño puede hacer avances significativos al estar basada en el software.

Entre otros elementos clave, la Web 3.0 se definirá por los bots personalizados que atienden a los usuarios de forma específica.

Una demostración de las plantillas y diseños disponibles de una habilidad de Amazon Echo Show. Navegación por clics, con opciones de visualización, audio o preguntas de seguimiento.

Estos bots facilitarán las interacciones inteligentes con el usuario y todos los dispositivos pertinentes.

Los bots interactuarán mediante voz, texto y datos contextuales. Se centrarán en la atención al cliente, la asistencia, la información, las ventas, las recomendaciones y mucho más.
Los bots conversacionales inteligentes no sólo se comunicarán en texto, sino en cualquier medio apropiado.

Esta nueva iteración de la web contará con bots omnipresentes que saldrán a la luz de diversas maneras y vinculados al contexto de la interacción del usuario.

Imagínate que un usuario está leyendo su sitio web y que en un momento determinado puede hacer clic en un texto que le lleva a una interfaz conversacional vinculada contextualmente al lugar donde el usuario ha hecho clic.

Otra ilustración especulativa de la Web 3.0, con una interfaz de voz para emitir órdenes a la API del vehículo Mercedes-Benz. La pantalla cambia en función de la voz.

El ejemplo anterior es una integración de una habilidad de Alexa con la API de vehículos de Mercedes-Benz.


9️⃣ Añadir contexto y estructura a las entidades

Entidades compuestas y contextuales.

Se han hecho enormes avances en esta área y muchos ecosistemas de chatbot los acomodan.

Entidades contextuales.

El proceso de anotación de las expresiones del usuario es una forma de identificar entidades por su contexto dentro de una frase.

A menudo, las entidades tienen un conjunto finito de valores que se definen. También hay entidades que no pueden representarse mediante una lista finita, como las ciudades del mundo, los nombres o las direcciones. Estos tipos de entidades tienen demasiadas variaciones para ser enumeradas individualmente.

Para estas entidades, hay que utilizar anotaciones; entidades definidas por su uso contextual. Las entidades se definen y detectan a través de su contexto dentro del discurso del usuario.

Entidades compuestas

La premisa básica es que los usuarios pronuncian varias entidades en una misma frase.
Lo más probable es que los usuarios expresen varias entidades en un solo enunciado, lo que se conoce como entidades compuestas.
En el ejemplo siguiente, hay cuatro entidades definidas:

  • modo_de_viaje
  • desde_ciudad
  • a_ciudad
  • fecha_hora
Rasa: Extracto del archivo NLU.md en el proyecto Rasa

Estas entidades pueden ser detectadas en la primera pasada y se solicita la confirmación del usuario.
Veamos estructuras de entidades más complejas y cómo se implementan en Rasa, Microsoft Luis y Amazon Alexa…

Microsoft LUIS

Descomposición
Las entidades aprendidas por la máquina se introdujeron en LUIS noviembre de 2019. La descomposición de la entidad es importante tanto para la predicción de la intención como para la extracción de datos con la entidad.

Comenzamos por definir una sola entidad, llamada

  • Detalle de viaje.

Dentro de esta entidad, definimos tres subentidades. Puede pensar en esto como entidades anidadas o subtipos. Los tres subtipos definidos son

  • Marco temporal
  • Modo
  • Ciudad

A partir de aquí, tenemos un subtipo para Ciudad:

  • Desde la ciudad
  • Hasta la ciudad
Definición de una entidad con subtipos que se pueden descomponer

Esto puede parecer confuso, pero el proceso es extremadamente intuitivo y permite la expansión natural de los elementos de conversación.

Los datos se presentan en un formato fácilmente comprensible. La gestión de su entorno conversacional será más fácil que antes.

Adición de subentidades: Entidad ML compuesta por subentidades más pequeñas

Ahora podemos volver a nuestra intención y anotar un nuevo enunciado. Sólo queda por definir la ciudad de From.

Ejemplo de anotación de una locución con elementos de entidad

Aquí están los ejemplos de intención, utilizados para entrenar el modelo con la entidad, los subtipos y los sub-subtipos; totalmente contextualizados.

Ejemplos de intenciones anotadas

🔟 Variación

La falta de variación hace que la interacción se sienta monótona o robótica. Introducir la variación puede suponer un esfuerzo de programación, pero es importante.

La reseña del restaurante se crea a partir de unas pocas palabras clave y el nombre del restaurante.

Muchos marcos de desarrollo tienen una funcionalidad que te permite aleatorizar fácilmente la salida de tu bot. O al menos tener una secuencia de expresiones que rompa la monotonía.

An apple pie review based on four generic words.

Conclusión

El impedimento más frecuente a la hora de aplicar estos diez elementos de la conversación humana no son las consideraciones de diseño, sino el de los obstáculos técnicos. De ahí que la decisión de qué plataforma utilizar sea aún más crucial.

 

Por Cobus Greyling

Rasa Hero. NLP / NLU, Chatbots, Voz, UI / UX conversacional, Diseñador CX, Desarrollador, Interfaces de usuario ubicuas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *