Accueil / Articles

Apprendre à un système de recommandation où les gens souhaitent vivre : les embeddings géographiques

Un outil de recommandation de logements a remplacé les coordonnées de latitude et de longitude brutes par des embeddings géographiques H3 appris dans un modèle à deux tours. La manière dont il a été développé ainsi que les résultats A/B qu’il a présentés.

Éditeur : REACTAPP.TOP11 min de lecture2589 mots

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

Un marché immobilier comptant des millions d’annonces fait face à un problème de découverte. Avec un tel volume d’offres, il s’agit de montrer à chaque personne la maison qui lui convient le mieux, et pour la plupart des gens, le facteur décisif est l’emplacement de la maison. Ce compte rendu décrit comment l’équipe chargée des recommandations sur la plus grande plateforme immobilière d’Amérique latine, une plateforme qui aide locataires, acheteurs et propriétaires à louer ou acheter sans les formalités habituelles, a réorganisé la manière dont son modèle comprend l’emplacement. Ce travail a été présenté lors de RecSys 2025 à Prague, et toutes les données ci-dessous proviennent des chiffres fournis par l’équipe elle-même.

Pourquoi l’emplacement mérite une attention particulière

Une enquête menée auprès de près de 800 utilisateurs de la plateforme a révélé que plus de la moitié d’entre eux considéraient l’emplacement comme le facteur le plus important dans une décision de location, devant le prix, la taille et les équipements. Cela semble évident, pourtant l’emplacement fait partie des signaux les plus difficiles à gérer correctement dans un système de recommandations.

Le reste de l’histoire concerne les embeddings géolocalisés : des vecteurs appris qui codent l’emplacement d’une propriété et le degré de similarité entre les lieux, de manière à pouvoir être utilisés directement par le système de recommandation.

Où en était la première version

Le système de recommandation repose sur un modèle à deux tours, architecture popularisée par Google et YouTube pour la recherche dans des catalogues très volumineux. Un tour traite les informations relatives à un utilisateur et l’autre celles relatives à une maison. Chacun projette ces données dans un espace d’embeddings commun, et le produit scalaire obtenu indique la qualité de la correspondance. La famille interne de ces modèles sur la plateforme s’appelle HUE, pour House User Embeddings.

La première version était délibérément simple et entièrement basée sur des tableaux. Chaque attribut relatif aux maisons avait un équivalent du côté des utilisateurs, calculé à partir des statistiques des quinze dernières interactions de cette personne.

C’est un design ordonné : les maisons sont décrites par leurs caractéristiques, les utilisateurs par un résumé de ce qu’ils ont consulté, et les tours déterminent comment les deux se relient. Le loyer, la superficie et le nombre de chambres se comportent bien dans ce système, car le loyer médian des quinze annonces consultées récemment reflète assez bien leur budget. La localisation, en revanche, ne suit pas cette logique, et c’est précisément pour cette raison que ce projet existe.

Pourquoi les coordonnées brutes constituent de mauvaises caractéristiques

Une coordonnée n’a pas de signification utile. La latitude et la longitude forment un réseau mondial qui n’a aucun lien avec la façon dont les gens perçoivent les lieux, et une valeur comme -22,97 ne dit rien au modèle au sujet de Copacabana. Pour pouvoir agir sur ces données, des couches complexes doivent délimiter chaque quartier de chaque ville à partir d’un plan continu, en apprenant les frontières uniquement à partir des données d’interaction. Cela consomme beaucoup de capacité de traitement pour quelque chose que tout résident local sait déjà.

La proximité numérique n’équivaut pas à une similitude fonctionnelle. Une rivière, une autoroute ou une crête peuvent séparer deux endroits distants de seulement 500 mètres, leur conférant des caractéristiques de transport, des prix et un caractère différents. Deux quartiers séparés de dix kilomètres peuvent être des substituts presque parfaits pour un locataire donné. La distance euclidienne entre les coordonnées n’est qu’un substitut faible à la question essentielle : cette personne serait-elle tout aussi heureuse dans les deux endroits ?

La moyenne des coordonnées annule le signal. C’est le problème fatal, qui affecte la tour utilisée par l’utilisateur. Imaginez un locataire à Rio de Janeiro qui compare Copacabana et Barra da Tijuca, une combinaison courante. La coordonnée médiane de son historique de visionnage se situe dans le massif de Tijuca, où il n’y a presque rien à louer. Toute personne qui prend en compte deux ou trois zones distinctes, ce qui est le cas de la plupart des gens, se retrouve réduite à un seul point qu’elle n’aurait jamais envisagé.

Avant de remplacer cette représentation, l’équipe a tenté de la corriger en ajoutant les carrés de la latitude et de la longitude, afin que des couches denses puissent décrire plus facilement des régions courbes. L’amélioration était minime, et c’est justement cette faible amélioration qui a permis de diagnostiquer le problème. Un élément qui nécessite une expansion polynomiale avant que le modèle ne puisse l’utiliser indique une représentation erronée, et non un modèle défectueux. C’est pourquoi l’équipe a cessé de fournir des coordonnées au modèle et a commencé à lui enseigner la géographie.

Deux difficultés structurelles

Toute approche doit faire face à deux problèmes.

Le premier est la sparsité. Le nombre de logements dans une micro-région est faible et réparti de manière inégale. Il est recommandé de travailler strictement à l’intérieur d’une zone délimitée, ce qui fait que les données s’épuisent rapidement ; de plus, le modèle observe trop peu d’interactions par endroit pour pouvoir apprendre quoi que ce soit de fiable.

Le second problème est que la similitude fonctionnelle n’est nulle part mentionnée. Rien dans les annonces ne précise qu’un quartier peut remplacer un autre, ni pourquoi : accès à la plage, transports, sécurité, niveau de prix. Ces informations n’existent que dans la manière dont les gens effectuent leurs recherches, donc le modèle doit les apprendre à partir du comportement ou se passer d’elles.

L’approche : un modèle à deux tours sur des cellules H3 à multiples résolutions

Au lieu de développer des fonctionnalités manuellement, l’équipe a entraîné un réseau à deux tours avec un objectif contrastif, afin que les représentations de localisation proviennent du comportement observé. Une tour dédiée aux utilisateurs encode les personnes, tandis qu’une tour dédiée aux lieux encode les endroits ; l’entraînement recombine les vecteurs des utilisateurs et des lieux qui apparaissent ensemble lors d’interactions réelles à forte intentionnalité.

Ce qui importe le plus, c’est la manière dont un lieu est décrit. Les coordonnées brutes ne sont pas utilisées. Chaque propriété est plutôt indexée sur la grille H3 d’Uber, qui associe une paire de latitude et de longitude à un identifiant de cellule hexagonale. Comme H3 est hiérarchique, chaque point se trouve dans une seule cellule par résolution, allant de la plus grossière (environ 36 km² par cellule à la résolution 6) à la plus fine (environ 0,105 km² à la résolution 9). Chaque identifiant de cellule étant un token discret, il est possible d’en apprendre un embedding de la même manière que l’on apprend les embeddings de mots dans les modèles de texte.

Les cellules aux résolutions H3 6, 7, 8 et 9 passent chacune par leur propre couche d’incorporation, et une incorporation au niveau de la ville est ajoutée pour capturer la forme globale des zones urbaines. La tour de localisation concatène toutes celles-ci et les fait passer par une paire de couches fully connected ReLU, ce qui aboutit à un vecteur de 32 dimensions par localisation.

La partie côté utilisateur est délibérément simplifiée : une incorporation d’ID d’utilisateur suivie de couches denses, de sorte que presque tout l’apprentissage a lieu dans la tour de localisation. Son rôle est de diriger chaque incorporation de localisation vers les endroits avec lesquels l’utilisateur a réellement interagi. Après l’entraînement, elle est éliminée, et ce qui reste est l’ensemble des vecteurs de localisation, que les modèles ultérieurs réutilisent ensuite.

Pourquoi plusieurs résolutions en même temps ? Une seule cellule à faible résolution offre de la précision mais manque de données. Une seule cellule à haute résolution dispose de données en abondance, mais masque les différences importantes. En superposant plusieurs résolutions, le modèle peut s’appuyer sur la région environnante lorsque une cellule spécifique a connu peu d’interactions, tout en préservant les détails locaux là où il existe de nombreuses preuves. Pensez-y comme une pyramide de caractéristiques pour l’espace, et un remède direct à la rareté des données.

Signal d’entraînement. La perte utilisée est l’objectif InfoNCE issu de la codage prédictif contrastif. Les lignes représentent des paires (utilisateur, localisation) tirées d’interactions réelles à forte intention, c’est-à-dire des visites réservées ou des offres soumises. Aucun exemple négatif n’est sélectionné manuellement. À l’intérieur de chaque lot, les localisations appartenant à d’autres utilisateurs servent de exemples négatifs, ce qui ne coûte rien et reflète la demande réelle.

Il y a un problème. Un lieu n’est pas comme un identifiant d’élément arbitraire, car de nombreux utilisateurs peuvent légitimement être en correspondance avec la même localisation en même temps. Lorsqu’un résultat négatif du même lot correspond à une localisation déjà traitée par le même utilisateur, la perte le considère comme un faux négatif et le masque, afin que le couple ne soit pas séparé par erreur. Les similarités possèdent une « température », et l’entropie croisée est appliquée dans les deux sens, de l’utilisateur vers la localisation et inversement.

Le modèle a été développé avec PyTorch Lightning, en utilisant une initialisation uniforme Xavier, des embeddings de 32 dimensions, l’optimiseur Adam et une taille de lot de 512. Les données d’entraînement comprenaient environ 4 millions d’événements à forte intention, générés par près d’un million d’utilisateurs distincts. Seuls les signaux forts, tels que la réservation d’une visite ou la soumission d’une offre, ont été conservés, tandis que les événements bruyants à faible intention, comme les clics, ont été éliminés.

Comment il a été évalué

La comparaison a porté sur trois modèles : une référence de factorisation matricielle (ALS à retours implicites utilisant uniquement la cellule H3 la plus fine), un modèle à deux tours utilisant uniquement la résolution 9 de H3, et la conception complète à deux tours multi-résolution. Deux voies d’évaluation ont été testées en parallèle.

Évaluation intrinsèque examine directement la qualité des embeddings, indépendamment de toute tâche ultérieure, en utilisant deux critères pour détecter le effondrement. Le premier est l’abondance d’information, définie dans des travaux récents sur l’effondrement des embeddings comme la somme des valeurs singulières de la matrice d’embedding divisée par la plus grande d’entre elles. Avec 32 dimensions, cette valeur varie de 1 (effondrement complet) à 32 (chaque dimension contribuant de manière égale), donc plus elle est élevée, mieux c’est. Le second critère est le spectre des valeurs singulières de la matrice de covariance des embeddings normalisée, qui montre comment la variance se répartit entre les dimensions. Une décroissance douce et uniforme indique que le modèle utilise pleinement sa capacité, tandis qu’une chute brutale signalle un effondrement dimensionnel, où les embeddings se dégradent en un sous-espace à rang faible.

Le spectre rapporté est clair. Le modèle à résolution unique diminue fortement à des indices de rang plus élevés, ce qui est un signe de défaillance. Le modèle multi-résolution présente la décroissance la plus plate parmi les trois, ce qui signifie que sa variance est répartie de manière uniforme et qu’il utilise pleinement l’espace d’incorporation.

Évaluation extrinsèque vise à déterminer si de meilleurs embeddings aident les utilisateurs. Elle a utilisé un mois de journaux de production (mars 2025) provenant d’un module de « maisons similaires », un système de recommandation article par article qui affiche des propriétés similaires à une fiche de référence. Pour chaque fiche de référence, les recommandations originales ont été réordonnées en fonction de la similarité cosinus entre l’embedding géographique de la fiche de référence et celui de chaque candidat, puis les recommandations inférieures à un seuil de similarité ont été progressivement éliminées.

Le principal indicateur commercial est le taux de flux de locations, c’est-à-dire la proportion de recommandations affichées qui se sont soldées par une action à intention forte : une visite en personne ou une offre de location. Les clics sont sujets à beaucoup de bruit, c’est pourquoi on utilise plutôt les flux de locations, car ils reflètent un intérêt réel. Pour chaque modèle et seuil, l’amélioration obtenue a été calculée par rapport aux recommandations générées par ce modèle sans filtrage et disposant de scores de similarité valables ; le tableau présente la moyenne obtenue pour tous les seuils. L’entraînement s’est terminé en décembre 2024 et l’évaluation a utilisé les données de mars 2025, de sorte qu’aucune information issue de la période d’évaluation n’a filtré dans le processus d’entraînement.

En examinant l’ensemble des résultats, à mesure que la liste de recommandations se réduit, le modèle multi-résolution se distingue avec les seuils les plus stricts, tandis que les approches apprises se regroupent plutôt dans la partie centrale. La comparaison la plus éloquente concerne un filtre de distance radiale simple : les gains les plus importants proviennent de la similarité apprise et non du fait de privilégier les logements proches.

Résultats

La plateforme gère deux principales activités commerciales, Location et Vente. L’évaluation hors ligne se concentre sur les interactions liées à la location, où le volume d’intentions élevées est le plus important, tandis que l’impact en ligne a été évalué pour les deux types d’activités.

Les résultats hors ligne se sont améliorés à chaque niveau supplémentaire de complexité du modèle. Une précision avant de présenter les chiffres : l’amélioration du flux de locations est le fruit d’une simulation basée sur un ré classement des journaux de production historiques, et non d’une expérience en temps réel. Les résultats des tests A/B en temps réel sont présentés plus loin.

Le passage de la factorisation de matrice au modèle à deux tours à résolution unique a permis d’augmenter l’Abondance d’Information de 158 % et d’obtenir une hausse simulée des flux de loyer de 84 %. Les embeddings H3 à multi-résolution ont ensuite ajouté 40 % de plus à l’Abondance d’Information, atteignant ainsi 21,7, et ont porté la hausse simulée à 10,9 %, soit presque le double de l’étape précédente. En bref, fournir au modèle un contexte spatial à plusieurs échelles a amélioré les embeddings eux-mêmes ainsi que leur effet simulé sur les utilisateurs.

Afin de rendre les embeddings plus faciles à comprendre, l’équipe a développé un outil interne qui représente les voisins les plus proches sur une carte. En sélectionnant un hexagone d’ancrage foncé à Copacabana, un groupe de cellules voisines s’illumine, celles que le modèle considère comme fonctionnellement similaires. Il s’agit d’une vérification utile pour s’assurer que la géographie apprise correspond à l’image que les gens se font d’une ville.

Test A/B en ligne sur des maisons similaires. Au moment où cet article a été écrit, l’expérience concernant le carrousel des « maisons similaires » était encore en cours. Elle a depuis pris fin, et les améliorations constatées pour ce carrousel étaient les suivantes :

  • Loyer : une augmentation de 4,18 % du taux de clics, ainsi qu’une hausse de 3,38 % des clics qui ont abouti à une visite.
  • Vente : le taux de clics a augmenté de 5,53 %.

Ce sont les résultats réels qui comptent. Les indicateurs hors ligne ainsi que le test A/B indiquent la même chose : les geo-embeddings sont efficaces.

Intégration des GeoEmbeddings dans HUE

L’étude de réclassement a servi de démonstration de concept. L’objectif réel était de retirer les coordonnées de latitude et de longitude du système de recommandation lui-même, ce qui a donné naissance à la deuxième itération du système de recommandation en production. Les GeoEmbeddings préentraînés se trouvent dans une tour partagée et restent inchangés, de sorte que le système de recommandation reçoit un signal géographique constant sans avoir à réapprendre les informations géographiques. Les deux tours les utilisent de manières différentes.

La modification de la tour des maisons consiste en un simple échange : au lieu de recevoir les coordonnées de l’annonce, elle reçoit désormais le GeoEmbedding de la cellule H3 contenant cette annonce.

La tour d’utilisateur nécessite une réflexion plus approfondie, car les médianes ne peuvent pas être simplement remplacées par quelque chose d’équivalent. Il n’y a rien de significatif à moyenniser. La tour est plutôt alimentée par une suite qui présente, dans l’ordre, les éléments correspondant aux dix derniers événements de la personne. Chaque entrée indique le type d’événement : ainsi, une simple consultation et une offre sont considérées différemment, et un encodage de récenteté permet au modèle d’apprendre à quel rythme un signal doit s’estomper.

Le locataire qui compare Copacabana et Barra n’est plus confiné dans une zone située entre les deux. Les deux endroits sont désormais visibles pour le modèle, qui peut déterminer lequel a été simplement consulté, lequel a conduit à une réservation, et lequel est apparu en premier.

Ces deux modifications combinées ont apporté la plus grande amélioration que l’équipe ait jamais observée suite à la modification d’une seule fonctionnalité. Mesurée par l’importance des permutations, GeoEmbeddings est devenue la fonctionnalité la plus importante dans le système de recommandation de deuxième itération, et le test A/B en conditions réelles a montré +1 % de visites réservées dans la catégorie Location ainsi que +3,3 % d’offres soumises dans la catégorie Vente. De tels gains en termes de conversion au niveau de la plateforme démontrent à quel point la qualité de la représentation influence fortement les résultats finaux.

Que vient-il ensuite ?

La géographie elle-même a encore beaucoup à offrir. Les plans prévus incluent des indicateurs de proximité explicites tels que la distance par rapport aux stations de métro, aux écoles et aux parcs, ainsi que des résolutions plus fines pour des représentations plus détaillées et plus dynamiques.

Une découverte plus importante est survenue presque par hasard. La refonte de la « tour utilisateur » a été la première fois que HUE a traité l’historique d’un utilisateur comme une série ordonnée d’événements plutôt que comme un ensemble de statistiques synthétiques, et cette approche a porté ses fruits. Elle a suscité une question naturelle : si une séquence est le moyen idéal pour décrire les recherches effectuées par quelqu’un, ne conviendrait-elle pas également à tout le reste qu’il a fait ?

En poursuivant cette question, on a développé SENNA, un système de recommandation multimodal séquentiel dont toute la « tour utilisateur » est constituée d’une séquence des sites avec lesquels une personne a interagi, chaque site étant décrit en détail, y compris avec des photos. Les GeoEmbeddings servent quant à eux d’entrée géographique fixe.

La localisation a toujours été ce qui préoccupait le plus les utilisateurs. En apprenant à un modèle à raisonner sur l’emplacement à plusieurs échelles, au lieu de considérer une coordonnée comme un simple nombre de plus, l’équipe a trouvé un moyen de répondre à cette préférence.

Lecture complémentaire

Ces idées reposent sur un petit nombre de sources publiques : l’article sur la récupération à deux tours sur YouTube par Covington, Adams et Sargin (2016), le travail sur les deux tours corrigés des biais d’échantillonnage par Yi et ses collaborateurs (2019), l’article sur le codage prédictif contrastif par van den Oord, Li et Vinyals (2018), l’étude sur l’effondrement des embeddings par Guo et ses collaborateurs (2024), ainsi que la documentation de l’index géospatial H3 disponible sur h3geo.org.