La previsión es esencial para la planificación y las operaciones de cualquier empresa, especialmente en aquellas en las que el éxito depende en gran medida de la eficiencia operativa. Los comercios minoristas deben asegurarse de que la oferta satisface la demanda ante los volátiles cambios en las preferencias estacionales y la demanda de los consumidores. Los fabricantes deben asegurarse de que disponen de la cantidad adecuada de suministros e inventarios para satisfacer los pedidos sin bloquear dinero en recursos ociosos o no utilizados. Otros sectores dependen de las previsiones para la dotación de personal, los compromisos con los proveedores y la planificación financiera, entre otras muchas aplicaciones.
Del mismo modo, DoorDash tiene muchas necesidades de previsión que abarcan desde las entregas hasta el marketing y el rendimiento financiero. Para garantizar que nuestros socios comerciales internos obtienen la información que necesitan, nuestro equipo de Ciencia de Datos desarrolló lo que llamamos nuestra Fábrica de Previsiones, una plataforma que permite a todos nuestros equipos configurar sus propias previsiones sin la ayuda de un equipo dedicado de científicos de datos. Hablaremos de las características generales de las previsiones y de los retos que plantea su gestión a gran escala, y a continuación explicaremos cómo hemos sido capaces de superar estos retos creando nuestra Fábrica de Previsiones.
Qué cubren las soluciones de previsión
A pesar de los diferentes procesos operativos que soportan las previsiones, hay muchos puntos en común entre las implantaciones:
- Evaluación comparativa del rumbo y la velocidad actuales
- Si se mantiene un funcionamiento estático, ¿cuál sería la demanda? ¿Cuánto duraría nuestro inventario? ¿A cuántos tickets de atención al cliente se enfrentarían nuestros agentes?
- Planificación de escenarios
- Si tomamos una medida concreta, ¿cómo cambiaría la demanda? ¿Cómo reduciría la probabilidad de que se agotaran las existencias el momento de pedirlas?
- Toma de decisiones detallada
- ¿Podemos contratar agentes de asistencia adicionales sólo para los proveedores que estarán sobrecargados? ¿Podemos adelantar la reposición de existencias sólo para las SKU que estén en riesgo? ¿Podemos concentrar los recursos únicamente en las líneas de negocio que corren más riesgo de incumplir el plan?
Como proveedor logístico que opera múltiples líneas de negocio a escala internacional y da soporte a miles de comerciantes asociados, la implementación de previsiones es especialmente clave para DoorDash. La salud de nuestro mercado requiere que gestionemos constantemente la oferta y la demanda entre los Dashers (nuestro término para los conductores de reparto), los comerciantes y los consumidores. La adquisición está vinculada a proyecciones de demanda a largo plazo. La dotación de personal de los agentes de soporte debe ajustarse al volumen previsto de tickets de soporte para mantener la calidad de los resultados para nuestros comerciantes, Dashers y consumidores. El equipo de comerciantes debe conocer las preferencias gastronómicas para garantizar que nuestros consumidores dispongan de la selección adecuada. Todos los aspectos de nuestro negocio se basan en la necesidad de contar con previsiones fiables y continuamente actualizadas que permitan una eficiencia operativa de primer nivel en miles de zonas geográficas diferentes.
Aliviar los retos de gestionar miles de previsiones
Realizar previsiones de calidad para una sola de estas aplicaciones podría requerir fácilmente la atención de varios científicos de datos. La ampliación a miles de previsiones con recursos dedicados sería insostenible con ese nivel de apoyo. Otros retos (especialmente con previsiones gestionadas de forma difusa) son:
- Formatos incompatibles e incoherentes alojados en distintos soportes (Excel, bases de datos, herramientas de inteligencia empresarial (BI)) que dificultan la comparación de las previsiones.
- Ejemplo: Las previsiones de volumen son totales semanales alojados en una base de datos, mientras que el equipo de asistencia utiliza ratios de tareas diarias con respecto al volumen alojados en Excel.
- Falta de una ubicación central para que la alta dirección analice los resultados operativos.
- Ejemplo: Los informes financieros diarios requieren SQL para las previsiones alojadas en bases de datos, entrada manual para Excel y descarga de cuadros de mando para los gestionados con herramientas de BI, lo que conlleva grandes esfuerzos de integración.
- Transferencias ineficaces a los socios comerciales dependientes
- Ejemplo: La planificación de la demanda bloquea su previsión los miércoles por la mañana, pero la planificación de la oferta necesita tomar decisiones para la semana siguiente el lunes.
- Incapacidad para incorporar conocimientos empresariales pertinentes
- Ejemplo: Cientos de operadores de mercados locales tienen flexibilidad sobre las promociones de marketing con un efecto material agregado, pero la sobrecarga de recopilar cientos de acciones individuales impide incorporarlas a una previsión central.
DoorDash se enfrentó a muchos de estos retos. Al tratarse de una organización matricial, los científicos e ingenieros de datos se reparten entre verticales como consumidor, comerciante, logística, Dasher, excelencia operativa y marketing, todos ellos con necesidades distintas. Para agravar el problema, el mercado está activo las 24 horas del día, la estrategia empresarial depende en gran medida de la correspondencia entre los resultados y los objetivos operativos, y todo el proceso debe optimizarse a nivel de subcódigo postal.
Resolver la previsión empresarial con una plataforma centralizada
DoorDash creó Forecast Factory, un conjunto de herramientas de previsión centralizado que puede aceptar ajustes humanos y conocimientos empresariales, para resolver estos problemas operativos. Forecast Factory permite a los equipos operativos incorporar previsiones críticas para gestionar su ejecución, presentación y análisis.
Esta plataforma ofrece las siguientes ventajas:
- Escalabilidad: Los equipos disponen ahora de una forma sencilla de conectar sus datos, obtener una previsión, enviar ajustes, planificar escenarios, finalizar un modelo y bloquear y distribuir los resultados.
- Coherencia: Asegúrese de que las previsiones tienen un formato coherente y una ubicación centralizada con métricas de precisión definidas.
- Plazos: La programación, la paralelización y la asignación automática de recursos hacen que las previsiones estén listas a tiempo para que las consuman los procesos operativos en diferentes programaciones.
- Precisión: Acceso a un conjunto de los mejores algoritmos de aprendizaje automático.
- Acceso: Los socios disponen de una interfaz coherente y un conjunto creciente de visualizaciones para difundir previsiones y objetivos.
Diseñar la fábrica de previsiones
Nuestra plataforma centralizada se centra en un conjunto de herramientas modulares de previsión que permite a los equipos personalizar las canalizaciones a sus necesidades específicas con conocimientos técnicos moderados.
Los principales componentes del kit de herramientas son:
- Datos históricos: Una consulta SQL extrae una serie con una columna de destino y una columna de fecha que se asignan al sistema a través de un archivo de configuración. El conjunto de herramientas puede producir previsiones fiables con tan sólo 28 días de datos para una serie diaria. La interfaz se diseñó para facilitar al máximo esta tarea a nuestros usuarios finales y permitirles actualizar la consulta con cambios directos.
- Rebanador de datos de series temporales: Este método permite entrenar el algoritmo sobre diferentes unidades temporales, horizontes, frecuencias y periodos de optimización. También permite a los equipos ajustar las características de las previsiones a sus objetivos, incluso sobre la misma serie. Este componente gestiona todas estas transformaciones de datos a lo largo del proceso de entrenamiento y predicción.
- Unidad: horaria, diaria, semanal, mensual, etc.
- Horizonte: número de unidades por delante para las predicciones (por ejemplo, siete días, seis semanas, etc.)
- Frecuencia: programa de actualización (por ejemplo, diario, semanal, etc.)
- Periodo de optimización: periodo de tiempo crítico para la precisión en las unidades que optimiza el entrenamiento.
- Preprocesamiento de datos: Este paso se ocupa de los ajustes necesarios en las series de entrada, cada uno de los cuales puede ser seleccionado por el algoritmo en función de la precisión. El conjunto de herramientas cuenta con opciones ya preparadas para eliminar los efectos de valores atípicos, vacaciones, interrupciones, promociones y otros eventos que se desvían del curso y la velocidad actuales de la serie. Éstas pueden añadirse directamente como características en pasos posteriores, pero permiten una interfaz importante para controlar estos efectos en modelos de series temporales (por ejemplo, suavizado exponencial) que sólo operan sobre la propia serie. Los preprocesadores (y los procesadores de predicción) pueden incluir modelos construidos sobre los residuos de las series temporales para proporcionar un puente adicional que permita utilizar características externas para estimar y controlar efectos difíciles de especificar, como el clima.
- Algoritmo de series temporales: El kit de herramientas está diseñado para ser agnóstico respecto a la elección del algoritmo de modelización. En la actualidad, la mayoría de las previsiones se basan en modelos de series temporales combinados con procesamiento para controlar los efectos externos. Sin embargo, pueden utilizarse otros modelos, como Gradient Boosted Machines y Prophet, gracias a la posibilidad de pasar conjuntos de características al modelo a través de Time Series Data Slicer para disponer de las características adecuadas en el momento oportuno.
- Procesamiento de predicciones: Este paso es similar al de preprocesamiento, excepto que se realiza sobre las propias predicciones para el futuro. Aquí se realizan ajustes similares fuera del rumbo y la velocidad actuales para los modelos de series temporales. Ajustes para ascensos conocidos, coeficientes de vacaciones calculados y ajustes residuales basados en modelos meteorológicos son ejemplos de pasos implementados actualmente.
Selector de componentes/Búsqueda en cuadrícula: Este objeto permite al usuario especificar qué componentes y parámetros deben someterse a backtest en una ventana temporal determinada. Aquí se especifican distintas combinaciones de parámetros externos, como preprocesadores, ventanas retrospectivas (que limitan el intervalo de datos de entrada) y postprocesadores, junto con parámetros internos específicos del modelo, como la estacionalidad aditiva/multiplicativa para algoritmos de suavizado exponencial. Esto proporciona al conjunto de herramientas la capacidad de aprender los mejores parámetros del algoritmo, pero también de realizar ajustes como acortar la serie temporal de entrada durante los periodos de cambio rápido y descartar los ajustes de vacaciones cuando el patrón parece haberse desviado de la historia. La posibilidad de especificar funciones de pérdida personalizadas también significa que podemos adaptar la selección a los objetivos específicos del equipo.
Previsión Infraestructura de la fábrica
Para hacer operativo el conjunto de herramientas, Forecast Factory se integra en una arquitectura que permite la entrada de datos por parte del usuario, la exploración interactiva de previsiones candidatas y bloqueadas, resúmenes de precisión y el envío de ajustes sobre la marcha:
La infraestructura de Forecast Factory se basa en Dagster para la orquestación de tareas y en Databricks para la ejecución. Las visualizaciones estándar permiten a los usuarios explorar varias previsiones candidatas -incluida la marcada como mejor por el kit de herramientas- y decidir cuál fijar como definitiva para su caso de uso. Las visualizaciones de precisión permiten a los usuarios ver cómo se han comportado las distintas previsiones a lo largo del tiempo y durante qué periodos, de modo que puedan hacer selecciones más informadas para el futuro.
Los principales componentes de la tubería son el:
- ETL de base: es la consulta suministrada por el usuario final para proporcionar las series de entrada para la previsión.
- Código de previsión: Aquí se ejecuta cualquier paso de previsión, como características que deban calcularse, un predictor residual que deba entrenarse antes de su uso en el procesamiento de preprocesamiento o predicción, o una comprobación de cualquier interrupción notificada en días anteriores.
- Previsiones de base: El modelo campeón seleccionado por el algoritmo, así como cualquier otra previsión candidata (por ejemplo, al equipo le suele gustar observar una versión sin efectos de vacaciones para ver cómo el algoritmo tiene en cuenta el impacto, una versión con una ventana retrospectiva más larga para comparar el largo y el corto plazo, etc.).
- Seleccionar ajustes: Los usuarios pueden seleccionar ajustes especificados para las series de entrada o las predicciones. Existe una base de datos de ajustes estándar que permite a los usuarios crear sus propios ajustes del proceso de preprocesamiento o predicción directamente a través de una API de Python o importando desde una hoja de Google. Esto garantiza que los usuarios con conocimientos empresariales (una promoción el próximo miércoles) puedan suministrar esa entrada sin necesidad de pasar por el equipo de Data Science.
- Previsiones base ajustadas: Algunos ajustes (eliminación de una promoción pasada de la serie de entrada) pueden requerir que se vuelva a ejecutar el algoritmo de previsión. Este paso lo tiene en cuenta y produce la previsión ajustada.
- Recopilar candidatos: Los candidatos se almacenan en una base de datos con un esquema que adjunta metadatos (por ejemplo, parámetros internos y externos) y controla qué previsión se bloquea como final y se expone al proceso del usuario final. Una visualización de exploración permite a los usuarios ver los candidatos uno al lado del otro y compararlos con datos reales anteriores y un conjunto de métricas.
- Seleccionar previsión final: Una vez seleccionada la previsión final y marcada como tal en el modelo de datos, se almacenan los metadatos relativos a la previsión, se crean las jerarquías necesarias (por ejemplo, previsiones normalizadas de nivel de mercado a previsión de nivel superior) y se rellena la información de precisión. La precisión histórica de la previsión bloqueada (y de las candidatas) puede consultarse a través de un panel de precisión.
Conclusión
El conjunto de herramientas y la infraestructura de canalización anteriores proporcionan una estructura modular que permite la generalización a una amplia gama de casos de uso de los socios comerciales, al tiempo que acorta los ciclos de incorporación. Los socios pueden modificar directamente la consulta a medida que se producen cambios en los datos o procesos subyacentes y/o se añaden nuevas geografías o niveles. Los usuarios de negocio pueden enviar ajustes de forma rápida e intuitiva sin tener que involucrar a un científico de datos para aplicar los cambios manualmente. Si los científicos de datos de áreas de interés específicas desean incluir sus propios algoritmos, funciones de pérdida personalizadas o de otro tipo, estos componentes pueden ampliarse sin tener que reescribir todo el sistema.
Agradecimientos
Gracias a todos los que han contribuido al proyecto de la fábrica de previsiones. DSML: Lauren Savage, Qiyun Pan, Chad Akkoyun Plataforma: Brian Seo, Swaroop Chitlur, Hebo Yang y todos nuestros increíbles socios.