As the title explains my problem, I'm done with creating a recommendation system that can give me similar users for any given new user. The problem I face is, If I extract the list of products that these similar users liked the most, how do I weight these items and recommend, say only 3 of these items.
You can use some kind of distance metrics.
For example, you identify three users that have the lowest distance from your target user and propose one item from each, or three items from the closest user, whatever works best for your usecase
I guess you've used clustering to cluster the users together. Maybe that using product clustering in conjunction with user clustering can give you good results?
Without knowing a bit more about the background of your model and data it seems to me like you solved the wrong question.
Your current recommender solves "Which customer is similar to this customer?", so it recommends a customer to you.
What you want is "Which product will this customer like?" so it recommends products.
E.g. using association rules, etc. you should predict liked products based on customer attributes instead of clustering customers. This will always create better and stronger recommendations because you identify the true link between customer attributes and preferred products.
Given all the work already done, you can still make something work. If you would agree to the following hypothesis "All similar customers like similar products" for your domain I would proceed with the following path:
Your current recommender basically creates clusters of customers --> Output is Cluster A, a set of customers that customer A fits best in
Create a model that outputs the most liked / most purchased products for Cluster A --> Output is product list A, a set of products ranked by a metric
Check which products from product list A customer A did not already buy --> Output is product List B, a set of products to recommend to customer A ranked by a metric