How to model better recommendations in Covid time?

Needs in the IT sector are constantly changing. After Coronavirus hit us unexpectedly, this is true, more than ever. In order to keep distance from each other, we were forced to limit all our activities that can’t be done online. At first, this was shocking and we weren’t prepared for such change. But when we got used to it, we have realised that online business isn’t the future, it is NOW.

Users now expect reliable eCommerce platforms, with satisfying user experience. Having in mind a great number of users, products and competition, it is clear that this is really hard to achieve. So, during quarantine, we tried to make the most of it and to come up with something that can be valuable to our clients and that will improve both the eBusiness and core business. We decided to focus on creating the next generation recommender systems.

In our other blog posts, you can find a detailed explanation of recommender systems. In short, recommender systems on e-commerce websites suggest new items to customers by collecting preferences of people based on the analysis of people’s behavior. Recommender systems can bring numerous benefits to companies that are using them:

  1. users can find desirable products much faster
  2. users can get matching products during cart check out process
  3. prevent users from abandoning shopping carts
  4. trigger emails based on online interactions
  5. much better user experience, especially with personalized recommendations or even whole pages


The next generation recommender systems

The e-commerce industry is going to expand in a bigger scale, and so are recommendation engines. The next generation recommender systems are expected to include the following features:

  • more personalized recommendations – recommender systems would become more capable of digging deep into the customers’ data insights which will help them in presenting them with more-relevant, customer centric recommendations.
  • reach customers through multiple channels – the recommender systems in the future would be more capable of reaching out to the users across various mediums like emails, social media channels, on an off-site shopping widgets, mobile apps, etc.
  • real time recommendations – recommender systems based on deep learning can provide real time behavior to the model. They aim to present the right items to a user, at the time that it is most useful to her.

Knowing all of this, we tried to find architecture for a new recommender engine that can work with online data, in real time and that can gain insights about users for better and more personalized recommendations. That “unicorn” is the HRNN model.

Session-based recommender with HRNN (Hierarchical Recurrent Neural Networks)

Why session-based recommender? In many online systems where recommendations are applied, interactions between a user and the system are organized into sessions and those sessions have a goal – to find some product or service. If the model is aware of what is the intent of the  user in a given session, performance of recommendations can be improved with that information and they will be more relevant. But user history is also important – if two users in previous sessions have different interests, they should get different recommendations in current sessions, even if current sessions are the same. In order to achieve that, we are using the HRNN model.


In one of our next blog posts, we will write about HRNN in detail, but in general, the idea is that we apply this algorithm when user identifiers are present and propagate information from the previous user session to the next, thus improving the recommendation accuracy.


In the picture, we can see two layers of neural networks. The upper one is session-level representation and in its memory cells it keeps information of just one session. Those informations (output) are input in the lower network, which is the user-level representation. Memory cells of lower network keeps informations about all sessions for one user and propagate those informations for every next session. With this architecture, we have covered cases when we have a user identifier, but if we don’t, this architecture comes down to just session-based recommender and takes into account just current session data. As a result, we get top N recommendations for every user session, and that’s exactly what we wanted in the first place.

If you are interested in how this was implemented in the real use case and what were the results, follow our blog, we will be happy to share our experience on this in our future blog posts. You can contact us to get some deeper explanation, or if you have an impression to share on improving and developing recommender engines of the next generation – we would be more than happy to hear it. 🙂


More sources:

The cover photo is taken from

Recommender Systems and Banks: Precious Recommendation

The client’s path, from conceiving an idea to making it a project in the bank, used to be clear, but unpredictable. It involved a potentially noticed ad or the client’s own idea, a visit to the bank counter in person and the more or less successful deal with the bank. It was very time consuming, with very little control from the bank, and even less efficiency. It was very hard to accept this method in an industry that is proud of the motto “time is money”.

Online communication of a bank and a client seems even more chaotic at first sight. Random clicks on the websites in the search for the information, answers to the key questions, wandering around, looking for the needed service.
However, things do not have to look that way. Human behaviour in attempts to communicate with banks is usually all but chaotic.

First Step – Creating a System

The best cure for chaos is – implementing the order. In the online communication between clients and banks, that means identifying the options to get the best possible outputs from the system, relying on the inputs.
“Recommender Systems are used to provide the best recommendation of our product that would interest the client most (system output), based on the user data (system input)”, Things Solver expert for development and implementation of Recommender Systems Strahinja Demic explains, using the company’s definition.

These systems can be classified according to the system input, system output or according to the algorithms that operate in the background and create the recommendation. First two classifications are created in Things Solver and are based on the practical experience.
“In the classification based on system input, we can identify inputs from online (user visits to the website, for example), inputs from offline (user data kept in the bank’s database), or the mixture of both kinds of data. In the classification based on the system output, the recommender can propose products the user already experienced or those that he might be interested at, but still does not have them; or the mixture of both kinds”, Demic describes the systems.

The New Approach for the Banks

Recommender Systems made by Things Solver make their way into the banking systems through the online sessions data.
“An online session is defined as a client’s visit to the website and its entire activity on the website – for example, the path through the website, time spent at certain pages, choice of links. Based on that data, we try to describe what client actually wants – the client’s visit to the webpage for loans or his attempt to make a calculation can send us a signal that there is some interest for taking a loan”, Demic explains.

The outcome of the process is a package of five products the client analysed and five products he might be interested at, but had no direct experience with it so far – only the algorithm noticed the potential interest for the product.
“We can notice the interest even before they show it at one of the banks for at least 10 percent of clients, and that is not a small number. The percentage would grow if those clients would be contacted in order to maintain their interest”, and this is the moment when, as Demic explains, the managerial structures of banks became more interested for the Recommender Systems.

But this results do not make only the management happy. The other employees are satisfied as well – without many changes in the procedures, since people rarely welcome big changes, the results and efficiency are improved. This recommendation then definitely deserves the adjective “precious” in its description.