Inicio / Artículos

Enseñar a un sistema de recomendación dónde quieren vivir las personas: embeddings geográficos

Un recomendador de viviendas sustituyó las coordenadas de latitud y longitud brutas por embeddings geográficos H3 aprendidos en un modelo de dos torres. Cómo se construyó y los resultados de prueba A/B que reportó.

Editor: REACTAPP.TOP11 min de lectura2589 palabras

Fuentes: **Location Matters: Leveraging Multi-Resolution Geo-Embeddings for Housing Search**

Un mercado inmobiliario con millones de anuncios enfrenta un problema de descubrimiento. Con tal cantidad de inventario, mostrar a cada persona la vivienda adecuada es el objetivo principal, y para la mayoría de las personas el factor decisivo es la ubicación de la vivienda. Este artículo explica cómo el equipo de recomendaciones de la plataforma inmobiliaria más grande de América Latina, una que ayuda a inquilinos, compradores y propietarios a alquilar y comprar sin los trámites habituales, reconstruyó la forma en que su modelo entiende la ubicación. Este trabajo fue presentado en RecSys 2025 en Praga, y todas las cifras que se indican a continuación son los datos proporcionados por el propio equipo.

Por qué la ubicación merece atención especial

Una encuesta realizada a casi 800 usuarios de la plataforma reveló que más de la mitad consideró la ubicación como el factor más importante a la hora de decidir un alquiler, por delante del precio, el tamaño y las comodidades. Aunque parece obvio, la ubicación es uno de los indicadores más difíciles de manejar correctamente en un sistema de recomendaciones.

El resto de la historia trata sobre los embeddings conscientes de la ubicación geográfica: vectores aprendidos que codifican dónde se encuentra una propiedad y cuán similares son unos lugares a otros, de manera que el sistema de recomendaciones pueda utilizarlos directamente.

Dónde se encontraba la primera versión

El sistema de recomendaciones es un modelo de dos torres, la arquitectura popularizada por Google y YouTube para realizar búsquedas en catálogos muy grandes. Una torre procesa información sobre un usuario y la otra, información sobre una vivienda. Cada una se proyecta en un espacio de embeddings compartido, y el producto escalar entre ellos determina cuán buena es la correspondencia. La familia interna de estos modelos en la plataforma se denomina HUE, abreviatura de House User Embeddings.

La primera versión fue deliberadamente sencilla y completamente tabular. Cada atributo del lado de las viviendas tenía un equivalente en el lado de los usuarios, calculado como una estadística acumulativa de las quince interacciones más recientes de esa persona.

Es un diseño ordenado: las casas se describen por sus atributos, los usuarios por un resumen de lo que han visto, y las torres determinan cómo se conectan ambos. El alquiler, la superficie y el número de dormitorios se comportaron bien bajo este esquema, ya que el alquiler mediano de las quince propiedades que alguien ha visto recientemente refleja con bastante precisión su presupuesto. La ubicación no lo hizo, y esa es la razón por la que existe este proyecto.

Por qué las coordenadas brutas son características deficientes

Una coordenada no tiene un significado útil. La latitud y la longitud forman una red global que no está relacionada con la forma en que la gente piensa sobre los lugares, y un valor como -22.97 no le dice nada al modelo sobre Copacabana. Para poder actuar sobre él, las capas densas deben delimitar cada barrio de cada ciudad a partir de un plano continuo, aprendiendo los límites únicamente a partir de los datos de interacción. Esto consume mucha capacidad del modelo en algo que cualquier residente local ya conoce.

La cercanía numérica no equivale a similitud funcional. Un río, una autopista o una cresta pueden separar dos lugares que están a solo 500 metros de distancia, lo que les confiere diferentes opciones de transporte, precios y características. Dos barrios separados por diez kilómetros podrían ser sustitutos casi perfectos para un inquilino en particular. La distancia euclidiana entre coordenadas es un sustituto deficiente para la pregunta realmente importante: ¿estaría esta persona igualmente feliz en ambos lugares?

El promedio de las coordenadas anula la señal. Este es el problema fatal, y afecta a la torre del usuario. Imagine a un inquilino en Río de Janeiro que compara Copacabana y Barra da Tijuca, una combinación común. La coordenada mediana de su historial de visualización se encuentra en el macizo de Tijuca, donde casi no hay nada en alquiler. Cualquiera que considere dos o tres áreas distintas, lo cual es el caso de la mayoría de las personas, acaba concentrado en un único punto que nunca habría elegido.

Antes de reemplazar la representación, el equipo intentó solucionarlo añadiendo la latitud y longitud al cuadrado, para que las capas densas pudieran describir con mayor facilidad regiones curvas. La mejora fue pequeña, y precisamente esa pequeñez fue el diagnóstico. Una característica que necesita expansión polinómica antes de que el modelo pueda utilizarla indica una representación defectuosa, no un modelo defectuoso. Por eso el equipo dejó de proporcionar coordenadas al modelo y comenzó a enseñarle geografía.

Dos dificultades estructurales

Cualquier enfoque debe hacer frente a dos problemas.

El primero es la escasez. La cantidad de viviendas en una microzona es pequeña y está distribuida de manera desigual. Se recomienda trabajar estrictamente dentro de un límite reducido, ya que el inventario se agota rápidamente, mientras que el modelo observa demasiadas pocas interacciones por lugar como para aprender algo fiable.

El segundo problema es que la similitud funcional no está especificada en ningún lugar. Nada en la descripción indica si un barrio puede sustituir a otro y por qué: acceso a la playa, transporte, seguridad, nivel de precios. Ese conocimiento solo existe en la forma en que las personas realizan búsquedas, por lo que el modelo debe aprenderlo a partir del comportamiento o prescindir de él.

El enfoque: un modelo de dos torres sobre celdas H3 de múltiples resoluciones

En lugar de crear funcionalidades manualmente, el equipo entrenó una red de dos torres con un objetivo contrastivo, de modo que las representaciones de ubicaciones provengan del comportamiento observado. Una torre de usuarios codifica a las personas, mientras que una torre de ubicaciones codifica a los lugares, y el entrenamiento reúne los vectores de usuarios y lugares que aparecen juntos en interacciones reales de alto propósito.

Lo más importante es la forma en que se describe un lugar. Las coordenadas brutas no se utilizan. En su lugar, cada propiedad se indexa en la cuadrícula H3 de Uber, la cual asigna a una pareja de latitud y longitud un ID de celda hexagonal. Dado que H3 es jerárquica, cualquier punto se encuentra en una celda por nivel de resolución, desde una resolución gruesa (alrededor de 36 km² por celda en la resolución 6) hasta una fina (aproximadamente 0.105 km² en la resolución 9). Cada ID de celda es un token discreto, por lo que se puede aprender un embedding para él de la misma manera en que se aprenden los embeddings de palabras en los modelos de texto.

Las celdas con resoluciones H3 6, 7, 8 y 9 pasan cada una por su propia capa de incrustación, y se añade una incrustación a nivel de ciudad para capturar la forma general de las áreas urbanas. La torre de ubicaciones concatena todas estas incrustaciones y las somete a un par de capas ReLU completamente conectadas, lo que da como resultado un vector de 32 dimensiones por ubicación.

La parte del lado del usuario se mantiene deliberadamente simple: una incrustación de ID de usuario seguida de capas densas, de modo que casi todo el aprendizaje tiene lugar en la torre de ubicaciones. Su función es orientar cada incrustación de ubicación hacia los lugares con los que el usuario realmente interactuó. Después del entrenamiento, se descarta, y lo que queda es el conjunto de vectores de ubicaciones, que luego son reutilizados por los modelos posteriores.

¿Por qué varias resoluciones a la vez? Una sola celda de alta resolución brinda precisión pero carece de datos. Una celda de baja resolución tiene abundancia de datos, pero difumina las diferencias importantes. Al combinar las resoluciones, el modelo puede apoyarse en la región circundante cuando una celda específica ha tenido pocas interacciones, al tiempo que preserva los detalles locales donde hay suficiente evidencia. Piénselo como una pirámide de características para el espacio, y como una solución directa a la escasez de datos.

Señal de entrenamiento. La función de pérdida es el objetivo InfoNCE de la codificación predictiva contrastiva. Las filas son pares (usuario, ubicación) extraídos de interacciones reales de alto nivel de intención, es decir, visitas reservadas o ofertas enviadas. No se seleccionan negativos manualmente. Dentro de cada lote, las ubicaciones pertenecientes a otros usuarios actúan como negativos, lo cual no cuesta nada y refleja la demanda real.

Hay un problema. Un lugar no es como un ID de elemento arbitrario, ya que muchos usuarios pueden estar relacionados legítimamente con la misma ubicación al mismo tiempo. Cuando un resultado negativo del mismo lote resulta ser una ubicación con la que ya interactuó el mismo usuario, la función de pérdida lo trata como un falso negativo y lo oculta, de modo que la pareja no se separe por error. Las similitudes tienen un valor de temperatura, y la entropía cruzada se aplica en ambas direcciones, desde el usuario hacia la ubicación y viceversa.

El modelo se construyó con PyTorch Lightning, utilizando inicialización uniforme Xavier, embeddings de 32 dimensiones, el optimizador Adam y un tamaño de lote de 512. Los datos de entrenamiento constaron de aproximadamente 4 millones de eventos de alta intención, generados por alrededor de un millón de usuarios distintos. Solo se conservaron señales fuertes como reservar una visita o hacer una oferta, mientras que se descartaron eventos de baja intención y ruidosos como los clics.

Cómo se evaluó

La comparación incluyó tres modelos: un punto de referencia de factorización de matrices (ALS con retroalimentación implícita utilizando únicamente la celda H3 más fina), un modelo de dos torres que emplea únicamente la resolución 9 de H3, y el diseño completo de dos torres con múltiples resoluciones. Se llevaron a cabo dos rutas de evaluación de forma simultánea.

Evaluación intrínseca analiza directamente la calidad de los embeddings, independientemente de cualquier tarea posterior, mediante dos criterios de colapso. El primero es la abundancia de información, definida en trabajos recientes sobre el colapso de embeddings como la suma de los valores singulares de la matriz de embeddings dividida entre el más grande. En 32 dimensiones, este valor varía de 1 (colapso total) a 32 (cada dimensión contribuye por igual), por lo que cuanto mayor sea, mejor. El segundo criterio es el espectro de valores singulares de la matriz de covarianza de embeddings normalizada, que muestra cómo se distribuye la varianza entre las dimensiones. Una disminución suave y constante indica que el modelo está utilizando al máximo su capacidad, mientras que una caída brusca señala colapso dimensional, en el cual los embeddings degeneran en un subespacio de rango bajo.

El espectro reportado es claro. El modelo de resolución única disminuye drásticamente en índices de rango más altos, lo cual es un síntoma de colapso. El modelo de múltiples resoluciones muestra la disminución más gradual de los tres, lo que significa que su varianza se distribuye de manera uniforme y utiliza plenamente el espacio de incrustación.

Evaluación extrínseca busca determinar si mejores incrustaciones ayudan a los usuarios. Utilizó un mes de registros de producción (marzo de 2025) provenientes de un módulo de “casas similares”, un sistema de recomendación de artículo a artículo que muestra viviendas parecidas a una lista de referencia. Para cada lista de referencia, las recomendaciones originales se reordenaron según la similitud coseno entre la incrustación geográfica de dicha lista y la de cada candidato, y luego se eliminaron progresivamente las recomendaciones que estaban por debajo de un umbral de similitud.

La métrica empresarial principal es la tasa de flujos de alquiler, que representa la proporción de recomendaciones mostradas que terminaron en una acción con intención clara: una visita en persona o una oferta de alquiler. Los clics son poco fiables, por lo que se utilizan los flujos de alquiler en su lugar, ya que reflejan un interés genuino. Para cada modelo y umbral, se calculó el aumento relativo a las recomendaciones generadas por ese modelo sin filtrado y que contaban con puntuaciones de similitud válidas; la tabla muestra el promedio entre los diferentes umbrales. El entrenamiento finalizó en diciembre de 2024 y la evaluación utilizó los registros de marzo de 2025, por lo que nada del período de evaluación se filtró al entrenamiento.

Al otro lado de la curva, a medida que la lista de recomendaciones se reduce, el modelo de múltiples resoluciones destaca en los umbrales más agresivos, mientras que los enfoques aprendidos se agrupan en la zona intermedia. La comparación más reveladora es con un filtro simple de distancia radial: las mayores mejoras provinieron de la similitud aprendida y no de dar prioridad a viviendas cercanas.

Resultados

La plataforma opera dos líneas de negocio principales: Alquiler y Venta. La evaluación offline se centra en las interacciones de alquiler, donde el volumen de usuarios con intención alta es mayor, mientras que el impacto en línea se evaluó en ambos casos.

Ambos enfoques offline mejoraron con cada aumento en la complejidad del modelo. Una aclaración antes de presentar las cifras: la mejora en el flujo de alquileres es el resultado de una simulación basada en la reclasificación de registros históricos, y no de un experimento en tiempo real. Los resultados reales de tipo A/B se detallan más adelante.

Al pasar de la factorización de matrices al modelo de dos torres de resolución única, la Abundancia de Información aumentó en un 158% y la mejora simulada en los flujos de alquiler en un 84%. Los embeddings H3 de múltiples resoluciones añadieron luego otro 40% a la Abundancia de Información, alcanzando los 21,7, y elevaron la mejora simulada al 10,9%, casi el doble que en el paso anterior. En resumen, proporcionar al modelo un contexto espacial en varias escalas mejoró tanto los embeddings en sí como su efecto simulado en los usuarios.

Para que los embeddings fueran más fáciles de comprender, el equipo creó una herramienta interna que representa en un mapa a los vecinos más cercanos. Al seleccionar un hexágono de anclaje oscuro en Copacabana, se ilumina un grupo de celdas cercanas, aquellas que el modelo considera funcionalmente similares. Es una forma práctica de verificar que la geografía aprendida coincida con la forma en que las personas imaginan una ciudad.

Prueba A/B en línea con casas similares. En el momento en que se redactó el artículo, el experimento con el carrusel de “casas similares” aún estaba en curso. Desde entonces se ha concluido, y las mejoras registradas para dicho carrusel fueron:

  • Alquiler: un aumento del 4.18% en la tasa de clics, y un aumento del 3.38% en los clics que derivaron en una visita programada.
  • Venta: tasa de clics incrementada en un 5.53%.

Lo que realmente cuenta son los resultados reales. Tanto las métricas offline como la prueba A/B indican lo mismo: los geo-embeddings son efectivos.

Integración de GeoEmbeddings en HUE

El estudio de reclasificación sirvió como prueba de concepto. El objetivo real era eliminar la latitud y la longitud del propio sistema de recomendación, lo que dio lugar a la segunda iteración del sistema de recomendación en producción. Los GeoEmbeddings preentrenados se encuentran en una torre compartida y permanecen inmutables, de modo que el sistema de recomendación recibe una señal geográfica constante y no necesita volver a aprender sobre geografía. Las dos torres los utilizan de maneras diferentes.

El cambio en la torre de la casa consiste en un simple intercambio: en lugar de recibir las coordenadas del anuncio, ahora recibe el GeoEmbedding de la celda H3 que contiene dicho anuncio.

La torre de usuarios necesita ser reexaminada en profundidad, ya que los valores medios no pueden reemplazarse simplemente por algo equivalente. No hay nada significativo que promediar. En su lugar, la torre recibe una secuencia que incluye, en orden, las celdas correspondientes a los últimos diez eventos de la persona. Cada entrada registra el tipo de evento; por lo tanto, una visualización casual y una oferta se contabilizan de manera diferente, además de contar con una codificación de recencia que permite al modelo determinar con qué rapidez debe desvanecerse una señal.

El arrendatario que compara Copacabana con Barra ya no está confinado a un lugar entre ambas zonas en las colinas. Ahora el modelo puede ver ambas ubicaciones. Puede identificar cuál fue recién consultada, cuál generó una visita reservada y cuál ocurrió primero.

Juntos, estos dos cambios supusieron el mayor impulso que el equipo había visto al modificar una sola característica. Según la importancia por permutación, GeoEmbeddings se convirtió en la característica más importante en el sistema de recomendaciones de segunda iteración, y la prueba A/B en tiempo real registró +1% de visitas reservadas en la sección de Alquiler y +3.3% de ofertas enviadas en la sección de Venta. Mejoras en las tasas de conversión a nivel de plataforma como estas demuestran cuán significativo es el impacto de la calidad de la representación en los resultados finales.

Qué viene a continuación

La geografía en sí tiene aún mucho que ofrecer. Los planes incluyen señales explícitas de proximidad, como la distancia a estaciones de metro, escuelas y parques, además de resoluciones más detalladas para representaciones más precisas y dinámicas.

Un hallazgo aún más significativo surgió casi por casualidad. El rediseño de la “torre de usuarios” marcó la primera vez que HUE trató el historial de una persona como una serie ordenada de eventos en lugar de un conjunto de estadísticas resumidas, y este enfoque dio buenos resultados. Esto planteó una pregunta natural: si una secuencia es la forma adecuada de describir dónde ha buscado una persona, ¿no sería también adecuada para todo lo demás que ha hecho?

Al investigar esa pregunta nació SENNA, un sistema de recomendación multimodal secuencial cuya “torre de usuarios” está compuesta por una secuencia de las páginas con las que interactuó una persona, cada una descrita en detalle, incluyendo fotos. Los GeoEmbeddings se utilizan como entrada geográfica fija.

La ubicación siempre fue lo que más importaba a los usuarios. Enseñar a un modelo a razonar sobre dónde se encuentra en diferentes escalas, en lugar de tratar una coordenada como solo otro número, permitió al equipo actuar en función de esa preferencia.

Lectura de referencia

Las ideas se basan en un puñado de fuentes públicas: el artículo sobre recuperación con dos torres en YouTube de Covington, Adams y Sargin (2016), el trabajo sobre dos torres con corrección de sesgo de muestreo de Yi y colaboradores (2019), el artículo sobre codificación predictiva contrastiva de van den Oord, Li y Vinyals (2018), el estudio sobre colapso de embeddings de Guo y colaboradores (2024), y la documentación del índice geoespacial H3 en h3geo.org.