Un modelo para definir intenciones en ambientes de asistentes digitales

Cómo funcionan los asistentes digitales

Todos los que hemos usado plataformas comerciales para crear asistentes digitales (como Watson o Google Assistant) quedamos con la impresión, que no hay realmente mucho análisis semántico en la forma que reconoce las intenciones.

No corresponden a acciones o verbos o estructuras de frases, sino más bien a clasificación de frases en base a ejemplos. La diferencia es que si por ejemplo he entrenado una intención para reconocer la frase “quiero saber mi saldo” como @Consulta_de_Saldo, lo más probable es que la frase “no quiero saber mi saldo”, también la interprete como una consulta de saldo.

Por lo mismo, en entrenamiento no puede hacerse como si uno estuviera explicando lo que se quiere al preguntar por un saldo, sino con frases que contienen palabras que comúnmente implicarían, como reacción, la entrega del saldo.

Esto implica dos cosas, primero, que hay que usar conjuntos de palabras que aparecen normalmente en un contexto de consulta de saldo y, más importante, que las frases no tienen que ser gramatical o semánticamente equivalente, sino provocar la respuesta que estamos diseñando.

La diferencia no es tan sutil como uno pudiera pensar, las frases:

“quiero saber mi saldo”

“dónde encuentro la información de mi saldo?”

“No estoy seguro de la cantidad que tengo como saldo”

“es posible que me digan cuánto me queda?”

No son semánticamente equivalente (algunas son preguntas, algunas afirmaciones, otras son preguntas relativas a cosas anexas, etc.)

Lo que tienen en común es que todas ellas deben gatillar una misma acción.

Por otra parte es necesario entender que las palabras saldo, saber, tengo, cantidad, deben aparecer frecuentemente en dichos ejemplos para modelar los clasificadores de forma apropiada.

Primera regla al definir intenciones:
No es conversación, es clasificación

De lo dicho podemos inferir la primera regla para definir intenciones. No interesa tanto lo que las intenciones signifiquen, sino las reacciones que van a provocar como respuesta.

La más importante característica de la intención, es que debe, al ser reconocida, generar una acción específica.

Las respuestas, en general pueden ser de dos tipos,

  • diálogos que informan (como menúes, como documentos o referencias a documentos
  • acciones que inician procesos de ejecución de transacciones o funciones (programas, microservicios, APIs, etc.)

Entonces, aunque parezca de perogrullo, uno solo debiera definir, en principio, intenciones que se refieren a acciones para las cuales tenemos respuestas (entregar información de algún tipo) o activan una acción, flujo o proceso.

Segunda regla al definir intenciones:
Entidades de negocio son el eje

Esto nos lleva a la segunda regla. En un ambiente corporativo las acciones disponibles se refieren normalmente una sola cosa:

  • Transacciones o información relativa a atributos de entidades del negocio.

Si es un retailer, se refieren a cliente, producto, locales, facturas, entre otras. Para los productos tendremos como atributos, precio, disponibilidad, características, tipo, etc.

Las acciones y procesos tienen atributos también y, en ese sentido, se pueden tratar como entidades, compras, despachos, devoluciones, reclamos y garantías; por ejemplo. Además las transacciones y acciones dejan trazas que se puede consultar, reclamar o modificar. Cómo fecha de despacho, dirección de despacho y otras.

  • Atributos de transacciones y procesos

Así, el “principal” universo de intenciones en una empresa es el mapa de entidades, procesos que se pueden efectivamente consultar o modificar.

Se puede definir más intenciones, relativas a atributos que no sea posible modificar o consultar, pero en ese caso, la reacción o respuesta deberá ser genérica y neutra.

Tercera regla para definir intenciones:
¿Qué les pasa a los atributos?

Si ponemos en el centro de nuestro análisis los atributos de entidades del negocio, entonces hay cierta cantidad de acciones que se pueden iniciar al detectar una intención.

Si la entidad es Cuenta y el atributo es Saldo disponible. La intención relacionada será

  • Consulta
  • Modificación
    • Transferencia hacia
    • Depósito desde

Si la entidad son Puntos (como los puntos de promociones), y el atributo es saldo, las intenciones relacionadas serán:

  • Consulta
  • Creación
    • Activar sistema de puntos
  • Modificación
    • Pago con puntos

En la antigüedad esto se llama Crear, Consultar, Modificar y Eliminar. Claramente no es posible ejecutar todas las acciones sobre todas los atributos.

De ésta manera las intenciones cercanamente recrean el mapa de datos y de funciones disponibles.

Al mirarlo así, el problema se vuelve más acotado y permite diseñar una ruta para poblar las respuestas automáticas sin necesidad de enfrascarse en diseñar una conversación artificial (y artificiosa).

Por el contrario, se trata de crear una herramienta para que los clientes puedan encontrar las funciones disponibles para ejecutar las acciones que se ha diseñado.

Cuarta regla al definir intenciones:
No hay que descuidar las laterales

De lo anterior podemos ver un error común y que produce efectos bastante jocosos, pero a veces medio ridículos.

Si nos concentramos solo en un atributo (por importante que sea) y una acción sobre el mismo y como las plataformas cognitivas clasifican usando herramientas estadísticas, se puede crear la intención @Consulta_de_saldo_cuenta_corriente y entrenarla correctamente. Si decimos, “quiero saber mi saldo”, “quiero que me digan cuánto tengo”, y otras por el estilo, el sistema correctamente identificará dicha intención.

Aunque es posible, de hecho muy posible, que si digo, “quiero saber qué hago si tengo problema con mi saldo”, igual me informe el saldo….aunque eso esté lejos de lo que quiero lograr.

Desde el punto de vista de clasificación de la frase, se entenderá, que es lo mismo, porque contiene muchas de las palabras que se usan para consultar el saldo, saber, saldo, mi saldo, etc.; aunque el sentido de la frase no dice relación con ello.

Por lo mismo, al elegir un atributo o una entidad + la acción, debemos cuidar los laterales, que son las otras acciones que podría desear hacer con respecto a dicho atributo. Incluso si no somos capaces de ejecutar las acciones que dispongan los sistemas y tengamos que derivar a un agente humano o entregar un mensaje más genérico.

Si queremos manejar bien una intención tenemos que ver el halo de intenciones que la rodean para poder dar respuestas inteligentes.

Si la entidad es Sucursal y el atributo más consultado es Dirección, seguramente desearemos crear la pareja Intención:Consulta_ubicación + Entidad:Sucursal.

Pero siendo que Sucursal tiene más atributos Horario, Comuna, Estación de metro más cercana, Fono Contacto, Correo gerente de tienda, etc. Será sensato que las intenciones laterales también sean creadas

  • Consulta_fono
  • Consulta_correo_contacto
  • Consulta _comuna
  • Consulta_metro

Ello incluso si las respuestas son similares o las mismas.

Está la tentación que todas las consultas relativas a sucursal se cataloguen en una misma intención (consulta_sucursal) que las contenga. Sin embargo, como el problema no es lingüístico, sino de clasificación. Ello generará que cualquier frase que contenga la palabra sucursal (por ejemplo) sea catalogada como consulta_sucursal “¿dónde cambio la sucursal de despacho?” …y ahi comienza la parte jocosa (para los usuarios)

  • ¿dónde cambio la sucursal de despacho?
  • por favor indique nombre sucursal
  • Las condes
  • La dirección de la sucursal Las Condes es Kenedy 2223
  • No, de mi despacho
  • Lo siento, no tenemos una tienda en “mi despacho”

(en realidad no es jocoso, es irritante)

Comentarios finales

El objetivo de crear autómatas para entregar datos y funciones a los clientes es, por un lado, ahorrar costo en las interacciones más frecuentes y más sencillas. Pero no puede ser al costo de convertir la interacción en una experiencia irritante o kafkiana.

Para ello es necesario considerar que dichas interacciones son procesadas por un programa de AI tratando de clasificar las frases del usuario en categorías que representan acciones a ejecutar. Que dichas acciones se refieren a las entidades que la empresa reconoce y maneja. Que para ser suficientemente específicos, debemos considerar acciones aledañas al atributo que nos interesa y entregar comportamiento razonables para ellos también.

 

 

 

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s