A recommender system for smart user interfaces using machine learning and microservices
Antonio Jesus Fernandez (PhD student)
Luis Iribarne (supervisor),
Antonio Corral (supervisor),
James Z. Wang (external supervisor)
4 March 2019, University of Almería (Spain).
The progress of the computers processing capacity and the cloud computing payment models that make computing affordable to (almost) everyone have made it possible to manage a huge amount of data that was unimaginable until only a few years ago. This computational progress has enabled us to run artificial intelligence algorithms that, although they were already developed mathematically years ago, have now been improved and democratized and therefore, they are able to be executed on a large scale.
This new context, has led to the burst of artificial intelligence and, more specifically, machine learning, that even in early phases, is contributing to change the way that humans manage or communicate with information systems and with their environment. The use of machine learning has already being widely applied by large companies, and it is expanding to the general population, spreading to each of the parts of our lives, creating personalized recommendations for us that even we ourselves do not know. It also affects to a large variety of fields. Accurately forecasting, precisely identifying trends and the discovery of behavior patterns clearly optimize resource usage or consumption as well as generate new knowledge in science and research facilities; enabling faster and better decisions in politics, retail, weather, sport, science, research, real estate, sports or healthcare among many others fields.
In this dissertation, we pretend to establish a methodology that makes use of machine learning technologies to create recommendation models. In order to do that, there are certain aspects that need to be considered: 1) It is necessary to have a good insight of the context where the recommendation system will be deployed; 2) It is necessary to define an effective and efficient strategy to acquire the necessary data by creating data acquisition systems; and 3) It is necessary to have a thorough knowledge of machine learning algorithms, feature selection methods and feature engineering techniques to really get some insight from data. Although these processes require a high degree of dependence from the context where they will be applied, we have structured and documented the methodology in such a way that it is extensible to be applied in every situation where a recommendation system needs to be deployed.
To illustrate all the processes and to describe how the proposed methodology can be applied in a real scenario, we present as a case study a recommendation system that allows the creation of smart user interfaces. Recently, a large number of fields make use of computational intelligence methods to make predictions based on the users' behavior and, in the case study, we will make use of the users' behavior to make user interfaces that evolve over time according to the users' needs based on their previous behavior.
The user interface of the case study is a component-based (mashup) graphical user interface. This is a popular kind of interface where users customize their own interface from repositories that contain a large number of components at their disposal. To work in that area, it is imperative to understand the morphology of these kinds of interfaces in the first place. For that reason, we formally describe their structure as well as understand the main operations that can be carried out in them and how users perform such operations, including the implications that they may have in the information system behavior.
After that, we present a flexible data acquisition system capable of capturing the human-computer interactions performed by users over mashup interfaces with the aim of storing them. To achieve that purpose, an architecture of microservices has been designed in the cloud to detect, acquire, and collect the interactions performed over this kind of interfaces. The whole process is ready for acquiring internal data of the information system as well as context information and location awareness. To validate the data acquisition system, some tests on empirical case studies have been developed. Efficiency and effectiveness have also been determined by evaluating the performance of the acquisition system during different load tests. In addition, in order to ensure the software quality, a continuous integration strategy for software development and an easy management of the code have been used, facilitating the software maintenance alongside the microservice architecture, where functionalities are well encapsulated.
Finally, we make predictions and recommendations to end users by creating a recommender system using intelligent data analysis methods. Once the interaction data required is gathered and a dataset is built, we address the problem of transforming the original dataset to an optimized dataset ready to be used in machine learning algorithms. The transformation is made through the application of feature engineering techniques and feature selection methods. Moreover, many aspects, such as contextual information, the use of the application across several devices with many forms of interaction, or the passage of time (components are added or removed over time), are taken into consideration. Once the dataset is optimized, a series of experiments are conducted applying several machine learning algorithms to the optimized dataset (before and after applying feature selection methods) to create recommendation models. Lastly, to determine which recommender model offers a better performance, several metrics are used to evaluate them.
Once we have created the best possible recommendation model, we pay attention to its deployment on real mashup applications. This process is not always easy and many issues may arise such as conflicts between the components instantiated. Our methodology creates a web service that encapsulates the recommendation model and produces personalized recommendations in real-time based on the users' behavior. It incorporates a conflicts management module that determines the suitability of the recommendations before being offered to end users.
Thus, through the deployment of the recommendation systems that have better results and led to no conflicts or breach any constraint, it is possible to offer customized suggestions created exclusively to users in component-based applications, enhancing their user experience and the application engagement.
Acknowlegments: This work has been funded by the EU ERDF and the Spanish Government under Projects TIN2013-41576-R and TIN2017-83964-R. A.J. Fernandez-Garcia has been funded by a FPI Grant BES-2014-067974.
LINK (download thesis): DOWNLOAD