00:00:07 Casos de uso potenciales de la programación diferenciable en supply chains.
00:00:31 Aplicando la programación diferenciable a tiendas minoristas y perspectivas de clientes.
00:02:56 Propiedad revolucionaria de la programación diferenciable en el modelado del comportamiento del cliente.
00:06:05 El impacto de la programación diferenciable en las operaciones de almacén y el forecast de demanda futura.
00:07:11 Suavizando las curvas de envíos del almacén con programación diferenciable.
00:09:38 La importancia de atender a los clientes a tiempo y su impacto en el supply chain.
00:10:40 El rol de la programación diferenciable en el modelado de redes complejas de supply chain.
00:13:01 Control de calidad e imperfecciones en los sistemas de producción.
00:14:17 Aplicando la programación diferenciable para modelar incertidumbres en la industria farmacéutica.
00:16:00 La programación diferenciable y sus ventajas en situaciones de datos escasos.
00:17:41 La expiración de patentes como ejemplo de aplicar la programación diferenciable en la industria farmacéutica.
00:19:57 Abrazando la complejidad y abordando los impulsores clave del negocio a través de la programación diferenciable.
00:21:59 Equilibrando la simplicidad y la complejidad en modelos basados en los requisitos del negocio.
00:22:42 La programación diferenciable como una evolución del enfoque programático de Lokad, beneficios y oportunidades para los clientes.

Resumen

En este episodio de entrevista, el presentador Kieran Chandler y Joannes Vermorel, fundador de Lokad, exploran las aplicaciones de la programación diferenciable y su impacto en la gestión de supply chain. Los modelos tradicionales de series de tiempo tienen dificultades para modelar la canibalización y la sustitución, mientras que la programación diferenciable ofrece un enfoque centrado en el cliente, considerando los deseos y necesidades del cliente para una toma de decisiones mejor informada. Este enfoque puede llevar a un forecast de demanda, gestión de inventario, y a la optimización de almacenes. La programación diferenciable aborda desafíos complejos de múltiples niveles y tiene en cuenta las imperfecciones de la producción, lo que la hace adecuada para diversas industrias. Vermorel enfatiza que la programación diferenciable permite a las empresas incorporar el conocimiento del dominio en los modelos de machine learning, resultando en soluciones más precisas, eficientes y hechas a la medida para problemas específicos.

Resumen Ampliado

En este episodio de la serie de entrevistas sobre programación diferenciable, el presentador Kieran Chandler y Joannes Vermorel, fundador de Lokad, discuten los posibles casos de uso y las consecuencias de aplicar esta tecnología a los supply chains, en específico en tiendas minoristas. La programación diferenciable tiene el potencial de mejorar la gestión de supply chains al abordar diversos problemas que los enfoques tradicionales de series de tiempo no pueden manejar de manera efectiva.

Uno de los problemas clave en la gestión de supply chains es el desafío de modelar la canibalización y la sustitución, que son particularmente significativos en industrias como la de lujo, fast fashion y el retail de alimentos. Los modelos tradicionales de series de tiempo tienen dificultades para tener en cuenta estos factores, a menudo recurriendo a soluciones improvisadas que son insatisfactorias y lejos de ser óptimas.

La programación diferenciable ofrece un enfoque nuevo a estos problemas al centrarse en la perspectiva del cliente, en lugar de en el producto únicamente. Permite a los gestores de supply chain considerar factores tales como los deseos y necesidades del cliente, así como la probabilidad de seleccionar o no los artículos del surtido actual y la disponibilidad de stock. Este enfoque centrado en el cliente proporciona una comprensión más precisa y matizada del entorno minorista, llevando a una toma de decisiones mejor informada.

El aspecto revolucionario de la programación diferenciable radica en su capacidad para modelar las afinidades de los clientes hacia productos específicos en el catálogo. Este proceso procedural permite a los gestores de supply chain considerar diversos factores, tales como cómo la novedad impulsa las compras de los clientes y cómo es poco probable que los clientes recurrentes compren el mismo producto nuevamente. Estos conocimientos pueden conducir a un forecast de demanda más preciso y a una mejor gestión de inventario.

Por ejemplo, en una librería, es muy poco probable que un cliente que compra un libro adquiera el mismo título en su próxima visita. Los modelos tradicionales de series de tiempo tienen dificultades para tener en cuenta este comportamiento, mientras que la programación diferenciable puede modelar directamente estas decisiones de compra individuales. Esto conduce a una comprensión más precisa de la demanda del cliente y del ciclo de vida de los productos.

La programación diferenciable permite a los gestores de supply chain modelar el comportamiento de los clientes que visitan la tienda regularmente, como aquellos impulsados por la novedad. Este enfoque puede ayudar a predecir qué tan populares serán los nuevos productos y cuándo disminuirá la demanda de los mismos. A diferencia de los modelos de series de tiempo, que se basan en métodos indirectos para modelar estos patrones, la programación diferenciable ofrece una solución más directa y precisa.

Vermorel explica que la programación diferenciable permite modelar de manera más precisa el comportamiento de los clientes en el punto de venta. Los modelos estadísticos tradicionales tenían dificultades para incorporar incluso conocimientos básicos sobre el comportamiento del cliente, lo que les dificultaba aprender desde cero. La programación diferenciable, por otro lado, ofrece una manera más directa de comprender lo que sucede en la tienda y se puede integrar fácilmente en los modelos de machine learning.

Cuando se trata de logística de almacén, la programación diferenciable puede ayudar a optimizar y suavizar el flujo de productos. Los almacenes a menudo enfrentan problemas de capacidad de entrada/salida, y sería ideal si se pudieran hacer pequeños ajustes en los horarios de envío para evitar colisiones de envíos y reducir la necesidad de personal temporal. Las técnicas tradicionales de optimización tenían dificultades con este problema porque involucraba tanto aspectos de aprendizaje como de optimización. Sin embargo, la programación diferenciable puede manejar el vasto número de variables involucradas en este proceso, haciendo posible optimizar el envío de millones de SKUs y abordar sutiles efectos de interacción.

A nivel de manufactura, la programación diferenciable puede ayudar a abordar desafíos complejos de múltiples niveles. Los enfoques tradicionales tendían a centrarse en nodos específicos dentro del supply chain y a apuntar a altos niveles de servicio para ciertos productos. Sin embargo, Vermorel sostiene que lo que realmente importa es si los productos terminados están disponibles para los clientes, haciendo irrelevantes muchos de los pasos intermedios en el supply chain. La programación diferenciable permite modelar de manera más precisa la compleja red de partes y ensamblajes dentro del supply chain, lo que en última instancia ayuda a atender mejor a los clientes y a tiempo.

Además, la programación diferenciable puede ayudar a tener en cuenta las imperfecciones en el sistema de producción, como los problemas de control de calidad. En industrias como la farmacéutica, donde se utilizan organismos vivos para producir medicamentos avanzados, los lotes de producción podrían perderse debido a procesos biológicos. La programación diferenciable puede considerar estas pérdidas y ayudar a optimizar el proceso de producción en general.

Vermorel explica que la industria farmacéutica se enfrenta a altos niveles de incertidumbre debido a la naturaleza de sus procesos. Por ejemplo, si surge un problema en un lote de cultivos, es probable que se pierda todo el lote, lo cual es diferente a la industria automotriz, donde solo una pequeña fracción de las piezas puede fallar en el control de calidad. Los modelos tradicionales de machine learning podrían tener dificultades con este nivel de incertidumbre, ya que puede que no dispongan de suficientes datos históricos relevantes para predecir los resultados con precisión.

Diferenciable programming ofrece una alternativa al permitir a las empresas incorporar su conocimiento del dominio directamente en el modelo de machine learning. Vermorel enfatiza que la programación diferenciable no se trata de lanzar grandes cantidades de datos a un sistema de IA, sino de aprovechar al máximo los datos escasos y valiosos. Por ejemplo, en la industria farmacéutica, el impacto de la expiración de patentes en el precio de los medicamentos es un fenómeno bien conocido. La programación diferenciable permite incorporar este conocimiento en el modelo, mejorando su precisión y eficiencia.

La versatilidad de la programación diferenciable la hace adecuada para diversas industrias, cada una con desafíos únicos. Vermorel utiliza el ejemplo del mercado de accesorios automotrices, donde la compatibilidad entre las piezas de vehículos y modelos específicos es crucial. Ignorar este aspecto en un modelo simplista podría conducir a resultados subóptimos, mientras que la programación diferenciable puede ayudar a capturar estos impulsores esenciales del negocio.

A pesar de la complejidad de la programación diferenciable, Vermorel sostiene que las empresas no deberían rehuir adoptarla. Si bien los modelos más simples podrían funcionar, a menudo lo hacen a expensas de la precisión y de una comprensión exhaustiva del negocio. La programación diferenciable permite un enfoque más hecho a la medida que puede abordar problemas y situaciones específicas. La programación diferenciable representa una evolución del enfoque programático de Lokad para la optimización de supply chain. Permite a las empresas incorporar su conocimiento del dominio en sus modelos de machine learning, conduciendo a una ejecución más eficiente y a un rendimiento mejorado en términos de precisión. La programación diferenciable ofrece a las empresas la oportunidad de reconsiderar los problemas existentes y desarrollar soluciones escalables que aborden mejor sus desafíos únicos.

Transcripción Completa

Kieran Chandler: Hoy, vamos a concluir nuestra breve serie al analizar un poco más algunos de sus posibles casos de uso y las consecuencias de gran alcance que esto puede tener cuando se aplica a un supply chain. Entonces, Joannes, ¿cuáles son algunos de los problemas en los que podemos mejorar nuestro enfoque utilizando la programación diferenciable? Y empecemos quizás con las tiendas minoristas, ya sabes, el punto de contacto con los clientes.

Joannes Vermorel: En este momento, prácticamente todo lo que se hace en supply chain adopta la perspectiva de series de tiempo, donde tienes un producto y observas las ventas unitarias, la demanda que se compra o el servicio, dependiendo del tipo de tienda que manejes. Obviamente, una tienda en el sector aeroespacial no es lo mismo que una tienda de fast fashion, pero la idea es que el ángulo es, en cierto modo, el ángulo de series de tiempo por producto. El problema con esta perspectiva, por ejemplo, es que aspectos como la canibalización y la sustitución, que son muy fuertes en el lujo, el fast fashion o incluso en el retail de alimentos, son extremadamente difíciles de modelar. En muchos casos, apenas existen. La programación diferenciable te ofrece un ángulo para abordar directamente el problema desde la perspectiva del cliente, diciendo: “Bueno, tengo una población de clientes que entran a mi tienda y tienen deseos y necesidades, y van a seleccionar o no los productos que se les muestran, considerando el surtido actual y la disponibilidad de stock en la tienda.” Esto es muy interesante porque, a través de algo como la programación diferenciable, podemos operar a un nivel que no es el de una serie de tiempo basada en las referencias de productos listadas en la tienda. Podemos adoptar la perspectiva del cliente, y eso es verdaderamente revolucionario. Nuestra experiencia con la perspectiva de series de tiempo es que, usualmente, lo mejor que se puede hacer es simplemente aplicar soluciones improvisadas a tus modelos numéricos para que no estén demasiado deteriorados al enfrentar la canibalización y la sustitución, pero no es muy satisfactorio. Es, en el mejor de los casos, una solución de “duct tape”.

Kieran Chandler: Entonces, recapitulemos lo que hemos discutido en episodios anteriores. ¿Cuál es esa propiedad revolucionaria que mencionaste y que lo hace todo posible?

Joannes Vermorel: Con un enfoque de programación diferenciable, literalmente puedes modelar el hecho de que un cliente tiene una afinidad específica por cualquier producto en tu catálogo, y puedes escribir un proceso procedural para ello. Por ejemplo, supongamos que tengo clientes que vuelven a mi tienda, y quizá esos clientes son impulsados por la novedad. ¿Cómo modelo algo tan simple como que, una vez que las personas entran en mi tienda para comprar un libro, por definición, no van a comprar el mismo libro cuando regresen? Solo van a comprar otro título, no el mismo. Desde una perspectiva clásica de series de tiempo, es casi imposible tener en cuenta algo tan básico como que un cliente recurrente que entra a tu librería una vez al mes no va a recomprar el mismo producto. Así que, si ves un aumento en la demanda de un libro, es probable que la demanda se extinga debido a que, si todos tus clientes habituales compran este nuevo y popular libro, entonces, por definición, una vez que regresen, no lo volverán a comprar. Obviamente, puedes modelar eso desde una perspectiva de series de tiempo utilizando un efecto de ciclo de vida, donde introduces un nuevo producto, este tiene un pico al inicio del lanzamiento, y luego la demanda sólo disminuye. Pero esa es una manera muy indirecta de modelar el problema. Un enfoque mucho más directo es utilizar diferentes

Kieran Chandler: Tu software te permite modelar con precisión lo que está sucediendo en la tienda de una manera mucho más directa de lo que era posible anteriormente. ¿Puedes explicar cómo esto cambia la forma en que se utilizan los modelos estadísticos en la optimización de supply chain?

Joannes Vermorel: Con la programación diferenciable, se vuelve más fácil inyectar conocimientos básicos sobre el comportamiento del cliente en los modelos estadísticos. Esto significa que los modelos no tienen que aprender todo desde cero sin ningún conocimiento empresarial, lo cual era una tarea difícil antes.

Kieran Chandler: ¿Cómo ayuda la programación diferenciable en el aspecto de la logística de almacén dentro del supply chain? ¿Se trata principalmente de forecast de demanda futura?

Joannes Vermorel: La programación diferenciable también puede ayudar con los desafíos a nivel de almacén, como suavizar el flujo de envíos. Los almacenes a menudo enfrentan problemas de capacidad de entrada-salida, y una solución es organizar inteligentemente los envíos para evitar envíos colisionados y reducir la presión sobre las plataformas logísticas. Al realizar pequeños ajustes en el cronograma de envíos, las operaciones pueden ser más fluidas, fáciles y económicas de gestionar, reduciendo la necesidad de mano de obra temporal y la complejidad operativa que conlleva.

Kieran Chandler: ¿Fue difícil lograr este nivel de optimización con las técnicas existentes?

Joannes Vermorel: Con las técnicas existentes, era difícil combinar aprendizaje y optimización. Cuando tienes miles de productos y cientos de clientes, terminas con millones de variables por optimizar, y los métodos tradicionales de optimización no pueden manejar esta complejidad. La programación diferenciable permite una mejor optimización en estas situaciones, incluso con muchas interacciones sutiles, como la necesidad de enviar más productos a una tienda si está más cerca de un faltante de stock.

Kieran Chandler: Tienes un ciclo de retroalimentación entre lo que decides, lo que forecast, y con una perspectiva más tradicional, podríamos hacer este tipo de optimización, pero era mucho más tedioso porque teníamos que realizar análisis por etapas. Fundamentalmente, era muy difícil tener en cuenta todos esos ciclos de retroalimentación que existen en el sistema. Bien, y si damos un paso atrás en esa supply chain y observamos las cosas ahora desde un nivel de manufactura, ¿cómo nos ayuda la programación diferenciable con estos desafíos de múltiples niveles?

Joannes Vermorel: El punto es aún más agudo cuando entras en el ámbito de la optimización de múltiples niveles. La mayor parte de lo que sucede en cada nodo es, de cierta manera, inconsecuente en el sentido de que es un artefacto. No te importa la disponibilidad de stock en puntos aleatorios de tu compleja red de piezas y ensamblajes que terminan como productos terminados. El único punto del gráfico que realmente importa es si estás atendiendo a tu cliente a tiempo, lo cual es una cuestión relevante solo para los productos terminados.

¿Qué hay de todos los gráficos de dependencia que tienes detrás? El hecho de que lo que sucede en cada paso intermedio, este complejo gráfico de dependencias donde tienes tu lista de materiales generando este gráfico, es fundamentalmente irrelevante. Es un artefacto que solo importa desde la perspectiva de si, al final del proceso, estás atendiendo a tus clientes.

Por cierto, eso nos remite a mi crítica de DDMRP de hace un par de semanas. Si puedes adoptar un esquema de puntuación binaria en este gráfico y decir que para ciertos nodos deseas alcanzar un alto nivel de servicio, no importa tener un alto nivel de servicio para un producto si a tus clientes no les importa porque no lo están comprando. Lo único que les importa es si los productos terminados que estás vendiendo están disponibles o no.

La programación diferenciable te ayuda a modelar mucho más precisamente lo que está sucediendo en esta red. Tienes algunos pasos que pueden tener tiempos probabilísticos o no. Podrías tener pasos donde una determinada fracción del flujo no pasa el control de calidad. Obviamente, si tienes una supply chain perfecta, tendrías un control de calidad del 100%. Así que si tienes 100 artículos que necesitas suministrar, tendrás 100 productos terminados que fluyen después del paso de mecanizado. Pero a veces, tienes control de calidad, y tu sistema de producción es imperfecto, y podrías perder algunas cantidades.

Por ejemplo, en la industria farmacéutica, cuando tienen procesos biológicos muy avanzados, podrías perder un lote de producción porque se trata de un cultivo de células para producir los medicamentos más avanzados. A pesar de décadas de esfuerzos, cuando trabajas con organismos vivos que producen los compuestos químicos que deseas extraer y que formen parte de tu medicamento, es muy difícil tener un proceso que sea completamente 100% fiable. No es lo mismo que el mecanizado en la industria automotriz.

Kieran Chandler: Entonces, ¿es aquí donde entra la idea de modelar aquellos resultados que no son completamente deterministas?

Joannes Vermorel: Sí, pero también el hecho de que puedes obtener conocimientos muy específicos sobre el tipo de problemas que puedes tener. Por ejemplo, en la industria farmacéutica, si tienes un problema, lo más probable es que pierdas todo el lote de cultivos que tienes en la planta. No será como en el mecanizado de la industria automotriz, donde una pieza de cada diez mil no pasa el control de calidad. Si estás en la industria farmacéutica y tienes cultivos que generan ciertos tipos de compuestos químicos, podrías perder todo el lote si surge un problema.

Kieran Chandler: Eso cambia completamente el tipo de incertidumbre, y puedes intentar aprenderlo a partir de los datos, pero es difícil porque puede que no dispongas de 20 años de datos relevantes. De alguna manera, estás haciendo el problema más difícil de lo que debería ser, ya que te gustaría poder expresar este tipo de conocimiento, la realidad física de tu negocio, directamente en el modelo. Así que el enfoque probabilístico es muy bueno, pero mi punto es, ¿qué hay de tener un enfoque como la programación diferenciable donde puedes enmarcar los problemas que intentas aprender de manera que dirijas directamente tus algoritmos de machine learning hacia el tipo muy específico de incertidumbre que esperas encontrar porque sabes muchas cosas sobre tu red? Y puede cambiar las reglas del juego, porque de repente necesitas muchos menos datos para ser súper eficiente.

Joannes Vermorel: Absolutamente. La verdadera virtud radica en esta idea de programación. No se trata de una IA a la cual puedas simplemente arrojarle datos y decirle que aprenda; es lo contrario. Se dice que los datos son escasos, y quiero ser muy preciso, pero necesito aprovechar al máximo los datos que tengo. Esto no es como Google tratando de analizar mil millones de páginas web; no tenemos datos infinitos. Los datos son escasos; hay datos erráticos, y son muy valiosos porque no tenemos tantos puntos de datos. Por ejemplo, si queremos volver a la industria farmacéutica y hacer forecast estratégicos muy perspicaces, está todo el asunto de la expiración de patentes.

La expiración de patentes está impulsando a las grandes farmacéuticas. Tienes un producto, un medicamento patentado, y luego cuando la patente expira, existe el riesgo de que los competidores entren en tu mercado a un precio más bajo y compitan contigo, obligándote a bajar también tus precios, lo que puede reducir significativamente tu margen. Este asunto de la expiración de patentes es completamente obvio para cualquiera que esté familiarizado con la industria farmacéutica, y ha estado impulsando la innovación y la actividad de las grandes compañías farmacéuticas durante décadas. Si esperas que un algoritmo de machine learning redescubra por sí solo este mecanismo de expiración de patentes, eso es un poco absurdo. En contraste, la programación diferenciable es como una herramienta para supply chain scientists para decir, bueno, sé que tengo este asunto de la expiración de patentes. Lo que no sé exactamente es cuál es la probabilidad de que los competidores entren en la arena y compitan con nosotros en precio. Y lo que no sé exactamente es cómo se va a desarrollar esto para nosotros si de repente tenemos que suministrar las cantidades que vendemos solo porque otros competidores entran y mantenemos todos los mismos costos fijos.

Si mantengo la misma capacidad de producción, entonces tengo muchos costos que son completamente fijos y no dependen de la cantidad que produzco, y así, si tengo competidores que entran en el mercado, el efecto en mis márgenes puede ser completamente no lineal. Así que tienes razón; se trata completamente de poder modelar los conocimientos clave que son específicos de un sector a otro, programándolos en el modelo de machine learning.

Kieran Chandler: Y el problema que muchas personas pueden tener con la programación diferenciable es que es bastante compleja en algunas partes. ¿Estamos a veces usando una maza para romper una nuez, y existen técnicas más simples que aún podríamos usar?

Joannes Vermorel: Siempre puedes utilizar técnicas más simples, pero creo que la pregunta clave que los clientes deberían hacerse es: si gestionas una supply chain compleja, ¿realmente puedes decidir ignorar la complejidad del negocio en el que operas? Por ejemplo, si estás vendiendo piezas automotrices en una plataforma de ecommerce y estás prestando servicio a los propietarios de automóviles…

Kieran Chandler: ¿Realmente puedes ignorar los problemas que tienes, como las compatibilidades mecánicas entre vehículos y piezas? La realidad es que las personas que vienen a comprar piezas de automóvil en tu sitio web, los verdaderos clientes no son esas personas, sino sus vehículos. Así que el vehículo es el cliente final de esas piezas, y en el núcleo de la demanda tienes un problema de compatibilidad mecánica. Si tienes muchas piezas que son perfectos sustitutos porque todas son mecánicamente compatibles con algún vehículo, es un aspecto súper importante de tu negocio. Lo que digo es que este es un ejemplo donde necesitas aceptar esto porque es realmente el núcleo de tu negocio. Un enfoque simplista que simplemente ignore el desafío de la compatibilidad entre pieza y vehículo, que es completamente crucial cuando se piensa en el mercado de repuestos automotrices, puede funcionar, pero a costa de ser increíblemente crudo en términos comerciales.

Joannes Vermorel: Lo que digo es que, en términos de utilizar una maza, no deberías estar utilizando tecnología sofisticada por el mero hecho de ser sofisticada. Lo que estoy diciendo es que, si estás usando algo que simplemente ignora el motor clave de tu negocio, entonces cualquier modelo que tengas será increíblemente simplista, y no esperes que esa solución numérica sofisticada o lo que sea realmente resuelva el problema comercial que tienes si tu receta numérica comienza ignorando completamente este ángulo del negocio. Mi punto es que deberías ser tan simple como sea posible, pero no más simple de lo que realmente requiere tu negocio.

Kieran Chandler: Para concluir hoy, anteriormente en Lokad, teníamos un enfoque muy programático. ¿Cuál es el gran cambio que la programación diferenciable nos está ofreciendo, y cómo pueden las compañías adaptarse para aprovecharlo?

Joannes Vermorel: La programación diferenciable es, de hecho, una continuación de este enfoque programático que ha sido el motor de Lokad durante mucho tiempo. Ahora es algo donde este enfoque programático entra en el núcleo de nuestra tecnología de machine learning. No se trataba solo del núcleo de nuestra Plataforma de Big Data con mecanismos para procesar grandes volúmenes de datos, sino de simples filtrados, agregaciones y el típico preprocesamiento, data cleaning, y así sucesivamente. Eso ya era completamente programático, pero el núcleo de machine learning era algo rígido. Con deep learning, ya éramos mucho más flexibles que con la generación anterior, pero es una nueva etapa. Para nuestros clientes, creo que es la oportunidad de revisar muchos problemas y situaciones en las que, en el pasado, habíamos hecho muchas soluciones caseras. Cuando no tienes algo que sea flexible, terminas parcheándolo con trucos ingeniosos, pero no son tan escalables como quisiéramos. Pueden ser algo crudos y aproximar el conocimiento del negocio de manera subóptima. Aquí, es una oportunidad para replantearlo y hacer prácticamente lo mismo, pero de una manera más ágil en términos de ejecución y con mayor rendimiento en términos de precisión cuando se cuenta en euros o dólares de error, desde el punto de vista empresarial.

Kieran Chandler: Genial, muchas gracias por tu tiempo hoy. Eso es todo para nuestra mini-serie sobre programación diferenciable. Volveremos la próxima semana con otro episodio sobre un nuevo tema, pero hasta entonces, gracias por mirar. Adiós.