There's this side project I'm working on where I need to structure a solution to the following problem.
I have two groups of people (clients). Group
A intends to buy and group
B intends to sell a determined product
X. The product has a series of attributes
x_i, and my objective is to facilitate the transaction between
B by matching their preferences. The main idea is to point out to each member of
A a corresponding in
B whose product better suits his needs, and vice versa.
Some complicating aspects of the problem:
The list of attributes is not finite. The buyer might be interested in a very particular characteristic or some kind of design, which is rare among the population and I can't predict. Can't previously list all the attributes;
Attributes might be continuous, binary, or non-quantifiable (ex: price, functionality, design);
Any suggestion on how to approach this problem and solve it in an automated way?
I would also appreciate some references to other similar problems if possible.
Great suggestions! Many similarities in to the way I'm thinking of approaching the problem.
The main issue on mapping the attributes is that the level of detail to which the product should be described depends on each buyers. Let’s take an example of a car. The product “car” has lots and lots of attributes that range from its performance, mechanical structure, price etc.
Suppose I just want a cheap car, or an electric car. Ok, that's easy to map because they represent main features of this product. But let’s say, for instance, that I want a car with Dual-Clutch transmission or Xenon headlights. Well there might be many cars on the data base with this attributes but I wouldn't ask the seller to fill in this level of detail to their product prior to the information that there is someone looking them. Such a procedure would require every seller fill a complex, very detailed, form just try to sell his car on the platform. Just wouldn't work.
But still, my challenge is to try to be as detailed as necessary in the search to make a good match. So the way I'm thinking is mapping main aspects of the product, those that are probably relevant to everyone, to narrow down de group of potential sellers.
Next step would be a “refined search”. In order to avoid creating a too detailed form I could ask buyers and sellers to write a free text of their specification. And then use some word matching algorithm to find possible matches. Although I understand that this is not a proper solution to the problem because the seller cannot “guess” what the buyer needs. But might get me close.
The weighting criteria suggested is great. It allows me to quantify the level to which the seller matches the buyer’s needs. The scaling part might be a problem though, because the importance of each attribute varies from client to client. I'm thinking of using some kind of pattern recognition or just asking de buyer to input the level of importance of each attribute.