Product Recommendation Strategies

A non-exhaustive, but fairly large list of product recommendation strategies in Fashion Retail (ecommerce)

Photo by Austin Chan on Unsplash


Personalization consists of tailoring a service or a product to accommodate specific individuals, or groups/segments of individuals.

Almost every organization today uses, or wants to use, personalization to improve customer satisfaction and sales.

When it comes to e-commerce, product recommendations are one of the most common aspects that benefit from personalization. Customers appreciate a ‘For You’ section that helps them explore and find products they would like.

With increasing availability of data, it is becoming easier to create and implement product recommendation strategies. These strategies could range from simple ‘Most bought’ to sophisticated ‘You may like’ tailored to every customer’s profile and preferences.

Below is a large (non-exhaustive) list of such simple-to-sophisticated product recommendation strategies. I have created this list with Fashion e-com in mind, though many of these strategies are flexible and can be applied to other domains as well.


Each of the below strategies can be used at multiple places throughout an e-com website or an app. Depending on the positioning, certain logical tweaks are necessary to make them work while some of them might not be applicable for a particular position at all.

I have not listed specifics of positioning under each strategy, although following are some of the main locations where product recommendation strategies are used: Homepage/Landing page, category arrays, search result arrays, product detail pages, and cart page.

One of the simplest strategies is to rely on wisdom of the crowds. You can show Top or Best selling products from your catalog as recommendations to all visitors. showing a card for ‘Best Sellers’ in a particular category ‘Computer & Accessories’

The way top or best seller list is determined can vary a bit but the simplest way to get them is to use units sold (sales value skews the list towards costlier products). You can also use visits to a product page as a normalizing metric and use units sold per visit (units/visits) as the prioritization metric, although this requires adjustments for products that have few page visits.

The Top/Best seller list is not a personalized recommendation for each visitor, but it can still be personalized to certain extent at a segment level by computing the list separately for each region/customer segment/product category/etc. A time range of latest month or week can also be used to keep the list fresh and dynamic to capture latest trends.

Very closely related to Top sellers, you can also show a list of top viewed/browsed products using visits to product pages. This is something that travel booking websites generally do to show what trips/properties other visitors are currently looking at. A shorter time range of, say, four hours can help keep this as a list of currently hot/trending products.

‘Trending’ products on Trending products can be defined as top viewed products/categories

Customers want fresh new picks, and they want what’s trendy before others get it.

For such customers, you can display a list of New Arrivals for the week or day. This list can also be split by product category to have, say, ‘New Arrivals in Shoes’ or ‘New Arrivals in Dresses’.

‘New Arrivals’ section also helps in product and brand discovery by giving an easy avenue for new products to have a chance to get the spotlight. showing a ‘New Arrivals’ card

Market Basket Analysis is one of the key methods used to discover co-purchase relations between products. It looks for combinations of products that are frequently bought together in a single transaction (basket) and quantifies the direction and strength of the relation between products. This is especially useful in recommending additional products to customers based on what they have already bought in the past, are currently looking at or currently have in their cart.

‘Buy it with’ suggestions from

In regards to Fashion retail, what is even better than a simple Market Basket based recommendation is a look based recommendation. For a shirt, you could recommend matching pants and accessories such as watches and shoes. This creates a better shopping experience by helping in visualizing the garment and highlighting its versatility.

‘Complete the Look’ recommendation from

You can refer to this article by Pinterest for more information on Complete the Look.

Another method of recommending other products on a product page or on cart page is to determine products similar to the product in focus.

The similarity could be based on product attributes, which requires you to have good product metadata, or could be based on visual similarity, which requires good product images.

This is usually displayed under ‘Similar items’, ‘You may also like’, etc. banners/sections.

Similar items on
Similar products on

Simplest way of computing product similarity based on product attributes is to denote each of your products as a vector of attributes and then use the Cosine similarity metric on product pairs. There are many other similarity metrics, such as Euclidean distance, Manhattan distance, Jaccard distance, that can be used based on how the product attributes look like.

Cosine Similarity- A,B are vectors
Jaccard distance- A, B are sets

For visual similarity, features can be extracted from product images using a neural network (custom built or pre-trained like ResNet) and any similarity measures can be used on the vector of extracted features. You can refer to this article and there are many more that give a walk through of finding visually similar products.

Recommendations from; second handbag is visually similar in shape and arrangement and fourth in color and pattern- possibly from a visual similarity algorithm

Collaborative filtering encompasses techniques for matching people with similar interests and making recommendations on this basis.

By Moshanin — Own work, CC BY-SA 3.0,

There are various methodologies for Collaborative filtering that can be chosen based on use-cases. Memory based approaches, i.e. using user rating data to compute similarity between users or items, generally don’t scale well and hence Model based approaches are generally used when you have many products and a large customer base.

You will find numerous articles and reference codes for using CF on the Movie lens dataset to recommend movies to new users such as this one. This can be expanded to product recommendations by either using product reviews data, if available, or treating a purchase as an implicit feedback in a customer-product grid.

Model based approaches for Collaborative filtering lack methods to handle the cold-start problem (new product or new customer entering the system). There are various ways of solving for this, such as assigning recommendations to new customers using lookalike existing customers, or re-computing the matrix near real time with new data added in that can be used based on the use-case.

All of the above strategies are trying to figure out what a customer might like either through using the wisdom of crowds to recommend things majority of people like or through using customer-product interaction data to estimate what a particular customer might like. These strategies do not focus on what a customer might actually buy.

For this, you could try and determine what a customer might buy in the coming weeks using a propensity model.

A customer level purchase propensity model will help you to understand which of your customers are most likely to buy in a given timeframe and this can be used to tailor customer outreach strategies accordingly.

A product category level propensity model will help you to understand which category is a customer likely to buy next and then the product recommendations from any of the above strategies can be filtered for these categories.

A product level purchase propensity modeling exercise will have scale issues depending on number of products you have. The scale can be managed by restricting the universe of products per customer to ones recently viewed by the customer and determining which one of these is the customer most likely to buy.

You can refer to my two-part walkthrough of the rolling window modeling approach to understand how to build purchase propensity models— part 1 and part 2. The articles use dummy sales dataset and build a model to predict which customers are most likely to make a purchase in the next four weeks.

All of the above strategies can be personalized to certain extent if we have some personalization levers to augment them like knowing what product categories do the customers prefer, which brand do they like, etc. These can be based off past purchase/browse data or can be model based like having a CF model or a prediction model as discussed in the Purchase propensity section for category propensity model.

Many of these can be further tweaked using negative signals exhibited by customers via returns and order cancellations by penalizing such products/categories. For example, any product that gets returned by a customer is given a -1 rating in the product-customer purchase grid and the CF model is refreshed, or product categories can be de-prioritized from recommendation list by using return rate as a negative ranking metric.

All of the above strategies also heavily depend on what kind of data is available to you. Sales data, good quality product metadata & hierarchy data, and clickstream data from website/app are required. A good customer identification and tagging methodology is also required in order to have correct and complete activities mapped to each customer/visitor. For visitors that are anonymous, user-data agnostic strategies like Top seller or Product similarity strategies that only use product details are some of the only feasible options.

Thank you for reading this article. I plan to further publish articles detailing the process for some of the modeling ideas outlined above.

For my published articles, please visit my profile. My git repo, referenced in some of the articles, containing more code notebooks for reference on both Python and PySpark is present here.



Data Analytics consultant

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store