Case study
Matching hotels to buyers, in a market with almost no ratings
A hotel goes on the market. Somewhere in a book of two hundred thousand investors are the handful who would buy it, and finding them took a broker up to three months.
- Client
- Jones Lang LaSalle (JLL)
- Sector
- Commercial real estate · Hospitality
- Role
- Contract engagement
- Period
- 2016, then multi-year
- Result
- 3 months → instant to produce a buyer shortlist
- of the ratings matrix was empty
- 99.35%of the ratings matrix was empty
- potential investors in scope
- 200,000potential investors in scope
- increase in hotel sales, client-reported
- $13.2Mincrease in hotel sales, client-reported
The problem
JLL is one of the world's largest commercial real-estate services firms. When a hotel came to market, matching it to the buyers most likely to want it was manual work done by expensive people, and it could take up to three months — during which the property sat.
The asset they had was history: tens of thousands of properties, roughly two hundred thousand potential investors, and twenty-five years of transactions. The question was whether that history could rank, for any newly listed property, the hundred buyers worth calling first.
The sparsity problem
Recommender systems are a solved problem when your users rate things. Commercial property buyers do not. On the modeling subset — 492 properties against 10,351 users — the ratings matrix was 99.35% empty. Sixty-five percent of users had rated one item or fewer. Ninety percent had rated six or fewer.
Almost every published collaborative-filtering result assumes a matrix an order of magnitude denser than this one, so the signal had to come from behavior instead of ratings: what buyers responded to, what they bid on, what they had said they were looking for.
- Four input feeds
- Property records, responses to marketing campaigns, bidding history, and each investor's stated investment preferences.
- Two models
- A buyer model built from investment criteria — 408 features across 10,351 users — and a property model over location, type, tenure, brand, room count and asking price.
- Preprocessing that mattered
- Z-score normalization to remove per-user rating bias, and binarization to stop heavily skewed behavior from dominating the similarity measures.
492 properties × 10,351 users
a rating existsnothing at all
The algorithm bake-off
Several algorithm families were implemented and compared. User-based collaborative filtering outperformed everything else, and cosine distance beat the alternatives for both the user-based and item-based variants.
A plain popular-items baseline outperformed item-based collaborative filtering, which ruled that variant out.
The headline-optimal nearest-neighbor value was nn = 10. We shipped nn = 20, because nn = 10 gave a worse true-positive rate across the higher false-positive range — the range this system operates in, since a broker works down a shortlist of calls.
What was delivered
A hybrid framework that builds several candidate models — collaborative filtering, content-based, vector-space and nearest-neighbor — evaluates them against each other, and serves recommendations from whichever currently performs best, instead of hard-coding the winner of one comparison.
The output is the hundred buyers most likely to want a given property, ranked, produced the moment it's listed. The process it replaced took up to three months.
Result
The recommendation list is generated instantly once a property goes to market, and the platform was adopted across JLL globally. The client reported an increase in hotel sales of over $13.2 million.
Discuss a similar problem
If one of these engagements resembles a problem you're facing, we can walk through how it was built and what it would take in your environment.