Various efforts have been conducted to incorporate context into recommendation systems.
According to [43,46,54], there are 3 different algorithmic paradigms to incorporate context into a recommendation engine and 3 methodologies for collecting context.
40
Figure 10. Paradigms of incorporating context into a recommendation engine adapted from [54]
The paradigms for including context within a recommendation engine (summarized in the above figure adapted from [54]) fall under one of the following umbrellas: pre-filtering, post-filtering, or context modelling. Pre-filtering is mainly employed to remove any content that is irrelevant to the current context. An example for our scenario is to remove gender targeted ads when the viewers are only of the opposite gender or showing ads that target children when only an adult is watching. Pre-filtering reduces the search space for the
recommendation engine and, therefore, has a positive impact on performance. An example of pre-filtering approach is shown in [11] where they perform static filtering based on
conditional context. The second paradigm for incorporating context into the recommendation engine is through post-filtering technique. Post-filtering is applied in mainly two situations.
In case a system already has a legacy recommendation engine that needs to be extended to include context information, post-filtering is applied to filter out the irrelevant
recommendations based on the current context. Post-filtering is also applied when the context information does not affect the relevance of the content in general, but rather affects the preference degree of the user to the recommended content. In this case, post-filtering is applied to re-order the recommendation list based on the preferences of the user given the current context. An example of post-filtering approach is also shown in [11] where the authors use situational context to re-sort the list of recommendations based on the user
41 preferences for the current context. For example, user is presented with recommendations action movies and news, but it is 4pm and user likes to watch news at 4pm. This context information should affect the order of the recommendations by presenting the news content first. The third approach for adding context awareness to recommendation engines is through modelling contexts within the recommendation engine itself. This approach mainly relies on computing similarities between contexts and weighing the Pearson coefficients between users by context similarity. Such technique is employed in [45] where the authors compute the cosine similarity between contexts then use the output as weights into the Pearson similarity between users. The output is used to identify neighborhood set of users to be consulted for recommendations. Another approach is shown in [4] which uses genetic algorithm to
compute similarities between contexts and then use the output context similarities as weights for Pearson coefficients between users. The authors in [48] attempt to find latent user
preferences for contexts, but instead of using the output for post-filtering as in [11], they use the latent semantic analysis to model context within the recommendation engine itself. The work in [48] tries to build a model that reflects user preferences towards certain contexts and of a given item to a context.
Methodology for gathering context has also been studied in various works [43, 54]. These can be categorized as explicit, implicit or inferred. Explicit context gathering techniques require users to specify the context information (their needs, emotions, who are they watching with, etc.). Such approach is invasive to the user experience and is kept to a minimum such as asking users to rate items. Implicit context gathering techniques use various sensors to gather context such as GPS device for location, contacting a weather service to get weather info, contacting a time service, and others. These techniques are not invasive to the user experience. The third method of context gathering is to infer context information such as estimating the current task or activity being performed by the user. This technique uses sensors to gather raw context data and attempts to analyze the raw data to produce higher level context information. For example, the location sensor can be used to infer user’s district/region level location. Location sensor can also be used to infer relationships between users by proximity.
Finally, the introduction of context modelling within recommendation engines introduces a performance penalty and increases sparsity (which may lead to a reduction in
recommendation precision) [49,51,52]. This is due to the fact that instead of performing computations on a users x items matrix, computations need to be performed on users x items x context matrix and each dimension can be represented by a vector in itself. The authors in
42 [49] attempt to reduce the execution time of recommendation engines by clustering users into segments and computing user similarities within the same segment. They also propose a solution to the cold-start problem by assigning new users to a cluster based on demographic attributes and offering the top recommended items by the users in the assigned cluster. [51]
and [52] offer a solution to the high dimensionality of context aware recommendation engines by proposing dimensionality reduction techniques that also help in reducing sparsity.
The authors experiment with PCA algorithm and unsupervised neural network (as an auto-encoder) to infer latent context.