Basic Approaches in Recommendation Systems

Recommendation systems support users in finding items of interest. In this chapter, we introduce the basic approaches of collaborative filtering, content-based filtering, and knowledge-based recommendation. We first discuss principles of the underlying al

  • PDF / 832,785 Bytes
  • 23 Pages / 439.36 x 666.15 pts Page_size
  • 13 Downloads / 260 Views

DOWNLOAD

REPORT


Basic Approaches in Recommendation Systems Alexander Felfernig, Michael Jeran, Gerald Ninaus, Florian Reinfrank, Stefan Reiterer, and Martin Stettinger

Abstract 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.

2.1 Introduction Recommendation 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], which stakeholders should participate in the upcoming software project? [38], which method calls might be useful in the current development context? [59], which software components (or APIs) to reuse? [45], which software artifacts are needed next? [40], and which effort estimation methods should be applied in the current project phase? [50]. An overview of the application of different types of recommendation technologies in the software engineering context can be found in Robillard et al. [53].

A. Felfernig () • M. Jeran • G. Ninaus • F. Reinfrank • S. Reiterer • M. Stettinger Institute for Software Technology, Graz University of Technology, Inffeldgasse 16b/2, 8010 Graz, Austria e-mail: [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected] M.P. Robillard et al. (eds.), Recommendation Systems in Software Engineering, DOI 10.1007/978-3-642-45135-5__2, © Springer-Verlag Berlin Heidelberg 2014

15

16

A. Felfernig et al.

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