Clasificado en la 6ª posición de 909 equipos en la competencia M5 forecasting
Un equipo de empleados de Lokad, a saber, Rafael de Rezende (líder), Ignacio Marín Eiroa, Katharina Egert y Guilherme Thompson 1, ha quedado en la 6ª posición en la M5 Forecasting competition entre 909 equipos concursantes. Es un logro impresionante, y me siento orgulloso de lo que este equipo ha conseguido. Construir una cultura orientada hacia resultados cuantitativos ha sido un objetivo de larga data para Lokad, y el resultado de esta competencia demuestra cuán lejos hemos avanzado en este camino.

Según mi conocimiento, esta es la primera vez que una competencia pública de demanda forecasting competition ha involucrado quantile forecasts, una perspectiva que se relaciona directamente con el trabajo de Lokad back in 2012. Aunque a la academia le ha tomado 8 años ponerse al día con los cuantiles, esto no hace que este logro sea menos significativo. Los forecast “clásicos” desnudos están prácticamente rotos por diseño en lo que respecta a supply chain. Los quantile forecasts no son not the endgame, pero sin embargo funcionan donde no lo hacen los safety stocks. Esto lo veo como un paso importante en la dirección correcta.
En cuanto a resultados, los contendientes desde el puesto 1 hasta el 6 están increíblemente parejos. El equipo en primer lugar2 logró avanzar unos pocos porcentajes. Sin embargo, mi experiencia personal indica que, incluso para una red minorista supergrande como Walmart, una reducción del 5% en la pérdida de pinball - una métrica que puede utilizarse para evaluar la exactitud de los quantile forecasts - sería casi imperceptible en términos de dólares de error. De hecho, a este nivel de precisión, los modelos de forecasting son esencialmente equivalentes, y otros aspectos (que no fueron cubiertos por la competencia M5) dominan, tales como la capacidad de enfrentar faltante de stock, surtidos variables, canibalizaciones y plazos de entrega erráticos. Estas preocupaciones hacen una diferencia mucho mayor que unos pocos porcentajes en la pérdida de pinball.
En cuanto al modelo, el equipo de Lokad utilizó un modelo paramétrico de baja dimensión que incluía las ciclicidades relevantes (día de la semana, día del mes, mes del año) a nivel de tienda/categoría, una línea base que eliminaba las ciclicidades y el ruido del faltante de stock, y un modelo de espacio de estado de 2 parámetros para transformar la línea base en trayectorias diarias (con contribuciones multiplicativas de las ciclicidades). Además, al igual que el equipo ganador, Lokad no utilizó datos de precios ni ningún dato externo. La mayor dificultad técnica para el equipo de Lokad resultó ser lidiar con los faltantes de stock que debían forecast: se trató de un ejercicio de forecasting de sales, no de forecasting de demand. Esto se tratará con más detalle más adelante cuando retomemos la letra pequeña de este modelo.
En general, si un modelo paramétrico de baja dimensión bien elegido, como el que Lokad utilizó en la competencia M5, puede acercarte en unos pocos porcentajes a la exactitud del método de última generación - que resulta ser árboles de gradient boosted enriquecidos con rangos - entonces, en producción, este modelo se comportará garantizadamente de manera mucho más estable en comparación con los modelos no paramétricos o hiperparamétricos, y será mucho más fácil de ajustar estructuralmente 3 cuando surja la necesidad.
Además, el rendimiento en computación del modelo tiende a ser un asesino operativo nada sutil. El equipo en primer lugar informó que ejecutar su prediction tomó “un par de horas” (sic) en una configuración de estación de trabajo con 10+10 CPU. Esto puede parecer rápido, pero ten en cuenta que el conjunto de datos M5 tenía solo 30k SKUs, lo cual es muy pequeño comparado con el número de SKUs en la mayoría de las redes minoristas (algunas categorías en algunas tiendas). Estimo que Walmart tiene más de 100M SKUs para gestionar a nivel global, por lo que hablamos de decenas de miles de horas de cómputo por prediction 4. Las redes minoristas a las que Lokad presta servicio normalmente nos otorgan una ventana de ~2 horas cada día para actualizar nuestros forecasts, de modo que cualquier modelo que escojamos debe ser compatible con este horario tanto para training como para forecasting 5. Desplegar el modelo del equipo en primer lugar es ciertamente posible a la escala de Walmart, pero gestionar el clúster de cómputo por sí solo requeriría un equipo propio.
La competencia M5 fue una mejora importante respecto a sus iteraciones anteriores. Sin embargo, el conjunto de datos sigue estando muy lejos de asemejarse a una situación minorista real. Por ejemplo, la información de precios solo estaba disponible para el pasado. En la práctica, las promociones no ocurren de manera aleatoria: se planifican. Por lo tanto, si se hubieran proporcionado los datos de precios para el período a forecast, la competencia se habría orientado hacia modelos que realmente hicieran uso de esta información en lugar de descartarla de inmediato.
Aparte de los precios futuros, faltaron en la competencia M5 dos piezas fundamentales de datos: niveles de stock y transacciones desagregadas, ambos casi siempre disponibles en las cadenas minoristas. Los niveles de stock son importantes porque, obviamente, sin stock no hay ventas (sesgo de censura). Las transacciones desagregadas son relevantes porque, según mi experiencia, es casi imposible evaluar cualquier tipo de canibalización o sustitución sin ellas, mientras que una observación casual de los estantes minoristas indica claramente que juegan un papel importante. El modelo que el equipo de Lokad utilizó para quedar en sexto lugar no contó con nada en este sentido, y el modelo que quedó en primer lugar tampoco lo tuvo.
En conclusión, es un resultado fantástico para Lokad. Aunque definitivamente queda progreso por hacer para que las competencias de forecasting resulten más realistas, instaría a mis lectores a no tomar estos resultados demasiado al pie de la letra, ya que M5 es una competencia de forecasting. En la vida real, faltantes de stock, lanzamientos de productos, promociones de productos, cambios en el surtido, problemas con proveedores y horarios de entrega deben tenerse en cuenta. El mayor desafío no es recortar unos míseros pocos porcentajes de error aquí o allá, sino asegurar que la receta numérica de extremo a extremo no tenga puntos ciegos tontos que terminen arruinando toda la iniciativa de optimización de supply chain.
-
Técnicamente, un ex-empleado de Lokad en el momento de la competencia. ↩︎
-
El equipo ganador incluyó a Northquay (seudónimo) y Russ Wolfinger. Su equipo se llamó Everyday Low SPLices para esta competencia M5. Para mayor claridad, me refiero a ellos simplemente como el equipo en primer lugar. ↩︎
-
Las crisis ocurren rutinariamente en supply chain. Covid-19 es solo la última crisis a nivel mundial, pero las crisis localizadas suceden todo el tiempo. Los datos históricos no siempre reflejan los eventos que se desarrollan en supply chain. Con frecuencia, la visión de alto nivel del supply chain scientist es la única forma de orientar los modelos hacia decisiones sensatas. ↩︎
-
El equipo en primer lugar utilizó LightGBM, una biblioteca en C++ capaz de ofrecer un rendimiento algorítmico de última generación para esta clase de modelos. Además, el equipo empleó trucos numéricos algo avanzados, como el uso de números en media precisión. Al transicionar a un entorno de producción, el rendimiento de cómputo por SKU probablemente disminuya debido a la complejidad/heterogeneidad extra impuesta por un entorno de producción real. ↩︎
-
No todos los modelos son igualmente adecuados para aislar el entrenamiento de la evaluación. El rendimiento puede variar. Los problemas de datos ocurren de vez en cuando, por lo que en estas situaciones, los modelos deben ser reentrenados, y esto debe suceder rápidamente. ↩︎