rmi_RAÚL MORENO IZQUIERDO
COMPUTER ENGINEER
← Volver al índiceEdición web anonimizada
Capítulo 04 / 06

Midiendo la propensión a la compra según la experiencia adquirida

Autor: Raúl Moreno Izquierdo

Cuestionarios ↓
De los datos operativos a la decisión
De los datos operativos a la decisión. Esquema conceptual original de esta edición; no representa una medición experimental.

El capítulo 4.1 introduce el análisis y desarrollo de técnicas analíticas avanzadas para optimizar el proceso de recomendación de servicios turísticos en la agencia COMPANY-002. Basándonos en investigaciones previas, donde diseñamos una arquitectura analítica general y un método de detección automática de clientes potenciales, esta sección se centra en la evaluación de los documentos de oferta enviados a los clientes. El objetivo principal es verificar que las recomendaciones sean más precisas y estén alineadas con los deseos y necesidades de los clientes.

Para ello, se analizaron 50 documentos de oferta seleccionados al azar y sus textos asociados utilizando técnicas de procesamiento del lenguaje natural (PLN). Se implementaron herramientas como SOFTWARE-TH-002, SOFTWARE-TH-003 y SOFTWARE-TH-003 para realizar el reconocimiento de entidades nombradas (NER), permitiendo extraer términos clave y construir un diccionario de puntuaciones. Este diccionario fue utilizado para evaluar la relevancia de las ofertas en función de la propensión del cliente a aceptar la recomendación.

El capítulo también incluye una comparación entre las herramientas NER utilizadas, evaluando su precisión y velocidad, especialmente en textos en español. Este enfoque busca no solo mejorar la personalización de las recomendaciones, sino también identificar las soluciones tecnológicas más eficaces para apoyar a los agentes de viajes en su toma de decisiones.

4.1 Introducción

En investigaciones previas para nuestro cliente COMPANY-002 diseñamos una arquitectura analítica general para ayudar a la empresa a mejorar su proceso de ventas

y diseñamos e implementamos un método para la detección automática de clientes potenciales. En esta investigación basada en los conocimientos anteriores, nos centramos en los documentos de oferta enviados a los clientes potenciales durante el proceso de venta, con el fin de verificar que las recomendaciones se ajusten mejor a los deseos del cliente.

Para estudiar en detalle este proceso de recomendación, seleccionamos al azar 50 documentos de oferta y sus oportunidades de texto asociadas por parte del cliente. Se inició el análisis de las oportunidades de texto con PLN con el fin de extraer las entidades y establecer un diccionario general con una puntuación asociada a cada entidad, en función de la propensión de la oportunidad. A continuación, utilizamos ese diccionario de puntuación como base para una evaluación detallada de los documentos de la oferta, utilizando tres métodos diferentes: SOFTWARE-TH-003, SOFTWARE-TH-002 y uno basado en SOFTWARE-TH-003. Utilizamos todas estas tecnologías diferentes para realizar NER en los diferentes textos. El reconocimiento de entidades por nombre (NER) es una subtarea importante en el procesamiento del lenguaje natural. En la última década se han desarrollado varios sistemas NER. Pueden dirigirse a diferentes dominios, emplear diferentes metodologías, trabajar en diferentes idiomas, detectar diferentes tipos de entidades y admitir diferentes formatos de entrada y salida. Estas condiciones dificultan que un usuario técnico seleccione las herramientas NER adecuadas para una tarea específica Jiang et al. (2016). Nos centramos en hacer una comparación Shelar et al. (2020) de tres herramientas NER diferentes, basándonos en los datos de nuestro cliente: COMPANY-002. Dado que nuestros clientes manejan textos en español, intentamos conseguir la mejor solución para ese idioma Galicia-Haro et al. (2004).

4.2 Propuesta

4.2.1 Procesos analíticos implicados en una recomendación

Creación del diccionario general de puntuaciones

Para la creación de un diccionario general de puntuación, procesamos todas las oportunidades almacenadas en el CRM con la funcionalidad NER de SOFTWARE-TH-002. Con esa información sobre los términos creamos una tabla que almacena la relación del término encontrado con el resultado de la oportunidad, compra o desiste.

Agregamos esa tabla usando el conteo de los términos de oportunidad y decisión, compra o desiste. Con el objetivo de poder cuantificar, generamos un método de puntuación simple, mediante el uso de las siguiente fórmula:

if (compra): count-id-term * 2

Tabla 4.1: Diccionario de puntuación general

Term Score Maldivas 13 Madrid 8.5 ... .... Tanzania -1 Bangkok -1

Tabla 4.2: Puntuación de ofertas mediante el texto de una oportunidad

Offer-Id Destination Scoring 13485 Maldivas 350 15839 Costa Rica 150 ... .... 14592 Canarias 50 12394 Tanzania -13.5

if (desiste): (count-id-term * -1) / 2

Donde count-id-term representa el número único de veces que el id aparece en la tabla del grupo (decisión, término). Con este método de cuantificación para las tres herramientas, comenzamos a puntuar las ofertas de los documentos.

Agregamos de nuevo la información con la suma de la puntuación anterior para el grupo (term), generando la puntuación general para un término, dada cualquier decisión, como se muestra en la Tabla: 4.1

Puntuación de los documentos de oferta

Realizamos las tres técnicas de PLN sobre los documentos de oferta, almacenados bajo formato .docx. La idea es obtener mediante el uso de NER los términos importantes para los documentos. Los términos siguientes se puntuaron utilizando el diccionario general explicado en la sección anterior, por lo que finalmente, a partir de un texto de oportunidad, obtuvimos un conjunto de recomendaciones (documentos de oferta) ordenadas por puntuación generadas con el diccionario general, como se muestra en la Tabla 4.2

Usando las diferentes herramientas NER

SOFTWARE-TH-002

SOFTWARE-TH-002 es una biblioteca de Python de código abierto para PLN, lanzada en 2015, los creadores de SOFTWARE-TH-002 describen su trabajo como PLN industrial. SOFTWARE-TH-002 puede trabajar con modelos de lenguaje preentrenados y vectores de palabras para más de 60 idiomas. Los modelos de lenguaje nos permiten realizar una variedad de tareas de

Tabla 4.3: Benchmark de velocidad SOFTWARE-TH-002 en noviembre de 2022

LIBRARY PIPELINE WPS CPU WPS GPU SOFTWARE-TH-002 en_core_web_lg 10,014 14,954 SOFTWARE-TH-002 en_core_web_trf 684 3,768 Stanza en_ewt 878 2,180 Flair pos(-fast) & ner(-fast) 323 1,184 UDPipe english-ewt-ud-2.5 1,101 n/a

PLN, incluido el reconocimiento de entidades con nombre (NER) Vasiliev (2020).

Instalar SOFTWARE-TH-002 es muy fácil usando pip, posteriormente hay que descargar el modelo de SOFTWARE-TH-002, en este estudio se han probado varios, siendo el mejor en_core_web_sm, versión inglesa, aunque estemos trabajando con textos en español, dado que nuestro objetivo era detectar el mayor número de entidades.

Además, Añadimos un plugin llamado negspaCy, un objeto de pipeline SOFTWARE-TH-002 para negar conceptos en texto, basado en el algoritmo SOFTWARE-TH-005 Chapman et al. (2001). Con este pipeline podemos gestionar la lógica involucrada en las diferentes entidades, detectando cuando la entidad está negada y proporcionando una mejor recomendación.

En términos de velocidad, SOFTWARE-TH-002 es la biblioteca de PLN más rápida, también podemos echar un vistazo a sus puntos de referencia [LINK-REDACTED] comparamos la velocidad de diferentes bibliotecas de PLN, medida en palabras por segundo (WPS): cuanto más alta, mejor, la evaluación se realizó en 10,000 comentarios de Reddit:

SOFTWARE-TH-003

A finales de 2018, un grupo de científicos del laboratorio ORG-TH-008, bajo el liderazgo de J. Devlin, presentó un nuevo modelo lingüístico llamado SOFTWARE-TH-003. Este modelo está destinado al aprendizaje preliminar profundo de Representación de texto bidireccional para su uso posterior en modelos de aprendizaje automático. La ventaja de este modelo es su facilidad de uso, que implica agregar solo una capa de salida a la arquitectura neuronal existente para obtener modelos de texto que superan la inexactitud de todos los existentes en varios problemas de procesamiento de texto natural Koroteev (2021).

Para el uso de SOFTWARE-TH-003 trabajamos con el modelo: xlm-roberta-large-ner-spanish, este modelo es un modelo XLM-Roberta-large ajustado para el Reconocimiento de Entidades por Nombre (NER) sobre la parte española del conjunto de datos CoNLL-2002. Al evaluarlo en el subconjunto de prueba de este conjunto de datos, obtienen una puntuación F1 de 89,17, siendo uno de los mejores NER para español disponibles

en el momento de ejecución de este experimento. La velocidad de SOFTWARE-TH-003 NER es más lenta que con SOFTWARE-TH-002, pero parece ser más precisa en las recomendaciones cuando es exitosa, que la de SOFTWARE-TH-002.

Fine Tuned SOFTWARE-TH-003 based

Aunque los modelos de aprendizaje profundo han alcanzado el estado del arte en muchas tareas de PNL, estos modelos requiere un entrenamiento desde cero, requieren grandes conjuntos de datos y días de computación para converger a una solución. La investigación en NLLP se ha centrado principalmente en la transferencia transductiva. Para la transferencia inductiva, el ajuste fino de las incrustaciones (embeddings) de palabras preentrenadas, una técnica de transferencia simple que solo se dirige a la primera capa de un modelo, ha tenido un gran impacto en la práctica y se utiliza en la mayoría de los modelos de última generación. Enfoques recientes que concatenan incrustaciones derivadas de otras tareas con la entrada en diferentes capas siguen entrenando el modelo de la tarea principal desde cero y tratan las incrustaciones preentrenadas como parámetros fijos, lo que limita su utilidad. A la luz de los beneficios del preentrenamiento, deberíamos ser capaces de hacer algo mejor que inicializar aleatoriamente el resto de parámetros de nuestros modelos. Sin embargo, la transferencia inductiva a través del ajuste fino no ha tenido éxito para PLN, aunque por primera vez el ajuste fino de un modelo de lenguaje (LM) puede ser la mejor solución, requiere de millones de documentos en el dominio para lograr un buen rendimiento, lo que limita severamente su aplicabilidad. Howard y Ruder (2018)

Utilizamos SOFTWARE-TH-002 inicialmente para afinar nuestro transformador. En primer lugar, hicimos el siguiente etiquetado de datos:

luna TYPE de O miel TYPE africa DESTINATION playa DESTINATION viaje TYPE de O novios TYPE playa DESTINATION safari TYPE Disney DESTINATION Disneyland DESTINATION

Después de algunos pasos de configuración, entrenamos el modelo SOFTWARE-TH-003. Los pa-

Tabla 4.4: Cuenta de casos para generar la matriz de confusión

Real SOFTWARE-TH-002 SOFTWARE-TH-003 Fine Tuned Good Bad Good Bad Good Bad Good 9 9 13 6 14 6 Predicted Bad 15 7 11 10 10 10

sos de instalación son los más complejos de las tres bibliotecas, pero los resultados obtenidos, que se muestran en la siguiente sección, merecen realmente la pena.

4.3 Experimentos

4.3.1 Comparación de resultados, utilizando métricas de la matriz de confusión

Teniendo en cuenta que estamos comparando tres librerías con funcionalidades NER, que son completamente diferentes, establecimos que para hacer una comparación entre las diferentes técnicas necesitábamos el procedimiento de matriz de confusión. Clasificamos las recomendaciones en términos de buenas o malas, por lo que definimos la matriz binaria como Recomendaciones Reales y Recomendaciones Previstas.

Generamos una matriz de confusión binaria, los valores contados se muestran en la Tabla 4.4, y las métricas obtenidas por cada técnica de PLN se muestran en la Tabla 4.5, estas métricas muestran que las mejores técnicas son Fine-tuned, SOFTWARE-TH-003 y SOFTWARE-TH-002 en este orden. Examinando las métricas podemos notar que las técnicas de SOFTWARE-TH-003 y Fine Tuned son muy similares, aunque la última es mejor que la primera. La técnica de SOFTWARE-TH-002 es la peor, con una gran diferencia con las demás, aunque es la mejor que maneja la lógica entre entidades.

Tabla 4.5: Métricas obtenidas para las diferentes técnicas de PLN

SOFTWARE-TH-002 SOFTWARE-TH-003 Accuracy 0.4000 0.5750 0.6000 Precision 0.5000 0.6842 0.7000 F1 Score 0.4286 0.6047 0.6364

4.3.2 Otras soluciones de PLN: ORG-TH-007

Decidimos probar otras soluciones de PLN para comprobar si eran útiles para nuestros fines. Probamos los servicios de ORG-TH-007, con el modelo 3.5, para el pro-

ceso NER, obteniendo resultados similares. Es cierto que las entidades reconocidas por ORG-TH-007 son más que con SOFTWARE-TH-002, SOFTWARE-TH-003 o Fine-Tuning, pero trabajar con ORG-TH-007 genera nuevos problemas, su API no es capaz de responder en español y la lógica de las entidades no se considera o se considera erróneamente, como sigue:

Para la pregunta: \Responde en español. Luna de Miel, algo como Nueva York, NO a Maldivas, luna de miel, para dos personas, todo incluido. salida 15 de Agosto de 2022, gracias\"

La respuesta de ORG-TH-007 es: \"|\Maldives\|\Honeymoon\|\August 15, 2022\|\Allinclusive, for two people\|\"

Lo que a priori es una funcionalidad muy interesante, podría generar una mala recomendación porque la consulta inicial decía: Maldivas no, y ORG-TH-007 está devolviendo exactamente lo contrario, una mala recomendación.

Con nuestro modelo SOFTWARE-TH-002, mediante el uso del plugin negspaCy utilizado para negar conceptos en texto basado en el algoritmo SOFTWARE-TH-005, podemos trabajar mejor con la lógica entre entidades, especialmente con la negación de entidades. Este tipo de capacidad todavía no es posible con ORG-TH-007 y su modelo 3.5 y con SOFTWARE-TH-003 esto se gestiona asociando la importancia de un término de puntuación.

4.3.3 Futura creación de un agente de viajes virtual mediante el sistema multiagente

En una investigación previa Moreno et al. (2022) utilizamos MAS para distribuir la carga de trabajo del sistema. Aquí también lo aplicamos, con un diseño arquitectónico bioinspirado, para organizar los diferentes procesos implicados y con el fin de difundir y emular las competencias de los futuros agentes de viajes electrónicos.

Como se ha explicado en la sección anterior, los sistemas multiagente son colecciones de entidades inteligentes autónomas que colaboran en la resolución conjunta de problemas complejos. Existen otras investigaciones previas que demuestran por qué y cómo aplicarlos en el campo del turismo X. Wang et al. (1997). Aquí nos centramos en un problema específico, aún futuro, de esta industria: cómo emular a un agente de viajes.

Como señalamos, hoy en día los agentes de viajes podrían ser vistos como recomendadores humanos, reciben una solicitud, la procesan y devuelven su mejor recomendación. Pero desde el punto de vista de la modelización técnica, el proceso de recomendación es complejo y requiere que muchos otros procesos, algunos analíticos, otros operativos, participen de manera coordinada para obtener la mejor tasa de éxito. Proponemos como solución un MAS novedoso y bioinspirado basado en la estructura de los hormigueros.

La abstracción del hormiguero permite organizar el código en el mismo sentido que lo hace un framework, por ejemplo, donde el agente reina es similar al controlador, los soldados como los modelos y los trabajadores como las vistas. Pero a medida que funciona el hormiguero, permite este tipo de organización de una manera inteligente, por ejemplo, integrando características más avanzadas como la negociación entre agentes. Para la mejora futura de las habilidades de negociación de los agentes, se podría utilizar un método equilibrado incremental para llegar a un acuerdo entre los agentes, pero también entre los agentes y los humanos, este método de negociación esta descrito en detalle en Insua et al. (2003).

4.4 Conclusiones

El PLN es la mejor técnica de inteligencia artificial que se puede aplicar cuando los datos pertenecen al tipo de texto. Después de probar tres técnicas diferentes de código abierto, nadie usaría estas soluciones para problemas en los que la solución necesita reducir al máximo los falsos positivos, como mostramos en la tabla de casos contados. Pero tras haber probado otras soluciones comerciales, como ORG-TH-007, el área de las soluciones de código abierto todavía tienen mucho que decir en este campo.

Las técnicas de código abierto se probaron solo contra sus funcionalidades NER, aún hay más características por probar como técnicas de PLN, pero hay una gran diferencia entre las soluciones básicas de SOFTWARE-TH-002 y las soluciones base de SOFTWARE-TH-003, siendo estas últimas las mejores. El caso de uso expuesto es un buen ejemplo de cómo el PLN puede ayudar a otras empresas (no necesariamente relacionadas con el turismo), a alcanzar un nivel superior cuando se trata de datos de texto.

La extensión del MAS bioinspirado basado en la estructura de hormigueros para modelar una agencia de viajes electrónica es una solución novedosa, que demuestra no solo cuán completa y versátil es la arquitectura MAS propuesta, sino también que la regla de diseño de divide y vencerás ayuda a la hora de implementar sistemas complejos.

Aplicado a nuestro cliente: COMPANY-002, las técnicas de solución de código abierto proporcionan una muy buena visión que podría ayudar a los agentes de viajes a identificar rápidamente las entidades importantes al examinar el texto de las solicitudes de los clientes.