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:
- 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.
- 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) )
- The occurrence of new products is rare.
- Currently there is a pool of about 5,000 products, which can be requested by both parties (buy / sell)
- 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).
- 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.
- 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 :)