The goal of a collaborative filtering algorithm is to suggest new items or to predict the utility of a certain item for a particular user based on the user's previous likings and the opinions of other like-minded users. In a typical CF scenario, there is a list of m users and a list of n items . Each user ui has a list of items Iui, which the user has expressed his/her opinions about. Opinions can be explicitly given by the user as a rating score, generally within a certain numerical scale, or can be implicitly derived from purchase records, by analyzing timing logs, by mining web hyperlinks and so on [28,16]. Note that and it is possible for Iui to be a null-set. There exists a distinguished user called the active user for whom the task of a collaborative filtering algorithm is to find an item likeliness that can be of two forms.
Figure 1 shows the schematic diagram of the collaborative filtering process. CF algorithms represent the entire user-item data as a ratings matrix, . Each entry ai,j in represent the preference score (ratings) of the ith user on the jth item. Each individual ratings is within a numerical scale and it can as well be 0 indicating that the user has not yet rated that item. Researchers have devised a number of collaborative filtering algorithms that can be divided into two main categories-Memory-based (user-based) and Model-based (item-based) algorithms [6]. In this section we provide a detailed analysis of CF-based recommender system algorithms.