This book has shown you multiple implementations of recommender systems (also known as recommendation systems) using various techniques. You have gained a holistic view of all these methods. Topics like deep learning and graph-based approaches are still improving. Recommender systems have been a major research interest for a long time. Newer, more complex, and more interesting avenues have been discovered, and research continues in the same direction.
This chapter looks at real-time, context-aware, conversational, and multi-task recommenders to showcase the vast potential for research and growth in this field.
Real-Time Recommendations
In general, batch recommendations are computationally inexpensive and preferred because they can be generated daily (for example) and are much simpler to operationalize. But recently, more focus has been on developing real-time recommendations. Real-time recommendations are generally more computationally expensive since they must be generated on-demand and are based on live user interactions. Operationalizing real-time recommendations is also more complex.
Then why are real-time recommendations needed? They are essential when a time-based and mission-centric customer journey depends on context. In most scenarios, real-time demand needs to be met before the user loses interest and the demand fades. Also, real-time analysis of a customer’s journey leads to better recommendations in the current scenario. Conversely, a batch recommendation suggests products similar to those seen/bought by a customer in previous interactions.
Conversational Recommendations
Recent years have seen a lot of research and effort in developing more conversational systems. It is believed to revolutionize how human-computer interactions happen in the future. This influence can also be seen in the recent developments in recommender systems in the form of conversational systems.
Conversational recommender systems aim to produce recommendations from textual/spoken dialogs so that the users can interact with a computer in a natural, conversational manner. It has recently become extremely popular and is extensively used in voice assistants and chatbots. It uses natural language understanding (input) and generation (output). The different actions for various input dialogs are generated with the help of a dialog management system.
Context-Aware Recommenders
Researchers and practitioners have recognized the importance of contextual information in many fields, such as e-commerce personalization, information retrieval, ubiquitous and mobile computing, data mining, marketing, and management. Although there has been a lot of research in recommender systems, many existing approaches do not consider other contextual information, such as time, place, or other people’s company, to find the most relevant. It focuses on recommending articles to users. (such as watching a movie or eating). There is a growing understanding that relevant contextual information is important in recommender systems and that it is important to consider it when making recommendations.
Context-aware recommender systems represent an emerging area of experimentation and research aimed at delivering more accurate content based on the user’s context at any given moment. For example, is the user at home or on the go? Are they using a large or small screen? Morning or evening? Given the data available to a particular user, the contextual system may provide recommendations that the user will likely accept in these scenarios.
Multi-task Recommenders
In many domains, there are several rich and important sources of feedback to draw from while building a recommender system. For example, e-commerce websites generally record user visits (to product pages), user clicks (click-stream data), additions to carts, and purchases made at every user and item level. Post-purchase inputs like reviews and returns are also recorded.
Integrating these different forms of feedback is critical to building systems that yield better results rather than building a task-specific model. This is especially true where some data is sparse (purchases, returns, and reviews) and some data is abundant (such as clicks). In these scenarios, a joint model may use representations obtained from an abundant task to improve its predictions on a sparse one through a phenomenon known as transfer learning.
It avoids overfitting.
It provides interpretable outputs to explain recommendations.
It implicitly expands the data and thereby alleviates the sparsity problem.
You can also deploy multi-task learning to tackle cross-domain recommendations, where generating recommendations for each domain is a separate task.
Joint Representation Learning
Joint Representation Learning (JRL), a recent approach, is capable of learning multi-representation models of users and items simultaneously. It uses a deep representation learning architecture, where each type of information source (textual review, product images, rating points, etc.) is adopted to learn appropriate user and item representations.
In JRL, multiple representations from different sources are integrated through a separate layer that obtains common representations for users and items. Finally, the per-source and joint representation layers are trained using pairwise learning to rank the top N recommendations. JRL is generally much quicker in online predictions than other deep learning approaches since it uses simple vector multiplications.
Conclusion
Recommender systems have been gaining traction since the start of the e-commerce era, but it has been around for some time. The first recommender system was developed in 1979 in a system called Grundy, a computer-based librarian that offered suggestions on books to read. The first commercial use of recommender systems was in the early 1990s. Since then, it has taken off because the financial incentives and time-saving qualities that recommender systems provide are unmatchable. Recommender systems have become essential for better user experience in many domains. The most popular example is that of Netflix and its recommendation engine, which receives heavy funding and focuses on research and development.
The constant need for recommender systems and their importance in various domains has led to a huge demand for building good, reliable, and robust systems. It calls for more research and innovation in developing these systems. This benefits businesses and helps users save time in making decisions and getting the most suitable option, which would be missed in most scenarios if done manually.
This book presented the various popular methods to implement an end-to-end recommender system in Python, ranging from basic arithmetic operations to advanced graph-based systems. All these methods can be useful depending on the requirements and the domain. Hands-on knowledge of these approaches will assist you in building the ideal Recommendation Engine (RC). We hope that this book is a useful tool for developers and practitioners. It should ease and further elevate the ongoing work and research in this exciting field by providing a deeper knowledge of the various concepts and implementation of recommendation engines.