Blog

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.

 

 

 

 

Un mundo que se escapa más allá de nuestra conciencia

DSC_0564Mi hijo me recomendó un artículo sobre el volúmen de papers que se publican anualmente y la capacidad humana de procesarlos.

Produce una suerte de angustia el saber todo lo que ignoramos y todo lo que se está produciendo. Pareciera que el mundo se escapa, su concepto, más allá de lo que podemos entender.

Es volver al terreno de la magia y lo sobrenatural, al enfrentarnos, aún las personas con formación científica rigurosa, a un enorme abismo de fenómenos desconocidos.

No es algo nuevo, lo desconocido, pero es curioso que reaparezca después que pensamos, en el pináculo de la revolución industrial, que se acabaría el misterio y seríamos los amos del universo.

Se los recomiendo, breve e ilustrativo

https://aeon.co/ideas/science-has-outgrown-the-human-mind-and-its-limited-capacities

Inteligencia artificial y el archivo de clientes

Hoy tuve, curiosamente, dos veces la misma conversación, pero escuchando dos puntos de vista diferentes.

Hablando de aprovechar los datos de la organización para definir agentes que modelen comportamientos de clientes uno de mis interlocutores dijo: “Pero si todavía no podemos tener un consolidado de clientes “. Buen punto.

La otra persona, ya lo habrán adivinado, quería comenzar con algoritmos de redes semánticas profundas (la verdad no estoy seguro si es la traducción correcta de “deep neural newtorks”, pero son las redes multinivel que están dando mucho que hablar recientemente) sin preocuparse mucho del proceso de actualización de datos.

El tema es que partir con análisis de comportamiento requiere datos de buena calidad y que realmente haya análisis muy finos y complejos disponibles con mayor o menor facilidad.

Sin embargo, esperar hasta que todos los datos estén perfectos significa que nunca vamos a partir. Tener datos exactos de todo el tráfico, de todas las características del usuario y todos los usuarios, todo el tiempo, instantáneamente disponibles es imposible. Cualquier modelo que implementemos para analizar el comportamiento, debe considerar dichas inconsistencias, dichos errores u omisiones. Más bien, tiene que contarlos e ignorarlos.

Inmediatamente después debemos familiarizarnos con el modelo, tenemos que conocer las limitaciones de la información, pero sobre todo, las limitaciones de nuestra organización para identificar comportamientos relevantes. Venimos de organizaciones que tienen modelos de segmentación fijos, sobre estructuras de datos y análisis estáticos. No va a suceder que podamos adoptar esta nueva mirada en forma inmediata.

La mayoría de las veces se puede extraer información muy importante de análisis estadísticos bien sencillos. ¿Bajo el uso del servicio en promedio por un período relevante? El cliente se está perdiendo. ¿Tenemos tasas de consultas, reclamos, interacciones no exitosas, mayores al promedio o crecientes? Tenemos problemas de usabilidad o de servicio.

Un segundo nivel, dado esta primera detección, es conocer por qué el cliente quiere dejarnos o qué problema de servicio tenemos.

Podemos seguir con análisis estadísticos (acá casi va a sonar como redes multinivel, pero no) para identificar sus motivos….o podemos llamarlo. Los pasos debemos darlos en la medida que entendemos de verdad lo que hacemos y evolucionar en el camino.

Puede parecer contraintuitivo, pero esta partida moderada y sencilla nos permitirá dar el salto una vez que ciertos conceptos han calado profundo. (¿se han fijado en como aprenden los niños? Pequeños avances y pasos tentativos….hasta que se lanzan)

Las herramientas son importante, pero usarlas requiere destrezas que hay que entrenar. Incluso si vamos a contratar después una multinacional para que implemente el sistema top de la línea.

Este ejercicio va a permitir conocer las limitaciones de nuestra data(por eso es importante contar las inconsistencias), buscar dónde debemos mejorar calidad, cantidad o modelo, comenzar a pensar en términos de comportamiento digital, más que segmentación de marketing y en general, ejercitar nuestro músculo intelectual.

Cualquier actividad analítica requiere un ambiente propicio para el aprendizaje y el desarrollo.

Así que propongo avanzar por éste camino, algunos modelos sencillos de los mejores datos que podamos conseguir y, como los niños, ir creando las destrezas mínimas para después, lanzarnos.

Como con casi todo, los mejores viajes se inician al dar el primer paso y partir.

Computers as theater

Este libro de Brenda Laurel es un clásico que compré por primera vez en 1992 y ahora en su nueva edición….algunas cosas han pasado en el entretanto.

Sin embargo la premisa principal del autor es que la relación entre el usuarios y el computador (fundamentalmente, pero no en forma exclusiva, con el software) es un diálogo. Un diálogo organizado que semeja una representación teatral.

Mucho de sus ideas son aplicables a la forma en que diseñamos y pensamos en los sistemas. Lo recomiendo porque ilumina el problema de una forma diferente pero extremadamente apropiada para las nuevas tecnologías y la era de redes sociales y cultura virtual.

Un diálogo que permite a los usuarios participar creativamente de un proceso interactivo y que reconoce su peculiaridad, en forma y en fondo, para crear el tipo de compromiso que tienen los sistemas exitosos.

Las preguntas ¿qué propongo en esta pantalla o en ésta función? ¿qué quiero que el usuario sienta o entienda? ¿qué alternativas le ofrezco para su propia acción?

Al igual que en una buena película u obra de teatro, cuando estas preguntas se contestan correctamente, la acción es fluida; la trama se hace liviana y entretenida.

Lo encuentran para Kindle y Paperback. Altamente recomendable

Nacionalismo versus globalización

Nationalism vs. globalism: the new political divide; es el nombre una charla TED sobre las fuerzas que dividen y pueden destruir nuestra civilización. Una visión original que supera algunos paradigmas anticuados y permite ver el tema como un problema profundo de la evolución.

Para los que trabajamos directamente con la tecnología y sobretodo porque nuestros esfuerzos apuntan directamente hacia ampliar la ubicuidad en la sociedad virtual, este tema es central. Entender los efectos de nuestras acciones y de los riesgos que conlleva.