free amp template

A Recommender System for an Online Retail Store

A Project Example

Using Machine Learning methods for development of a recommender system for an online retail store. Based on visitor preferences, the system recommends the best item matches.

Industry: Retail

Users: Buyers who are the users of an online clothing store.

Project description

A recommendation system for an online store dealing in fashionable clothes.

When logging in to the store users answer a few simple questions about themselves and their preferences in clothes. Every day they receive a list of items that according to the system suit them best. Users can mark what they really liked (they would like to buy) and what they did not like. Using this data as well as the data received from similar users (users that like similar items) the system determines what to offer next time.

With the course of time and accumulation of data the system makes more and more accurate suggestions taking into account the user’s tastes.

A combination of the two main approaches to implementation of recommendation engines is used in the system: content filtering and collaborative filtering.

The content filtering approach implies creation of a profile for each user and product, i.e. a set of properties characterizing its nature. The profiles allow the system to associate users with corresponding products. Filling profiles requires time and participation of a human expert.

In the approach based on collaborative filtering only information on the behavior of users in the past is used, i.e. data on purchases and product ratings. The main advantage of the approach consists in that it does not matter what types of products are handled and no expert participation is required. The method is based on the assumption that those who gave the same rating to some items in the past are inclined to give similar ratings to other items in the future. The main problem of collaborative filtering is the ‘cold start’: the absence of data on recently appearing users or products in the system. Therefore, at the initial stage of data accumulation mainly the first method is used, whereas with accumulation of information the system switches to the second. 

Project scope:

The recommendation system was implemented as a web service separated from the main store site, providing its functionality through a REST program interface (RESTful API).

The following work was executed:

  • Design of the program interface and integration of the recommendation system with the existing store site.
  • Implementation of functions for entering and storing of user feedback and purchases in the recommendation system (PostgreSQL DB).
  • Implementation of functions for building of a list of recommended products for a user.
  • Integration with the store inventory system in order to adjust recommendations considering the availability of models and sizes.


  • Content filtering
  • Collaborative filtering
  • Matrix factorization, UV-decomposition, SVD-decomposition


  • Programming language: Python
  • Web framework: Django
  • Libraries: numpy, scipy, skikit-learn
  • DB: PostgreSQL
  • Cloud platform: Heroku Cloud Application Platform
Project size:
  • About 20 000 lines of Python code
  • 4 months, 3 developers

© Copyright 2020 ProWide Labs Ltd. All rights reserved.