Package jcolibri.extensions.recommendation

This package contains the Recommenders Extension.

See:
          Description

Package jcolibri.extensions.recommendation Description

This package contains the Recommenders Extension.

The Recommenders extension has been designed having in mind the future design process of CBR systems in jCOLIBRI 2.

We proposes a flexible way to design CBR systems in jCOLIBRI 2 using a library of templates obtained from a previously designed set of CBR systems. In case-based fashion, jCOLIBRI will retrieve templates from a library of templates (i.e. a case base of CBR design experience); the designer will choose one, and adapt it.

We represent templates graphically as shown in following figures. Each rectangle in the template is a subtask. Simple tasks (shown as blue or pale grey rectangles) can be solved directly by a method included in this extension. Complex tasks (shown as red or dark grey rectangles) are solved by decomposition methods having other associated templates. There may be multiple alternative methods to solve any given task.

Before implementing this extension, we developed templates for recommender systems and then generated the methods that solve every task. That allowed us to develop many recommender systems that are included in the jcolibri.test.recommenders package. By now, templates are only a graphical representation of CBR systems, although in a short future they will be used to generate them.

Following text has been extracted from:
Recio-García, J. A., Díaz-Agudo, B., Bridge, D. & González-Calero, P. A. 2007 Semantic Templates for Designing Recommender Systems. Procs. of the 12th UK Workshop on Case-Based Reasoning, CMS Press, University of Greenwich, UK.

The jCOLIBRI team thanks to Derek Bridge his collaboration and supervision during the development of this extension.

Templates for Recommender systems

We have done an analysis of recommender systems that is based in part on the conceptual framework described in the review paper by Bridge et al. (2006). The framework distinguishes between collaborative and case-based, reactive and proactive, single-shot and conversational, and asking and proposing. Within this framework, the authors review a selection of papers from the case-based recommender systems literature, covering the development of these systems over the last ten years. We take the systems’ interaction behaviour as the fundamental distinction from which we construct recommenders:

One-Off Preference Elicitation

We can identify three templates by which the user’s initial preferences may be elicited:

Figure 3

Retrieval

Because we are focussing on case-based recommender systems (and related memory-based recommenders including collaborative filters), Retrieval is common to all our recommender systems. Retrieval is a complex task, with many alternative decompositions. The choice of decomposition is, of course, not independent of the choice of decomposition for One-Off Preference Elicitation and Iterated Preference Elicitation. For example, if One-Off Preference Elicitation delivers a ratings profile, then the method chosen for achieving the Retrieval task must be some form of collaborative recommendation.

The following is a non-exhaustive list of papers that define methods that can achieve the Retrieval task: Wilke et al. 1998 (similarity-based retrieval using a query of preferred values); Smyth & McClave 2001 (diversity-enhanced similarity-based retrieval); McSherry 2002 (diversity-conscious retrieval); Bridge & Fergsuon 2002 (order-based retrieval); McSherry 2003 (compromise-driven retrieval); Bradley & Smyth 2003 (where user profiles are mined and used); Herlocker et al. 1991 (user-based collaborative filtering); Sarwar et al. 2001 (item-based collaborative filtering). In all these ways of achieving Retrieval, a scoring process is followed by a selection process. For example, in similarity-based retrieval (k-NN), items are scored by their similarity to the user’s preferences and then the k highest-scoring items are selected for display; in diversity-enhanced similarity-based retrieval, items are scored in the same way and then a diverse set is selected from the highest-scoring items; and so on. Note also that there are alternative decompositions of the Retrieval task that would not have this two-step character. For example, filter-based retrieval, where the user’s preferences are treated as hard constraints, conventionally does not decompose into two such steps. On the other hand, there are recommender systems in which Retrieval decomposes into more than two steps. For example, in some forms of Navigation-by-Proposing (see below), first a set of items that satisfy the user’s critique is obtained by filter-based retrieval, then these are scored for similarity to the user’s selected item, and finally a subset is chosen for display to the user.

Iterated Preference Elicitation

In Iterated Preference Elicitation the user, who may or may not have just been shown some products (Figure 2), may, either voluntarily or at the system’s behest, provide further information about his/her preferences. Alternative decompositions of this task include: Note that the templates for Conversational Systems do not preclude the possibility that the system uses a different method for Iterated Preference Elicitation on different iterations. ExpertClerk is an example of such a recommender. It uses Navigation-by-Asking for One-Off Preference Elicitation, and then it chooses between Navigation-by-Asking and Navigation-by-Proposing for Iterated Preference Elicitation, preferring the former while the set of candidate items remains large (Shimazu 2002). In fact, we have confirmed that we can build a version of ExpertClerk based on the template in Figure 2b and using methods included in this extension (see recommender 8). This informally illustrates the promise of our templates approach: complex systems (such as ExpertClerk) can be constructed by adapting existing templates.

References

The Recommenders Extension organization

This table summarizes the organization of the implemented methods:
jcolibri.extensions.recommendation.askingAndProposing Methods to implement the ExpertClerk system
jcolibri.extensions.recommendation.casesDisplay Methods to display cases
jcolibri.extensions.recommendation.collaborative Collaborative retrieval methods
jcolibri.extensions.recommendation.conditionals Conditional methods of the templates
jcolibri.extensions.recommendation.ContentBasedProfile Methods to implement content based profile recommenders
jcolibri.extensions.recommendation.navigationByAsking Navigation by Asking methods
jcolibri.extensions.recommendation.navigationByProposing Navigation by Proposing methods
jcolibri.extensions.recommendation.tabuList Methods to use a tabu list in recommender systems
jcolibri.method.retrieve.DiverseByMedianRetrieval Diversity by Median retrieval
jcolibri.method.retrieve.FilterBasedRetrieval Filter based retrieval
jcolibri.method.retrieve.selection.compromiseDriven Compromise Driven selection
jcolibri.method.retrieve.selection.diversity Diversity selection methods
jcolibri.method.retrieve.NNretrieval.similarity.local.recommenders Specific local similarity measures for recommendation systems


GAIA - Group for Artificial Intelligence Applications
http://gaia.fdi.ucm.es