Introduction
Recommender systems or recommendation systems are information filtering tools that alleviate information overload to users, mainly by predicting the preference of the user for certain items and presenting the users the items more likely to be consumed by the user [].
Context-Aware Recommender Systems (CARS) aims to further improve recommendation accuracy and user satisfaction by taking into account contextual information [].
CARS are based on the idea that similar user in similar context will like similar items, and that the user preferences for certain item change according to the contextual situation [].
In the beginning, the research in CARS is leaned toward the development of new, and optimizing the existing algorithms to support contextual information and to generate better recommendation by improving the accuracy [].
In recent years, researchers have become more aware of the fact that effectiveness of recommender systems goes beyond recommendation accuracy. Thus, research in the context and human factors has gained increased interest [] as a potential opportunity to increase the user satisfaction with the recommendation results.
Despite the strong tie between the recommendation algorithms and the data about user and context factors, both elements have been treated as separated research problems. Because of this separation, to implement a CARS nowadays, software developers, and architects must divide their efforts into 2 topics: (i) The recommendation system topic to choose and implement the best algorithm for their CARS domain; (ii) The second topic that also requires a significant amount of effort is the user modeling. In the first topic, according to [], that can limit the functionality of the recommendation algorithms.
A software framework to support the development of advanced, complex contextual recommender systems should provide the developer both main elements of a CARS, implemented algorithms from different recommendation techniques so developer can select the one that better work for CARS item domains (e.g. songs, movies, etc.) []) and dont considered modeling the user and context information and rely on the information being in a dataset file, which is not practical for a real-world applications.
In this paper, we introduce MoRe ( Modeling and Recommendation framework ), a software framework designed to support the creation of CARS by proving developers a set of state of the art contextual algorithms, and a generic user model capable of structure and manage the information required by the CARS. We consider MoRe to be a comprehensive framework, as in a single proposal, provides means to solve both main problems developers encounter when implementing CARS (i.e. data modeling and recommendation algorithms). MoRe provide developers object-oriented classes and methods they can use to store, retrieve and perform recommendation over the user, context and item data.
MoRe aims at serving as a tool for new CARS development, helping developers in the algorithm implementation by providing ready to work algorithms from main recommendation techniques for multidimensional data (transformation and adaptation). MoRe also helps in the creation of the data architecture by proving an extensive class architecture capable of organizing, persisting and retrieving data about the user, context, and items for most popular recommendation domains, like movie, song, hotels, restaurants, and travel recommendation among others. For the data structure, uses GUMORS, a General User Model for Recommender System presented in our previous work [].
The rest of this document is organized as follows: Sect. present conclusion and future work.
Background and Related Work
The implementation of CARS requires modeling of the data and implementation of algorithms that use such data to generate predictions, as mentioned earlier, both tasks are treated separately in literature. The same way, in this section we review and analyze the most relevant proposals related to modeling the context for adaptive systems and compare them with [], the data model used in MoRe. Then we review and analyze most relevant proposals of software libraries and frameworks created to generate context-based recommendations.
This section concludes with a set of requirements derived from literature that a software framework intended to help developers in the creation of CARS should fulfill.
2.1 Context and Context Awareness
The definitions for context varies depending in the domains of applications, in computer science Schilit et al. [] provide another definition that is commonly accepted in computer science areas:
Context is any information that can be used to characterize the situation of an entity. An entity is a person, place or object that is considered relevant to the interaction between a user and an application, including the user and the applications themselves.
Certainly, based on this definition of context, the user plays an important role, the context of a user can include any information that describes his situation, like his location and time, emotional, mental and physiological information, etc. The amount and type of information to include in the contextualization of the user depends on the system and the purpose of such information.
A system is considered to be context-aware if it can express aspects of the environment and subsequently uses such information to adapt its functionality to the context of use []. Therefore, context-awareness refers to the capability of an application being aware of its physical environment or situation and responding proactively and intelligently based on such awareness.
Context-aware systems aim at somehow gathering (through sensing, inferring or directly asking for) human and environmental phenomena for later assisting users to archive a desirable quality of living standards [].
From an informational perspective, context provides information that systems can use to form a contextual space, which virtually represents the situation of the user [].