This section describes the main concepts of the Duine Framework.
Ratable Item is the Duine Framework terminology for a piece of information on which a user can express his opinion by providing a rating, implicit or explicit.
A prediction technique calculates how interested a certain user will be in an information item, using some sort of algorithm. The resulting prediction is a numerical value representing the amount of expected interest for the user. Even though there are different types of prediction techniques, it is possible to create a generic model due to the basic nature of each prediction technique: each technique can calculate a predicted interest value for a piece of information for a given user, based on knowledge stored in the user profile, data and metadata of the information and profiles of other users. This forms the basis of our model. Naturally, each technique must normalize its predictions in order to be comparable and to combine predictions. We use the bipolar range from –1 to +1 (zero being neutral).
A user profile is an abstract concept that represents everything that is known about a user. It is an easy-to-use concept in cases where an intuitive understanding suffices (like the first figure of this page). However, it is a pretty useless concept in a formal sense, because it is hard to model due to it's very generic nature. In applications we will frequently need a subset of the profile for a particular reason. In the Duine Framework we will call such a subset a Profile Model. Profile models are used by predictors to collect data that they need as input for calculating predictions.
The recommender facilitates registration of profile models. So profile models are pluggable. The Duine Toolkit comes with a default set of profile models.
A recommender system should be able to learn from users in order to optimize future predictions. A feedback processor learns from feedback provided by users, whether being explicit or implicit feedback. It processes the feedback using some algorithm and updates the user profile with the results.
Prediction techniques can provide explanations of the values that they predict. These explanations provide transparency, exposing the reasoning and data behind a prediction and can increase the acceptance of prediction systems. Explanations help users to decide whether to accept a prediction or not and to understand the incorrect reasoning when a prediction is inaccurate. This in turn helps to increase the trust a user has in the prediction engine.
In order to make informed decisions about when techniques are usable, each technique exposes so-called validity indicators. Because of differences in prediction techniques, most techniques have unique and different validity indicators. E.g. where social filtering provides the number of similar users that rated the information as a validity indicator, CBR provides the number of similar rated items by the user. These indicators can be used by strategies (see below) to decide to what extent a technique should be used.
Prediction strategies generate an interest prediction for a given piece of information and user, not using some sort of prediction algorithm but by selecting between and combining prediction techniques based on the most up-to-date knowledge about the current user, other users, the information and the personalized information system itself. To make decisions about which prediction techniques to use and how to combine them, a strategy employs a strategy approach. This version of the Duine Framework uses hard decision rules (if … then … else …) to decide what prediction techniques to use and combine. Strategy approaches use data stored in the user profile, data and metadata of the information, system status data and most importantly the validity indicators of the prediction techniques to decide about what prediction techniques to select and/or combine.
From a black box perspective, prediction strategies are no different than prediction techniques. Both predict the interest in a piece of information for a user: both are predictors. This means that the generic model of a prediction technique as described above also applies to prediction strategies.
This also means that strategies can be nested when necessary, resulting in a hierarchy. E.g. a strategy can be created that is best for new users. Such a strategy can be invoked by other strategies when they determine that other prediction techniques are not capable of providing an accurate prediction. We refer to this hierarchy as predictor tree . The predictor tree that is used in the demo application provided with the framework is shown below. The image was generated from the demo configuration file spring-predictors.xml using the Spring IDE Eclipse plugin.