i need some advice for a project where i have to implement a recommender system for a market with very special characteristics. The scenario is as follows:

  1. Its a two-sided market, with buy and sell side. Both sides can make an offering of a product for the other side. Example: Buy Side can make a request in the market to buy a product. The sell side can fulfill this request, when they own this product. The same logic applies for sell side.
  2. There are no ratings for the products available. I can only work with implicit data (Buy / Sell history (when the request is fulfilled), request history (although it's not fulfilled from the counter part) )
  3. The occurrence of new products is rare.
  4. Currently there is a pool of about 5,000 products, which can be requested by both parties (buy / sell)
  5. One product can be requested frequently from one user over time. (a frequent request of a product by a user is an indicator for a positive preference to this product).
  6. When a request is fulfilled from the counterpart, this request either disappears from the market or in some special cases it remains in the market and can be fulfilled by other users.
  7. A product can only be recommended to the other side, if and only if it is currently provided in the market. (e.g. a product can only recommend to the buy side, if the sell side offers the product currently)

I am pretty sure that i will need two models (one for sell and one for the buy side) to cover both preferences. My first idea is using weighted matrix factorization. But I am not sure if it will be much better, when only to recommend the product to the user who already buys / sells or requested this product in the past.

Can someone give advise? Thank you :)

  • $\begingroup$ i have edited your question, however the last sentence I could not comprehend sufficiently to be able to improve grammar. $\endgroup$
    – Zhubarb
    Feb 8 '18 at 16:41

Not going deep in your business requirement, if I may generalise the problem statement, it looks similar to what Amazon or other e-commerce companies are trying to solve through recommendation.

Matrix Factorisation seems a good choice but most popular algorithms as described here and here are based on past user behaviour/history, which at first might not be very useful in your case. Based on my experience working on Recommendation System, you might want to look into Neighbourhood models or other methods based on user-user or item-item similarities. Cosine similarities and KNN models to find similar items are good starting points.

For example, if I buy a guitar from a website I would expect a guitar tuner or some similar products in the recommendations than a guitar of another brand. Below are some texts that you can read and understand how these models work and decide on their suitability in your application.

this, this and this

I personally prefer a very simple approach to solve the problem and a good evaluation technique to understand it's performance.

Hope this helps.

  • $\begingroup$ Thanks for your answer. I will work throught your proposals. To me mind the biggest difference to amazons RS is, that this system have to cover both preferences and that recommendations of one product should reach many times a user, because he / she will buy / sell this product frequently. What do you think about the following apporach: Clustering the products in similiar groups using a cluster algorithm and the assign the new product to a cluster (Maby using K-Nearest-Neighbour). Then recommend to new product to the Top-N of the user, whou buy / sell a product in this cluster? $\endgroup$
    – Vik
    Feb 8 '18 at 15:23

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.