4 min de lectura

Sistema de recomendación en tiempo real: Airbnb pasó de 2 días a segundos de retraso con Chronon

Sistema de recomendación en tiempo real: Airbnb redujo la obsolescencia de sus embeddings de 2 días a segundos con Chronon. Lecciones útiles para tu empresa.

Ilustración abstracta de datos que pasan de un flujo lento y opaco a uno veloz y luminoso, símbolo de recomendaciones en tiempo real

Imagina que navegas una docena de alojamientos un martes por la tarde, lanzas otra búsqueda por la noche y esperas que la plataforma ya sepa qué te interesa. Hasta ahora, Airbnb no lo sabía: su ranking trabajaba con una foto de tu comportamiento que podía tener casi dos días de antigüedad. La compañía acaba de cerrar esa brecha con un sistema de recomendación en tiempo real que actualiza el perfil del huésped en menos de un minuto, y normalmente entre 10 y 30 segundos.

El cambio se apoya en dos capacidades nuevas que Airbnb añadió a Chronon, su plataforma de features de código abierto: Push Mode y Near Real-Time (NRT) Model Transform. Según InfoQ, los resultados fueron una mejora de 1,67% en NDCG offline (una métrica de calidad del ranking) y un aumento de aproximadamente 0,33% en reservas no canceladas en pruebas A/B online. Conviene leer bien las cifras: algunos resúmenes en la web atribuyen el 1,67% a las pruebas online, pero la fuente original lo sitúa en las evaluaciones offline.

Cómo funcionaba antes y qué cambió en los embeddings

El punto de partida era JourneyFormer, un recomendador basado en un Transformer que resume en un embedding las reservas, reseñas y navegación de cada huésped. Para no meter un modelo tan pesado en la ruta crítica de la búsqueda, Airbnb lo ejecutaba como un trabajo por lotes nocturno. Cada noche procesaba la actividad del día anterior y guardaba el resultado en un almacén de baja latencia, del que el ranking leía al momento de la consulta. Rápido para servir, pero con un coste: lo que hacías hoy no existía para el modelo hasta la siguiente ejecución.

El equipo (liderado en el blog técnico por Pengyu Hou) identificó dos fuentes de retraso: el calendario diario del batch y el lag de procesamiento interno. Ejecutar el job más a menudo no bastaba. Había que reaccionar a cada evento. La solución fue que Push Mode haga que un job de streaming publique una notificación cuando un valor de feature se confirma, y que NRT Model Transform permita ejecutar dentro de ese pipeline de streaming el modelo ya desplegado.

El flujo captura búsquedas y vistas de alojamientos, las combina con la secuencia de corto y largo plazo del huésped, lanza la inferencia y escribe el nuevo embedding en el mismo almacén que ya usaba el sistema batch. La ruta de ranking apenas cambió. Airbnb reutiliza además el mismo encoder Transformer, sin una segunda implementación solo para streaming, lo que protege la consistencia con el pipeline anterior. Ambas capacidades ya están en el repositorio público de Chronon.

InfoQ compara el enfoque con Feast, otra plataforma open source que documenta arquitecturas de predicciones en caché disparadas por cambios en las features. En ambos casos se pagan más escrituras y más complejidad de pipeline a cambio de baja latencia en servicio. Chronon, en cambio, integra streaming y transformación del modelo dentro de la propia plataforma y prioriza la coherencia entre el cálculo offline y el online.

Cómo construir un sistema de recomendación en tiempo real sin rehacer tu arquitectura

La lección más útil no es "usa Chronon", sino cómo Airbnb evitó una reescritura. Estas son las ideas aplicables:

  • Mide primero tu obsolescencia real. Airbnb creía tener un retraso diario y en la práctica era casi de dos días. Calcula cuánto tarda un evento de usuario en reflejarse en lo que ve el modelo.
  • Separa lo pesado de lo urgente. Mantener el modelo fuera de la ruta de servicio y precalcular embeddings sigue siendo válido. Lo que cambia es cuándo se recalculan: al llegar el evento, no según el reloj.
  • Reutiliza el mismo modelo en batch y streaming. Duplicar la lógica de inferencia es la receta para que entrenamiento y producción diverjan.
  • Fusiona eventos con el contexto histórico. Una vista de página aislada dice poco. Su valor aparece al combinarla con el perfil de largo plazo del cliente.
  • No toques lo que funciona. Escribir en el mismo almacén de baja latencia permitió mejorar la frescura sin rediseñar el ranking.
  • Hay también una cautela honesta. Un 0,33% más de reservas no canceladas puede parecer modesto, pero en una plataforma del tamaño de Airbnb es un porcentaje relevante (una lectura nuestra, no una cifra publicada). Para una empresa mediana el cálculo cambia. Antes de invertir en inferencia en streaming, valora si tus usuarios toman decisiones en sesiones cortas y si la intención reciente pesa más que la histórica. En viajes, marketplaces o retail, suele ser así. En un SaaS con compras anuales, quizá no.

    También conviene recordar que esta mejora llega tras años de trabajo de base. Airbnb ya había apostado fuerte por la IA en ingeniería y soporte, como contamos en cómo Airbnb escribe el 60% de su código con IA. Y si tu reto es personalizar sin reentrenar modelos gigantes, el caso de Amazon Payments con contextual bandits muestra otra vía. Tratar los eventos como un flujo continuo es también la base de lo que hace Netflix para diagnosticar fallos a partir de 38 millones de eventos por segundo.

    La pregunta para tu equipo no es si puedes permitirte un sistema de recomendación en tiempo real, sino cuántas decisiones de tus clientes se están tomando hoy sobre una versión de ellos que ya no existe. Empieza por medir esa brecha: quizá sea tu mejor palanca de conversión.

    Preguntas frecuentes

    ¿Qué resultados obtuvo Airbnb con su sistema de recomendación en tiempo real?

    Airbnb redujo la obsolescencia de los embeddings de casi dos días a menos de un minuto, con actualizaciones típicas de 10 a 30 segundos. Además, reportó una mejora de 1,67% en NDCG offline y un aumento aproximado de 0,33% en reservas no canceladas en pruebas A/B online.

    ¿Qué son Push Mode y NRT Model Transform en Chronon?

    Push Mode hace que un job de streaming publique una notificación cuando un valor de feature se confirma, evitando consultas periódicas. NRT Model Transform permite ejecutar un modelo ya desplegado dentro del pipeline de streaming. Juntos actualizan embeddings en segundos con el mismo Transformer que usa el sistema batch.

    ¿Puede mi empresa usar Chronon para recomendaciones en tiempo real?

    Sí. Airbnb contribuyó Push Mode y NRT Model Transform al repositorio público de Chronon, que es de código abierto y soporta cómputo batch y streaming. La fuente no detalla costos de implementación, así que conviene evaluar primero si la frescura de datos impacta tus conversiones.