Uczenie systemu rekomendacji, gdzie ludzie chcą mieszkać: geo-embeddingi
System rekomendujący mieszkania zastąpił surowe wartości szerokości i długości geograficznej wyuczonymi embeddingami geograficznymi H3 w modelu dwóch wież. Sposób jego budowy oraz wyniki testów A/B, które zostały przedstawione.
Źródła: **Location Matters: Leveraging Multi-Resolution Geo-Embeddings for Housing Search**
Platforma nieruchomości z milionami ofert boryka się z problemem odkrywania odpowiednich propozycji. Przy tak dużej ilości dostępnych nieruchomości kluczowe jest pokazanie każdej osobie odpowiedniego domu, a dla większości ludzi decydującym czynnikiem jest lokalizacja. Ten tekst opisuje, w jaki sposób zespół odpowiedzialny za rekomendacje w największej platformie nieruchomości w Ameryce Łacińskiej – platformie pomagającej najemcom, kupującym i właścicielom w wynajmowaniu i kupowaniu bez standardowej biurokracji – przebudował sposób, w jaki jej model rozumie lokalizację. Prace te zostały przedstawione na konferencji RecSys 2025 w Pradze, a wszystkie podane poniżej liczby pochodzą bezpośrednio od zespołu.
Dlaczego lokalizacja wymaga szczególnej uwagi
Sondaż przeprowadzony wśród prawie 800 użytkowników platformy wykazał, że ponad połowa z nich uznała lokalizację za najważniejszy czynnik przy podejmowaniu decyzji o wynajmie, przed ceną, rozmiarem i udogodnieniami. Brzmi to oczywiste, jednak lokalizacja należy do najtrudniejszych wskaźników do prawidłowego uwzględnienia w systemach rekomendacyjnych.
Pozostała część opowieści dotyczy embeddingów świadomych lokalizacji: wektorów nauczonych, które kodują, gdzie znajduje się nieruchomość oraz jak podobne są do siebie miejsca, w sposób, który system rekomendacji może wykorzystać bezpośrednio.
Stan pierwszej wersji
System rekomendacji to model dwóch wież, architektura upopularniona przez Google i YouTube do wyszukiwania w bardzo dużych katalogach. Jedna wieża przetwarza informacje o użytkowniku, a druga – informacje o domu. Każda z nich projektuje dane do wspólnego przestrzeni embeddingów, a iloczyn skalarny w tej przestrzeni określa jakość dopasowania. Wewnętrzna grupa takich modeli w platformie nazywa się HUE, skrót od House User Embeddings.
Pierwsza wersja była celowo prosta i w całości oparta na tabelach. Każdy atrybut z strony domu miał odpowiednik po stronie użytkownika, obliczany jako statystyka oparta na ostatnich piętnastu interakcjach danej osoby.
To schludny projekt: domy są opisywane poprzez swoje cechy, użytkownicy – krótkim podsumowaniem tego, co oglądali, a wieże określają, w jaki sposób te dwa elementy się łączą. Ceny czynszu, powierzchnia pomieszczeń oraz liczba sypialni dobrze funkcjonowały w tym schemacie, ponieważ mediana czynszu za ostatnie piętnaście oglądanych ofert dość dobrze odzwierciedla ich budżet. Lokalizacja natomiast tak nie funkcjonowała, i to właśnie jest powodem istnienia tego projektu.
Dlaczego surowe współrzędne stanowią słabe cechy
Koordynata nie ma żadnego praktycznego znaczenia. Szerokość geograficzna i długość geograficzna tworzą globalną siatkę, która nie ma związku z tym, jak ludzie postrzegają poszczególne miejsca, a wartość taka jak -22,97 nie mówi modelowi nic o Copacabanie. Aby móc na niej działać, warstwy o dużej gęstości muszą wyodrębnić każdą dzielnicę w każdym mieście z ciągłej płaszczyzny, ucząc się granic wyłącznie na podstawie danych o interakcjach. To wymaga dużo zasobów modelu na coś, co każdy lokalny mieszkaniec już wie.
Liczbowa bliskość to nie to samo co funkcjonalna podobieństwo. Rzeka, autostrada lub grzbiet mogą oddzielić dwa miejsca oddalone o zaledwie 500 metrów, nadając im różne warunki transportowe, ceny i charakter. Dwie dzielnice oddalone o dziesięć kilometrów mogą być niemal idealnymi zamiennikami dla danego najemcy. Odległość euklidesowa między współrzędnymi jest słabym zamiennikiem na pytanie, które jest istotne: czy ta osoba byłaby równie szczęśliwa w obu miejscach?
Obliczanie średnich współrzędnych niszczy sygnał. To jest krytyczny problem, który wpływa na wieżę użytkownika. Wyobraźmy sobie osobę wynajmującą mieszkanie w Rio de Janeiro, która porównuje Copacabanę z Barra da Tijuca – to częste połączenie. Średnia współrzędna z jej historii oglądania znajduje się w masywie Tijuca, gdzie prawie nic nie jest do wynajęcia. Każdy, kto rozważa dwa lub trzy różne obszary, co dotyczy większości ludzi, zostaje sprowadzony do jednego punktu, którego nigdy by nie wybrał.
Zanim zastąpiono ten sposób przedstawiania danych, zespół próbował to naprawić, dodając kwadraty szerokości i długości geograficznej, aby gęste warstwy mogły łatwiej opisywać zakrzywione obszary. Poprawa była niewielka, a właśnie ta małość była diagnozą. Funkcja, która wymaga rozszerzenia wielomianowego, zanim model będzie mógł ją wykorzystać, wskazuje na błędne przedstawienie danych, a nie na błędny model. Dlatego zespół przestał podawać modelowi współrzędne i zaczął go uczyć geografii.
Dwie trudności strukturalne
Każde podejście musi radzić sobie z dwoma problemami.
Pierwszym z nich jest rzadkość. Liczba domów w małej okolicy jest niewielka i nierównomiernie rozproszona. Zaleca się stosowanie ściśłych granic, przez co zasoby szybko się wyczerpują, a model widzi zbyt mało interakcji w danym miejscu, by móc nauczyć się czegoś wiarygodnego.
Drugim problemem jest to, że podobieństwo funkcjonalne nigdzie nie jest określone. W opisie nie ma żadnej informacji o tym, że jedna okolica może zastąpić inną, ani dlaczego: dostęp do plaży, transport, bezpieczeństwo, poziom cen. Ta wiedza istnieje tylko w sposobie, w jaki ludzie dokonują poszukiwań, więc model musi ją poznać na podstawie zachowań albo obejść się bez niej.
Podejście: model dwóch wież oparty na komórkach H3 o różnej rozdzielczości
Zamiast ręcznie tworzyć funkcje, zespół nauczył sieć dwóch wież z celami kontrastywnymi, dzięki czemu reprezentacje lokalizacji pochodzą z zaobserwowanego zachowania. Wieża użytkownika koduje osoby, a wieża lokalizacji koduje miejsca, przy czym proces szkolenia łączy wektory użytkowników i miejsc, które pojawiają się razem w rzeczywistych, intensywnych interakcjach.
Najważniejszy jest sposób opisywania miejsca. Surowe współrzędne nie są przyjmowane. Zamiast tego każda cecha jest indeksowana w sieci H3 firmy Uber, która przekształca parę szerokości i długości geograficznej na identyfikator sześciokątnej komórki. Ponieważ sieć H3 ma strukturę hierarchiczną, każdy punkt znajduje się w jednej komórce na danym poziomie rozdzielczości – od grubej (około 36 km² na komórkę przy rozdzielczości 6) po drobną (około 0,105 km² przy rozdzielczości 9). Każdy identyfikator komórki stanowi dyskretny token, więc można nauczyć dla niego embedding w taki sam sposób, w jaki nauczane są embeddingi słów w modelach tekstowych.
Komórki o rozdzielczościach H3 6, 7, 8 i 9 przechodzą po kolei przez własną warstwę embeddingu, a do tego dodawany jest embedding na poziomie miasta, aby uchwycić ogólny kształt obszarów miejskich. Wieża lokalizacji łączy wszystkie te elementy i przepuszcza je przez parę warstw ReLU pełnie połączonych, co skutkuje wektorem 32-wymiarowym dla każdej lokalizacji.
Część użytkownika jest celowo uproszczona: embedding identyfikatora użytkownika, a następnie warstwy gęste, dzięki czemu prawie całe uczenie się odbywa się w wieży lokalizacji. Jej celem jest skierowanie każdego embeddingu lokalizacji w stronę miejsc, z którymi użytkownik faktycznie miał interakcje. Po treningu jest ona usuwana, a pozostaje zbiór wektorów lokalizacji, które są następnie wykorzystywane przez modele poniżej w łańcuchu.
Dlaczego kilka rozdzielczości jednocześnie? Jedna drobnoziarnista komórka zapewnia precyzję, ale cierpi na brak danych. Jedna gruboziarnista komórka ma dane w obfitości, ale zatruwa obraz różnic, które są istotne. Użycie kilku poziomów rozdzielczości pozwala modelowi korzystać z otaczającego obszaru, gdy dana komórka odnotowała niewiele interakcji, jednocześnie zachowując lokalne szczegóły tam, gdzie jest dużo dowodów. Można to porównać do piramidy cech w przestrzeni, która stanowi bezpośrednie rozwiązanie problemu rzadkości danych.
Sygnał treningowy. Funkcją straty jest cel InfoNCE z kodowania predyktywnego kontrastowego. Wiersze to pary (użytkownik, lokalizacja) pochodzące z rzeczywistych interakcji o wysokim stopniu intencji, czyli zarezerwowanych wizyt lub złożonych ofert. Negatywy nie są wybierane ręcznie. Wewnątrz każdej partii lokalizacje należące do innych użytkowników pełnią rolę negatywów, co nie kosztuje nic i odzwierciedla rzeczywisty popyt.
Jest jeden problem. Miejsce nie jest jak dowolny identyfikator elementu, ponieważ wielu użytkowników może jednocześnie mieć pozytywną ocenę dla tego samego miejsca. Gdy negatywna ocena z tej samej partii okazuje się dotyczyć miejsca, z którym miał kontakt ten sam użytkownik, algorytm traktuje to jako fałszywie negatywną ocenę i ją maskuje, aby para nie została przypadkowo rozdzielona. Podobieństwa mają określoną „temperaturę”, a entropia krzyżowa jest stosowana w obu kierunkach – od użytkownika do miejsca i z powrotem.
Model został zbudowany przy użyciu PyTorch Lightning z inicjalizacją Xavier uniform, 32-wymiarowymi embeddingami, optymalizatorem Adam oraz rozmiarem partii 512. Dane treningowe obejmowały około 4 milionów wydarzeń o wysokim stopniu intencji, stworzonych przez około milion różnych użytkowników. Zachowano tylko silne sygnały, takie jak rezerwacja wizyty lub składanie oferty, natomiast usunięto hałaśliwe wydarzenia o niskim stopniu intencji, takie jak kliknięcia.
Sposób oceny
Porównanie obejmowało trzy modele: bazę opartą na faktoryzacji macierzy (ALS z domyślną informacją zwrotną wykorzystującą tylko najdrobniejszą komórkę H3), model dwudzielnowy wykorzystujący wyłącznie rozdzielczość H3 9, oraz pełny projekt dwudzielnowy z wieloma poziomami rozdzielczości. Dwa sposoby oceny były przeprowadzane równolegle.
Ocena wewnętrzna bada bezpośrednio jakość embeddingów, niezależnie od żadnych zadań późniejszych, przy użyciu dwóch kryteriów sprawdzających możliwość załamania się embeddingów. Pierwszym z nich jest obfitość informacji, zdefiniowana w najnowszych badaniach nad załamaniem embeddingów jako suma wartości singularnych macierzy embeddingów podzielona przez największą z nich. Przy 32 wymiarach wartość ta waha się od 1 (pełne załamanie) do 32 (każdy wymiar wnosi równy wkład), więc im wyższa wartość, tym lepiej. Drugim kryterium jest spektrum wartości singularnych znormalizowanej macierzy kowariancji embeddingów, które pokazuje, jak rozkłada się wariancja pomiędzy poszczególnymi wymiarami. Stopniowy, płaski spadek oznacza, że model w pełni wykorzystuje swoją pojemność, natomiast gwałtowny spadek wskazuje na załamanie wymiarowe, przy którym embeddingi degenerują do niskorankowego podprzestrzeni.
Przedstawiony spektrum jest wyraźne. Model o pojedynczej rozdzielczości gwałtownie spada przy wyższych indeksach rzędu, co jest objawem załamania. Model wielorozdzielczościowy charakteryzuje się najmniejszą zmiennością spośród trzech, co oznacza, że jego wariancja jest równomiernie rozproszona i model w pełni wykorzystuje przestrzeń embeddingów.
Ewaluacja egztrinsiczna sprawdza, czy lepsze embeddingi pomagają użytkownikom. Wykorzystano miesięczne zapisy z produkcji (marzec 2025 r.) z modułu „podobne domy” – systemu rekomendacji przedmiotu do przedmiotu, który pokazuje nieruchomości podobne do domu referencyjnego. Dla każdego domu referencyjnego oryginalne rekomendacje zostały ponownie uporządkowane na podstawie podobieństwa kosinowego pomiędzy jego embeddingiem geograficznym a embeddingami każdego kandydata, a rekomendacje poniżej określonego progu podobieństwa były stopniowo usuwane.
Głównym wskaźnikiem biznesowym jest wskaźnik przepływu wynajmów, czyli udział pokazywanych rekomendacji, które skończyły się działaniem o wyraźnym zamiarze: osobistą wizytą lub ofertą wynajmu. Kliki są niespójne, dlatego zamiast nich używa się przepływów wynajmów, ponieważ odzwierciedlają one rzeczywisty zainteresowanie. Dla każdego modelu i progu obliczano wzrost efektywności w odniesieniu do niefiltrowanych rekomendacji wygenerowanych przez dany model, które miały ważne wyniki podobieństwa, a tabela przedstawia średnią wartość dla poszczególnych progów. Szkolenie zakończyło się w grudniu 2024 roku, a ocena wykorzystała dane z marca 2025 roku, więc nic z okresu oceny nie przeniknęło do procesu szkolenia.
Na całej krzywej, w miarę jak lista rekomendacji się kurczy, model wielorozdzielczościowy wygrywa przy najbardziej agresywnych prógach, podczas gdy podejścia oparte na uczeniu maszynowym gromadzą się w środkowej części krzywej. Najbardziej wymownym porównaniem jest porównanie z zwykłym filtrem odległości radialnej – największe korzyści pochodziły z algorytmów opartych na uczeniu maszynowym mierzących podobieństwo, a nie z faworyzowania domów znajdujących się w pobliżu.
Wyniki
Platforma obsługuje dwa główne obszary działalności: Wynajem i Sprzedaż. Ocena offline koncentruje się na interakcjach związanych z wynajmem, gdzie objętość zapytań o wysokim stopniu intencji jest największa, natomiast wpływ online był oceniany w obu obszarach.
Oba obszary oceny offline poprawiały się z każdym krokiem w stronę większej złożoności modelu. Jedna uwaga przed przedstawieniem liczb: poprawa w zakresie przepływów związanych z wynajmem jest wynikiem symulacji opartej na ponownym sortowaniu historycznych zapisów, a nie na eksperymencie w czasie rzeczywistym. Wyniki A/B z czasu rzeczywistego zostaną przedstawione później.
Przejście od faktoryzacji macierzy do modelu dwóch wież o pojedynczej rozdzielczości zwiększyło poziom Obfitości Informacji o 158%, a symulowany wzrost przepływów czynszowych o 84%. Wkładki H3 o wielu rozdzielczościach dodatkowo podniosły Obfitość Informacji o kolejne 40%, osiągając wartość 21,7, a symulowany wzrost wyniósł 10,9%, co jest niemal dwukrotnie większym wynikiem niż w poprzednim kroku. Krótko mówiąc, dostarczenie modelowi kontekstu przestrzennego na różnych skalach poprawiło same wkładki oraz ich symulowany wpływ na użytkowników.
Aby ułatwić zrozumienie tych wkładek, zespół stworzył wewnętrzne narzędzie, które wyświetla najbliższe sąsiednie elementy na mapie. Wybierając ciemny sześciokąt w Copacabanie, rozświetla się grupa pobliskich komórek – te, które model uznaje za funkcjonalnie podobne. Jest to przydatna weryfikacja, czy naukowo wypracowana mapa geograficzna jest zgodna z tym, jak ludzie wyobrażają sobie miasto.
Test A/B online na podobnych domach. W momencie pisania artykułu eksperyment z przeglądarką „podobnych domów” był nadal w trakcie. Od tamtej pory został zakończony, a odnotowane korzyści dla tej przeglądarki były następujące:
- Cena najmu: wzrost wskaźnika kliknięć o 4,18%, a liczby kliknięć prowadzących do rezerwacji wizyty o 3,38%.
- Sprzedaż: wzrost wskaźnika kliknięć o 5,53%.
Decydujące są rzeczywiste wyniki. Zarówno metryki offline, jak i test A/B wskazują to samo: geo-embeddings przynoszą efekty.
Wprowadzanie GeoEmbeddings do HUE
Badanie nad ponownym rankowaniem służyło jako dowód koncepcji. Prawdziwym celem było usunięcie informacji o szerokości i długości geograficznej bezpośrednio z systemu rekomendacji, co doprowadziło do powstania drugiej wersji tego systemu w warunkach produkcyjnych. Wstępnie przeszkolone GeoEmbeddings znajdują się w wspólnej bazie danych i pozostają niezmienione, dzięki czemu system rekomendacji otrzymuje stały sygnał geograficzny i nie musi na nowo uczyć się informacji o lokalizacji. Obie bazy danych wykorzystują te dane w różny sposób.
Zmiana w bazie danych domów polega na prostym zamianie danych. Zamiast wcześniej otrzymywać współrzędne obiektu, teraz otrzymuje GeoEmbedding komórki H3, która zawiera ten obiekt.
Wieża użytkownika wymaga głębszej przemyślenia, ponieważ mediany nie można po prostu zastąpić czymś równoważnym. Nie ma nic sensownego do uśredniania. Zamiast tego wieża otrzymuje sekwencję obejmującą komórki z ostatnich dziesięciu zdarzeń osoby, ułożone w kolejności. Każda pozycja rejestruje typ zdarzenia, dzięki czemu przypadkowe przeglądanie i oferta są traktowane inaczej, a także istnieje kodowanie świeżości, które pozwala modelowi nauczyć się, jak szybko sygnał powinien zanikać.
Osoba rozważająca opcję Copacabana lub Barra nie jest już umieszczana w jednym konkretnym miejscu pomiędzy nimi. Obie lokalizacje są teraz widoczne dla modelu. Może on określić, która była właśnie przeglądana, która doprowadziła do zarezerwowanej wizyty oraz która pojawiła się wcześniej.
Łącznie te dwie zmiany przyniosły największy wzrost efektywności, jaki zespół zaobserwował po modyfikacji pojedynczej cechy. Zgodnie z miarą ważności permutacji, GeoEmbeddings stało się najważniejszą cechą w systemie rekomendacji drugiej iteracji, a test A/B w warunkach rzeczywistych wykazał +1% rezerwacji w dziale Wynajem oraz +3,3% złożonych ofert w dziale Sprzedaż. Takie wzrosty konwersji na poziomie platformy pokazują, jak silnie jakość reprezentacji wpływa na ostateczne wyniki.
Co nastąpi dalej
Geografia sama w sobie ma jeszcze wiele do zaoferowania. Planowane są dodatkowe sygnały dotyczące bliskości, takie jak odległość od stacji metra, szkół i parków, oraz wyższa rozdzielczość reprezentacji, które są bardziej szczegółowe i dynamiczne.
Większość istotnych odkryć pojawiła się niemal przypadkowo. Przeprojektowanie „wieży użytkownika” było pierwszym razem, gdy HUE potraktowało historię kogoś jako uporządkowaną serię wydarzeń, a nie zbiór statystyk podsumowujących, i ta metoda przyniosła rezultaty. To naprowadziło na naturalne pytanie: jeśli sekwencja jest właściwym sposobem opisania tego, gdzie ktoś szukał informacji, czy nie nadawałaby się również do opisania wszystkiego innego, co robił?
W poszukiwaniu odpowiedzi na to pytanie powstał SENNA – sekwencyjny rekomendator multimodalny, którego cała „wieża użytkownika” to sekwencja stron, z którymi dana osoba miała interakcje, przy czym każda strona jest opisana w pełni, włączając zdjęcia. GeoEmbeddings stanowią z kolei zamrożony wpis geograficzny.
Lokalizacja zawsze była najważniejsza dla użytkowników. Nauczenie modelu rozumowania o miejscu w różnych skaliach, zamiast traktowania współrzędnych jako kolejnej liczby, dało zespołowi możliwość uwzględnienia tej preferencji w swoich działaniach.
Literatura pomocnicza
Idee te opierają się na kilku publicznych źródłach: artykule Covingtona, Adamsa i Sargina z 2016 roku o metodzie dwóch wież w YouTube, pracy Yi i współpracowników z 2019 roku korygującej błędy próbkowania w tej metodzie, artykule van den Oorda, Li i Vinyalsa z 2018 roku o kodowaniu predyktywnym kontrastowym, badaniu Guo i współpracowników z 2024 roku dotyczącym załamania embeddingów oraz dokumentacji indeksu geoprzestrzennego H3 dostępnej na stronie h3geo.org.