I am exploring approaches to build a model that shows personalized search results (with or without query) for a fashion eCommerce platform. For that I am first working on coming up with a bunch of products for each user and their corresponding likelihood to buy it.

I have user's purchase history i.e the list of all the products with the client has bought with brand name and the dress category that the product belongs to (shoe or top etc.)

So I want to populate client's search results with the items that the client is most likely to purchase based on what he has bought in the past. So I am trying to build a model that estimates the probability that the user is going to like a suggested item. The products are part of a larger product inventory.

Is this a content based filtering problem? Currently I am trying to create each client's vector profile based on his liking towards a brand or not? Is this the current way.


1 Answer 1


Content-based filtering is relevant whenever you have features to learn from (features about the products \ user). Sound like this is not your case as you mostly rely on the historical choices \ preferences of your user base. Sounds like a classical use case for Collaborative-Filtering (CF) based approach.

There are many possible CF implementations, most common ones are: Memory-based: User to User \ Item to Item based similarity Model-based: Matrix factorization

Of course, there are much more implementation options but these ones could give you a good starting point

  • $\begingroup$ Thank Oren for the reply. Collaborative Filtering is one way to go. But I have data regarding the products as well. Like since the products are fashion apparel so the data contains category they belong to (top, shoes etc.), their brands, the color, the fabric etc. I was trying to look for a way to make use of these features to create a product profile or something of the sort. Can this data be used? $\endgroup$
    – PranavM
    Jul 21, 2020 at 11:41
  • $\begingroup$ Hi @PranavM yes sure you can use that :). The number of options is endless, few options to open the mind: 1. You can use the product details to calculate the product similarity matrix. That way, once the user likes a specific product you can offer him other similar products. 2. You can use the previous method only when a new product arrives, to overcome CF cold start issue. 3. You can try and embed each user in this product features space, based on previous products that he likes, and then to search for most similar products (similar to option 1 but in a different order). $\endgroup$
    – Oren Razon
    Jul 22, 2020 at 13:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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