Recommendation systems support users in finding items of interest. In this chapter, we introduce the basic approaches of collaborative filtering, contentbased filtering, and knowledge-based recommendation. We first discuss principles of the underlying algorithms based on a running example. Thereafter, we provide an overview of hybrid recommendation approaches which combine basic variants. We conclude this chapter with a discussion of newer algorithmic trends, especially critiquing-based and group recommendation.
IntroductionRecommendation systems [7,33] provide suggestions for items that are of potential interest for a user. These systems are applied for answering questions such as which book to buy? [39], which website to visit next? [49], and which financial service to choose? [19]. In software engineering scenarios, typical questions that can be answered with the support of recommendation systems are, for example, which software changes probably introduce a bug? [3], which requirements to implement in the next software release? [25] The major goal of this book chapter is to shed light on the basic properties of the three major recommendation approaches of (1) collaborative filtering [12,26,36], (2) content-based filtering [49], and (3) knowledge-based recommendation [5,16]. Starting with the basic algorithmic approaches, we exemplify the functioning of the algorithms and discuss criteria that help to decide which algorithm should be applied in which context.The remainder of this chapter is organized as follows. In Sect. 2.2 we give an overview of collaborative filtering recommendation approaches. In Sect. 2.3 we introduce the basic concepts of content-based filtering. We close our discussion of basic recommendation approaches with the topic of knowledge-based recommendation (see Sect. 2.4). In Sect. 2.5, we explain example scenarios for integrating the basic recommendation algorithms into hybrid ones. Hints for practitioners interested in the development of recommender applications are given in Sect. 2.6. A short overview of further algorithmic approaches is presented in Sect. 2.7.
Collaborative FilteringThe item-set in our running examples is software engineering-related learning material offered, for example, on an e-learning platform (see Table 2.1). Each learning unit is additionally assigned to a set of categories, for example, the learning unit l 1 is characterized by Java and UML.Collaborative filtering [12,36,56] is based on the idea of word-of-mouth promotion: the opinion of family members and friends plays a major role in personal decision making. In online scenarios (e.g., online purchasing [39]), family members and friends are replaced by the so-called nearest neighbors (NN) who are users with a similar preference pattern or purchasing behavior compared to the current user. Collaborative filtering (see Fig. 2.1) relies on two different types of background data: (1) a set of users and (2) a set of items. The relationship between users and items is primarily expressed in terms of ratings wh...