css dots

Complete the Look Personalization

Precocity was engaged to create a machine learning algorithm to provide product recommendations to "complete the look" for e-commerce customers.

We implemented a smart recommender system that helps drive complementary product recommendations for the products on the NeimanMarcus.com online storefront. The idea of this recommender system is to be able to “complete the look” given that a customer is on a specific product detail page. For example, if the customer is browsing a specific shirt on the site, the recommender would show a complementing jacket, tie, pants and shoes that would go along with the shirt. The recommender system is smart in a way that it doesn’t randomly pick products from complementing “product categories”, but does so following a hierarchical decision making process.

Each stage in the hierarchical decision making process provides a set of complementing products (within allowed categories) ranked from best to least. If recommendations don’t exist at a given stage, then the decision control falls to a more generic (from a more specific) level of personalized recommendations. The hierarchy of recommendation strategies are as follows (specific to generic in that order):

  • Strategy #1: Machine learning based recommendations based on product’s physical attributes.
  • Strategy #2: Machine learning based recommendations based on a variant of collaborative filtering technique.
  • Strategy #3: Statistical analysis based recommendations based on top selling products in the complementary categories.

Strategy #1: Supervised Machine Learning

The training data is gathered from the stylists working at Neiman Marcus who help identify good, bad or neutral product pairings. The data gathering process works as follows:

  • A list of complementing product categories is given as input to govern the product pairings that are generated (ex: to avoid recommending sneakers to suits)
  • An ensemble of product pairs following the category pairing rules is generated, ensuring that all product type combinations are captured in the ensemble.
  • The product pairings are displayed to the stylists who rate the combination as good, bad or neutral and those ratings carry a score which is given as input to the training process.

A Probabilistic Matrix Factorization technique then uses this training data and builds model by “discovering” the hidden attributes that contribute to a good, bad or neutral pairings. Once the model is built a pairwise comparison matrix is generated between all the products with a score indicating whether two products complement each other (higher the rank better the complementary product).

The limitation of this method is that is the machine learning algorithm relies entirely on analyzing the images of the products. Since this is implemented on-premise on a smaller number of machines, this strategy was only used to generate complementary product recommendations to main, highly visible products on the online storefront.


Strategy #2: Collaborative filtering

Collaborative filtering technique, in general, provides new product recommendations to users which they didn’t interact with before. These recommendations are based on other users’ behavior. But in the case of complete the look, the recommendations are (and should be) product-product based. To derive the product-product recommendations, we extended Spark’s Alternating Least Squares recommender and some of the underlying matrix factorizations to generate a score for each product pair. From those pairings, we take only those product combinations that are valid (based on the category pairing rules that are given as input). For each product pair the score indicates whether or not a product is good recommendation, higher the score better the chance of it being a good recommendation.

The input data for this strategy is the customer purchase and browsing data from Omniture for the past 1 week. Since the products that the customers interacted within the past week might not include all the products displayed on the website, the recommendations that are generated also will be limited to only those products that the customers have viewed or purchased in the past week.

Strategy #3: Top Sellers

This is the least specific approach among the three and is the most guaranteed approach to have recommendations for a given product. The approach is to consider products that are purchased and / or viewed within the past month (taken from Omniture) and generate lists of top selling products within each category. With the category pairing rules applied, each product in a specific category is paired with top selling product from the complementing category. Top sellers are identified based on the purchase and viewing frequencies each assigned a specific weight (purchases > browsing).

Although this approach mostly guarantees to provide recommendations for a given product, the quality of the recommendations might be inferior compared to the first two strategies. The reason being that for a given product, the top selling product in the complementing category is not necessarily the best fit recommendation.

Comparison of Strategies

Impact / Incremental Revenue

This Complete The Look application allowed Neiman Marcus to scale out a key revenue producing e-commerce component in ways that would not be possible with human labor.

This component combined with our data ingestion platform and a scalable delivery mechanism powers over 100 million personalization requests per day and results in over $30 million of incremental annual revenue.