The other major form of recommendation is collaborative filtering, in which data about the behavior of several users with similar interests is analyzed and used to predict recommendations for these users. The main advantage of this technique is that the system does not rely on the values for the feature variables of its items, and consequently such a system does not need to know about the characteristics of the items that are provided by it. The features of the items are in fact determined dynamically using the users rating for these items and the behavior of the system users. We will examine more about the advantage in the latter part of this section.
An essential part of the model used by collaborative filtering depends on the behavior of its users. To build this part of the model, we can use the following methods to determine the user's rating for the items in the model in an explicit manner:
Alternatively, this information could also be gathered from a user's activity in an implicit fashion. Examples of this method of modeling the behavior of a system's users with a given set of items or products are as follows:
For example, consider a recommendation system for an online shopping example that we discussed in the previous section. We we can use collaborative filtering to dynamically determine the feature values of the products available and predict the products that the user will be interested in. The sample data for such a system that uses collaborative filtering can be visualized by using the following table:
In the data shown in the preceding table, the features of the products are unknown. The only available data is the ratings of the users and the behavior models of the users.
The optimization problem for collaborative filtering and a product's user can be expressed as follows:
The preceding equation is seen to be the converse of the optimization problem that we defined for content-based filtering. Instead of estimating the parameter's vector , collaborative filtering seeks to determine the values of the features of a product . Similarly, we can define the optimization problem for multiple users as follows:
Using collaborative filtering, we can estimate the features of the products ,, and then use these feature values to improve the behavior model of the users . The improved user behavior models can then be used to again produce better feature values of the items. This process is then repeated until the feature values and behavior models converge to some appropriate values.
Collaborative filtering can also be combined with content-based filtering in some special cases. Such approaches are called hybrid methods of recommendation. There are several ways in which we can combine or hybridize the two models of recommendation, and they are listed as follows: