RECOMMENDER
A Recommender System based on Users' Behavior and Collaborative Localization and Tracking
The recommender system combines content-based collaborative filtering and context-aware approaches to recommend items located at the users' environment. In particular, it takes into account:

  • The context-aware information related to elements close to the users.
  • The similarity between users-items, users-users, and items-items with which recommender systems are able to provide useful recommendations.
  • The ratings of similar users, considering the interactions that users have made after receiving the recommendations suggested by our recommender system.
  • The location of users and items, as items closest to the user are more important than those located far away.
  • The users' tracking to provide accurate recommendations, as places visited by them are very important to know their interests.
Furthermore, our solution provides automatic location-based ratings considering the users' movements after receiving recommendations. To perform the previous tasks, our solution models and manages the required information by using semantic web techniques. Concretely, the context-aware and the space information are provided by our recommender system through a set of ontologies represented in the OWL 2 language. These ontologies are described below.
We describe here our architecture to deploy a content-based collaborative filtering and context-aware recommender system, which does not require that users rate recommended items. The proposed architecture is in charge of:

  • Receiving items and context-aware information from context-aware services and independent middlewares.
  • Managing the information shaped by the Recommender ontology.
  • Filtering out and ranking items considering the users' privacy preferences, ratings, and locations.
  • Rating items considering the users' tracking.
Next figure depicts our architecture.
To perform the previous tasks, the architecture of our recommender has several components. The Administration component is responsible for supporting administrative tasks; including: ontology and users' privacy management, registration of context-aware services that provide items, and management of the Communication Manager component. The Communication Manager component is in charge of receiving the items from the services, the space, users' location, and context-aware information from independent middlewares. This provides independence to Recommender with regard to the sources of information. The Reasoner component is in charge of requesting to the Recommender component suggestions for users by considering their privacy preferences, and the information shaped in the Recommender ontology (preferences, location, tracking, and recommendation topics).

When users leave the environment, the Reasoner component asks the Rating component the rating value of the recommended items. The Recommender component filters out and ranks the items provided by the context-aware services. In this context, the recommender algorithm is allocated in this component and provides to the Graphic Interface component the recommended items. The Graphic Interface component is the communication point between the Recommender component and users, so it is in charge of providing users with the recommended items. Finally, the Rating component is in charge of giving automatic ratings to the recommended items without asking users.

In order to interact with the Recommender architecture, we define two actors. First, the Recommender Administrator manages the Recommender ontology, registers the context-aware services which suggest items, and indicates to the Communication Manager component the middlewares desired to receive the context-aware and location information. On the other hand Users are persons who use our solution to obtain recommendations about items located at the environment where they are in a privacy preserving fashion.
The Recommender ontology shapes information about four different but related topics: recommendation, preference, location, and tracking.

The top-level class of the recommendation topic is Recommendation. Such recommendations are provided by our solution to Users, which are composed of several Items that belong to specific Services. Recommendations are received at a given Date and have a duration defined by the Expiration class. Furthermore, recommended items can be classified by using the Property class, and are rated through the Rating class that stores the value and Date of each rating.

Users can define their preferences or interests regarding the information that they want to receive about recommendations. The Preference class belongs to the preference topic with five predefined subclasses: Age, Gender, Profession, Budget, and Ability. To model the tracking and location topics, users' tracking is shaped by the Path class. Each path can have several VisitedPlaces, where each point is determined by a Timestamp, a Duration, and a Space class. In order to support location, this ontology uses a hierarchical model for location, which is widely explained in the PRECISE ontology.
The complete definition of the Recommender ontology can be downloaded from the next link.
We present here an example to show how our solution recommends items by combining the ratings of users with similar preferences and tracking, the content and location of items, and the context-aware information related to elements close to the users. Furthermore, we also show how automatic ratings are provided by taking into account users' movements after receiving recommendations.

Concretely, we define a scenario based on a shopping mall, where a user (Andy) visits the mall after other users have already visited it and wants to receive recommendations about electronic items on his mobile device. The shopping mall has the infrastructure to know the location of its users, and several stores which have their own services: from ServiceStoreA to ServiceStoreF. These services offer their items and the recommender system is in charge of ranking out and filtering them considering the aspects commented earlier.

The next figure depicts the graphic representation about the mall scenario. Specifically, Andy is moving around the environment interested in electronic products and visits ServiceStoreA (PathPoint2). After a while, he is located at PathPoint3 and receives a recommendation that contains a keyboard, a laptop, a screen, a smartphone, a computer, and a mouse.
The next table shows how the recommender system ranks the previous items by considering:
  • PPVti: Similarity between Andy and the items suggested by the stores. This similarity is the same for all items (0.3) because they share the same property (electronics).
  • IVti: Similarity between items considering the number of close items. In this scenario we consider that the items similarity is 1 because they are close and have the same properties.
  • UVti: Ratings of other users. To measure this value it is necessary to calculate the similarity between Andy and other users. Our scenario considers another user (Peter) who has the same path and preferences as Andy (Peter does not appear in the previous figure to avoid complicating the scenario, but he is included in the ontology that models the example). By considering the similarity between Andy and Peter, the ratings of Peter to the items suggested to Andy, and the date of these ratings we calculate the UVti value.
  • DVti: Distance between Andy and the items' location.
  • TVti: Tracking of Andy considering the direction and number of times that Andy visited the stores.
Position Item PPVti
(User/Item Similarity)
IVti
(Item Similarity)
UVti
(Rating of similar users)
DVti
(Distance User/item)
TVti
(Tracking User)
FVti
(Final)
1 Keyboard 0.3 1 0.4 0.7 0.9 0.66
2 Laptop 0.3 1 0.04 0.8 0.5 0.53
3 Screen 0.3 1 0.38 0.4 0.5 0.52
4 Smartphone 0.3 1 0.3 0.3 0.6 0.5
5 Computer 0.3 1 0.13 0.7 0.3 0.49
6 Mouse 0.3 1 0.22 0.7 0.1 0.46
Table 1. Recommendation's ranking
Since Andy is interested in a keyboard and a screen, he spends 5 minutes visiting ServiceStoreD (PathPoint4), and 20 minutes in ServiceStoreE (PathPoint5). Finally, when Andy is leaving (PathPoint6), our solution generates automatic ratings for the recommended items. The next table shows the automatic ratings generated by our system considering:
  • RRti: The time since Andy receives the recommendation (PathPoint3) until he visits the stores in which the items are located (ServiceStoreD and ServiceStoreE).
  • VRti: The time spent by Andy at ServiceStoreD and ServiceStoreE.
  • ARti: The number of times that Andy visits the Stores in which the recommended items are located.
  • DRti: The distance between the Andy and the stores visited after receiving the recommendation.
Item RRti
(Response Time)
VRti
(Visiting Time)
ARti
(Assiduity)
DRti
(Distance)
NRti
(New Rating)
Keyboard 0.8 0.2 0.63 0.25 0.47
Laptop 0 0 0 0 0
Screen 0.7 0.8 0.63 0.5 0.66
Smartphone 0 0 0 0 0
Computer 0 0 0 0 0
Mouse 0 0 0 0 0
Table 2. Andy's ratings
After a while another user (Bob) visits the mall with the same preferences (electronics) as Andy. The next table shows how the ratings of Andy affect to the order in which the screen is recommended to Bob.
Position Item PPVti
(User/Item Similarity)
IVi
(Item Similarity)
UVti
(Rating of similar users)
DVti
(Distance User/item)
TVti
(Tracking User)
FVti
(Final)
1 Keyboard 0.3 1 0.45 0.7 0.9 0.67
2 Screen 0.3 1 0.5 0.4 0.5 0.54
3 Laptop 0.3 1 0.02 0.8 0.5 0.52
4 Smartphone 0.3 1 0.23 0.3 0.6 0.48
5 Computer 0.3 1 0.1 0.7 0.3 0.48
6 Mouse 0.3 1 0.19 0.7 0.1 0.46
Table 3. Recommendation's ranking
The complete definition of the example in OWL format can be downloaded below.