1
$\begingroup$

We run a online marketplace for Commercial Real Estate industry and are looking to write matching algorithms to reduce the cost of search and transaction for the property owners/tenants.

We have two groups of users - owners and tenants and would like to implement matching algorithms based on their characteristics. Without any prior transactions data to work with, how would you approach this problems? More specifically, what matching algorithm techniques would you implement?

Code is in python.

Example:

Property

"property": [
{
       "amenities": ["kitchen",
                     "conference room",
                     .....,
                     .....]

        "location": "Munich",
        "feature2: "xyz"
        ...
}

Tenants

"Tenants": [
{
       "amenities": ["kitchen",
                     "conference room",
                     .....,
                     .....]

        "location": "Munich",
        "Type": 'Retail',
        "feature3": 'xyz'
        ...
}
$\endgroup$
2
$\begingroup$

According to your description you can only use similarities between descriptions, and since there's no labelled data it has to be unsupervised.

  • Option 1: heuristic (i.e. ad-hoc unsupervised method). Based on your knowledge of the specifics of the data, implement a function which returns a score representing how similar two descriptions are. For example a basic matching could simply count the number of common items between the two descriptions divided by the number of items in the longest description. For a query description return the N top similar matches after comparing it to every potential match. Naturally this can be improved in many ways.
  • Option 2: represent each description as a vector and use any generic similarity measure over pairs of vectors (e.g. cosine). The representation can be some kind of direct representation, e.g. some kind of TF-IDF vector, or a more sophisticated representation as a tree or graph embedding.
| improve this answer | |
$\endgroup$
  • $\begingroup$ As a starting point, I think, Option 1 is probably a better choice. I am thinking about an optimal way of comparing tenant to properties. For instance, would you compare each tenant description vector to property characteristics and calculate a similarity score. Based on this score, rank the tenants for each property? $\endgroup$ – kms Feb 5 at 8:17
  • $\begingroup$ Basically, a matrix representing tenants and properties with their corresponding scores? $\endgroup$ – kms Feb 5 at 8:20
  • $\begingroup$ @kms Yes that's the idea: the similarity score gives a ranking from which the top N most similar matches can be extracted (similar to the results of a search engine). Depending on the size on your data, efficiency could be an issue: in this case you might need some kind of filtering method in order to avoid computing all the similarity scores. $\endgroup$ – Erwan Feb 5 at 20:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.