In the last months i realized that a new trend is emerging within all the fancy mobile apps that are published within the global marketplaces. The apps focus on the massive use of recommendation engines in combination with context-awareness. Such systems try to use all the higly dynamic information gathered from smartphones in order to guide a user through a huge collection of options. These options can be various items from a webshop, in product placements, advertising and many other categories.
While the traditional approaches for creating recommendation systems are mainly based on content-based and collaborative-filtering methods, modern approaches also include the evaluation of context-information.
Generally, recommendation systems are based on one of two major strategies,
Content Filtering (or Content-based recommendation)
Within the content filtering approach explicit profiles of users and objects are defined to characterize their nature. Each profile contains a specific set of attributes which can be used to compare the similarity of one object to another. For example, a restaurant could have a cuisine attribute, describing the type of food it offers, a location attribute, a vegetarian tag, and so on. A recommendation function f chooses items which are similar to items the user has already chosen or rated before. The utility function compares the users’ profile and calculates the similarity of a user profile with the available items.
The recommendation function chooses items which were preferred by other users with similar attributes. Collaborative Filtering is domain-free, which means that it can be applied to any application area and to different data aspects, which could be hard to formulate into an explicit profile. Collaborative filtering is more accurate than content filtering but has the challenge of starting without any initial data sets (cold start problem). It is for example not possible to address new users or objects for which the system has no initial data set available. The different collaborative filtering approaches can be classified into two major directions, neighborhood methods and latent factor models.
- kNearest neighbor, the similarity between the target user, u, and a neighbor, v, can be calculated using the Pearson’s correlation coefficient:
- association rules, buy A + buy B = recommend Buy C
- matrix factorization
Explicit feedback means that a user rates items explicitly (which results in a sparse matrix because user can rate only a small percentage of all available items)
Implicit feedback on the other hand means that the users preferences are indirectly reflected by observing his behaviour like previous purchases, navigation path, search terms and so on…
Today most of the implementations are so called hybrid approaches, which means that they combine content and collaborative filtering to optimize the recommendation results.
A very interesting scientific workshop (CARS: Workshop on Context-Aware Recommender Systems, http://cars-workshop.org/) deals with the actual trends of combining traditional approaches for recommendtion engines with context-awareness.