Modelo de valoración con IA para Insparya
A la vuelta de las vacaciones de 2021 estaba buscando trabajo, nuevos proyectos, en diferentes procesos de selección y mejorando mi (olvidada) marca personal. Entonces quedé a cenar con Andrés F. Álvarez, que fue mi responsable primero en Expansión y, después, en Infoempleo. Actualmente Andrés está trabajando en Insparya, clínica de injerto capilar, y aunque había surgido la posibilidad de volver a trabajar juntos en lo que a diseño puro se refiere, nunca llegamos a materializarlo.
En esa cena, además de los típicos recuerdos, ponernos al día y demás, salió el tema de cómo había lidiado la clínica de injerto capilar con la pandemia. Me explicó el proceso que seguían para realizar un diagnóstico online, a través de fotos y whatsapp. Entonces tuve uno de esos momentos «wow».
¿Por qué no están vendiendo online?
El proceso de reserva online comenzaba con la captación del lead, el nurturing, contacto y solicitud de fotos para que el departamento médico realizase un diagnóstico. A partir de ese diagnóstico, un asesor realizaba una videollamada con el usuario y cerraba los detalles de la intervención de microtransplante capilar. Y se procedía a la reserva formal con una transferencia, o bien a través de una pasarela de pago y un importe que luego se descontaba de la intervención. En todo este proceso intervenía un CRM (Hubspot), diferentes puntos de contacto (Teléfono, email, whastapp), procesos automatizados (email marketing) y otros personales (diagnóstico, llamadas, videollamada).
Mi primera duda era por qué este proceso no se realizaba 100% en la misma plataforma y abierto a cualquier persona que quisiera realizar una gestión automática de la cita. Es decir, poder medir cada paso del funnel, detectar mejor los puntos de fuga y, llegado el caso, poder vender la intervención completamente online.
Esto tenía un handicap: La valoración por parte del equipo médico es un cuello de botella, tiene sus tiempos y se realiza «offline». Y aquí fue donde tuve el segundo momento «wow».
Incorporando un modelo de Visión Artificial
Viniendo del mundo del ecommerce, conocía soluciones de visión artificial para optimizar la logística de la gestión de almacén y pedidos. Punto clave cuando tratas de ofrecer envío gratis y que tenga el menor coste posible para el negocio.
He conocido con más o menos detalle soluciones algorítmicas de movimiento de catálogo entre almacenes para optimizar tiempos y, por tanto, gastos en su envío, otras que optimizan la situación del catálogo, etiquetado automático, reglas avanzadas de pricing y su aplicación. Todo un mundo orientado a la eficiencia y mejorar el ROI.
Mi planteamiento fue que si las intervenciones de microtransplante capilar estaban documentadas, con cierta coherencia, podíamos construir un dataset con el que una empresa experta en soluciones de inteligencia de negocio, procesado de imágenes y creación de modelos pudiera entrenar uno que devolviera el rango de unidades foliculares a transplantar. Y de ahí podemos evolucionar a cerrar una reserva o, incluso, venderlo online.
Conozco los dos mundos del ecommerce: multimarca y marca propia. Desde el producto asequible y decisión impulsiva en productos de menos de 20€, a la meditada de productos de más de 2000€. Pero el verdadero reto era crear un algoritmo que hiciese una valoración. Y así comenzó el proyecto.
Sprint inception
Primero consulté qué fotos de pacientes tenían disponibles en Insparya. Número y forma. Repasé el proceso online para encontrar la manera de integrar todo en una misma plataforma. Con un primer conjunto de datos de fotos, unidades foliculares y zonas de intervención busqué referencias de proyectos que hiciesen diagnósticos médicos en base a fotos o videos. Encontré una referencia del MIT en la que una herramienta de IA podía detectar de manera eficiente la posibilidad de que la piel de una persona tuviera melanoma.
Después busqué proveedores que trabajasen con inteligencia artificial. Hice un research, consulté a contactos y me dieron cuatro referencias. De estas referencias, una elaboró un presupuesto exageradamente alto, otra dijo que harían una prueba con un dataset para ver si era posible la idea, pero que esta prueba tenía un coste, una tercera referencia no llegó a responder y la cuarta pidió más reuniones, realizamos un workshop, dimos acceso a un dataset limitado y anonimizado. Estos últimos fueron los únicos que dijeron «podemos hacerlo» y que, además, prepararon una propuesta detallada, con alcance y plazos de entregas.
Y por último busqué un proveedor de infraestructura y desarrollador de Magento, porque tenía claro que para poder hacer una integración completa en el ecosistema que utiliza Insparya, la valoración y que pudiese culminar en una venta, la base tenía que ser sólida.
Y como último paso, presenté a los stakeholders (CEO, marketing, comunicación, médicos…) el proyecto, costes y plazos. Y tuve el OK.
Definiendo el MVP, DoD y backlog
El Mínimo Producto Viable lo definimos con las siguientes necesidades:
- Valoración en base a 5 fotos: Frente, perfil izquierdo, perfil derecho, superior y trasera
- El usuario debe poder realizar la valoración por su cuenta
- El usuario debe quedar registrado en las bases de datos de Insparya
- El usuario debe poder seleccionar fecha y clínica para su intervención
- El usuario debe poder consultar su valoración y recuperarla para su contratación en cualquier momento
- El usuario, si no puede recibir una valoración, debe poder reservar una cita presencial en la clínica de su elección
- El usuario debe poder recomendar a amigos y recibir recompensas a cambio
- El contact center debe poder consultar el status de una valoración y sus fotos en cualquier momento
- El contact center debe poder enviar fotos directamente al algoritmo sin pasar por la plataforma (Magento)
- El equipo médico debe validar la valoración y convertirla en diagnóstico
- Desde Insparya se debe poder decidir que provincias de origen de los usuarios pueden realizar la valoración, y cuales están limitadas a una cita presencial.
- El equipo de comunicación debe informar de esta innovación tecnológica, poniendo al usuario en el centro.
- El equipo de performance debe poder hacer seguimiento de la conversión de los leads que apunten al proceso de valoración
- El equipo de performance debe poder crear y modificar landing pages específicas con reserva de cita presencial o valoración
La Definición de hecho sería para cada historia de usuario los puntos de control de seguimiento del proyecto y que validaríamos entre todos los implicados (yo, como PO, departamentos de Insparya y proveedores). Establecimos sprints semanales pero sin anclarnos demasiado a la metodología Agile porque este proyecto era, sobretodo, de investigación. Y aunque la metodología Agile es ideal para entornos VUCA, si teníamos la certeza, tras las primeras pruebas, de hasta donde debía llegar el algoritmo. Y de esta manera, el kick off del proyecto se hizo en Febrero de 2022.
Sprints 1 al 20
En los primeros sprints se realizó:
- Infraestructura
Configuración inicial de las máquinas en Google Cloud con tres entornos: Dev, Pre y Pro.
Configuración específica con los requerimientos del modelo de visión artificial
Carpeta para el intercambio de imágenes entre Magento y el algoritmo - Magento
Instalación de la última versión de Magento Community, plugins necesarios y diseño del template. - Modelo VA de Valoración
Carga del primer dataset completo, normalización de datos, desarrollo de los modelos de segmentación de las fotos, tests, instalación de un panel de control de workers y sus jobs, creación de API para poder realizar valoraciones fuera de Magento - CRM
Creación de las propiedades específicas para incorporar a los usuarios que realicen su valoración online - UX
Dinámica de brainstorming con comunicación, diseño de flujos y protipado de valoración y reserva.
Sprints 20 al 32
A partir del Sprint 20, empezamos la integración de la plataforma de ecommerce, el modelo de IA y el CRM. Esta integración se convirtió en la más complicada por los cambios en los requisitos desde Contact Center y limitaciones técnicas con el entorno sandbox del CRM, que se estaba utilizando para otro proyecto.
Esta integración se centró en registrar cada interacción del usuario para actualizar la información en su ficha. De esta manera sabríamos qué información había facilitado, en qué punto había abandonado el funnel y, a partir de ahí, el departamento de marketing podría tomar unas decisiones u otras.
También realizamos un evolutivo del modelo de valoración, incorporando una representación gráfica de las zonas que necesitarían de intervención, para que el usuario tuviera una referencia aproximada en base a las fotografías subidas. Esta representación se basaba en un nuevo modelo que identificaba en la imagen 3 grandes zonas, resultado de la agrupación de zonas según indicación del responsable médico.
Puesta en producción del MVP
Después de la integración, comprobar su éxito y testear en el entorno de pre-producción, pasamos el desarrollo a producción. El MVP entonces pasó a ser la primera release oficial del modelo de valoración de intervención de microtransplante capilar. Debido a que el porcentaje de aciertos no era demasiado favorable todavía, enfocamos este lanzamiento como un soft launch, es decir, solamente se utilizaría de manera interna, para filtrar leads y ayudar los médicos en agilizar la diagnósis.
Sprints 32 en adelante
A partir de su puesta en producción en, aproximadamente, Octubre de 2022, hemos realizado un seguimiento de las valoraciones y diagnósticos, reajustado porcentajes de validación, creando un dashboard donde visualizamos aciertos, errores, desvíos y otros porcentajes.
El primer problema que nos encontramos fue la cantidad de errores que producían las fotos que enviaban los futuros pacientes. El modelo no pasaba como válidas fotos en las que no identicaba correctamente un perfil o los ojos. Esto lo solucionamos con instrucciones más claras y precisas a la hora de contactar con los pacientes, un video explicativo y con el trato directo y personalizado con los usuarios. El problema no era tanto el «ruido» que puede haber en una foto tomada en una casa con elementos de fondo, sino con la parte de identificación de la cara, sobretodo en su parte frontal y los perfiles.
Realizamos tests en entornos controlados, eliminando el ruido de fondo y el procesado de imágenes que realiza el modelo antes de realizar la valoración conseguía muchos menos errores, lógicamente. Por este motivo una de las aplicaciones directas más evidentes que detectamos para el uso del modelo fue la valoración en determinados escenarios.
A partir de aquí, empezamos a detectar que el algoritmo coincidía más con el diagnóstico de unos médicos que con otros. Revisamos las valoraciones, comparando con el diagnóstico y nos dimos cuenta que el objetivo de llegar a un 97% de acierto, al no haber un criterio único y cierto para el diagnóstico de una intervención de micro transplante capilar, era imposible. Lo que empezamos a hacer a partir de ese momento es tratar el modelo como si fuera un nuevo médico que está aprendiendo a valorar.
El siguiente problema que encontramos fue la representación de la zona a intervenir. No se limitaba a la piel de la cabeza y, en ocasiones, recogía también hombros y otras zonas del fondo. Además, la máscara utilizada como referencia para las zonas de intervención no siempre encajaba con la realidad. Y es que a la hora de realizar injerto de pelo, la linea de la frente la ajustaba de manera genérica cuando, en realidad, se injerta pelo siguiendo la linea del paciente. Es decir, que la intervención se adapta y no se «gana terreno» a la frente que ya tenga el paciente.
Primer reentrenamiento
Después de 6 meses realizando valoraciones con el modelo realizamos el primer reentrenamiento. Incorporamos 300 valoraciones con su diagnóstico corregido y, sobre el dataset de prueba, mejoraba, sobretodo, las valoraciones con solo 1 rango de unidades foliculares de diferencia.
A la hora de ponerlo en producción, detectamos que las valoraciones no habían seguido la tendencia esperada y tuvimos que hacer un rollback y un reajuste en los cálculos de probabilidades de la primera versión del modelo porque estaba ofreciendo mayor coincidencia con los diagnósticos.
Próximos pasos
En Mayo se publicó la primera versión del modelo de segmentación SEEM. Un modelo que, dentro de una imagen, detecta y separa lo que le pidas. Incorporamos este modelo de segmentaciónen una prueba sobre un dataset acotado y los resultados son prometedores. Por eso lo próximo será incorporar este modelo de segmentación. Para ello es necesario hacer cambios en la infraestructura, ya que este modelo necesita de más capacidad de proceso.
Por otro lado estamos trabajando en cambios en el flujo de valoración para que el Departamento de Marketing pueda aprovechar todas las posibilidades del modelo para la captación y nurturing de los leads.
Referencias
- MIT News. An artificial intelligence tool that can help detect melanoma – https://news.mit.edu/2021/artificial-intelligence-tool-can-help-detect-melanoma-0402
- Modelo SEEM. https://arxiv.org/pdf/2304.06718.pdf
- Insparya.com