Item–item collaborative filtering was first described in the literature by Sarwar et al. [130] and Karypis [71], although a version of it seems to have been used by Amazon.com at this time [87]. Rather than using similarities between users’ rating behavior to predict preferences, item– item CF uses similarities between the rating patterns of items. If two items tend to have the same users like and dislike them, then they are similar and users are expected to have similar preferences for similar items. In its overall structure, therefore, this method is similar to earlier content-based approaches to recommendation and personalization, but item similarity is deduced from user preference patterns rather than extracted from item data.
In its raw form, item–item CF does not fix anything: it is still neces- sary to find the most similar items (again solving the k-NN problem) to generate predictions and recommendations. In a system that has more users than items, it allows the neighborhood-finding to be amongst the smaller of the two dimensions, but this is a small gain. It provides major performance gains by lending itself well to pre-computing the similarity matrix.
As a user rates and re-rates items, their rating vector will change along with their similarity to other users. Finding similar users in advance is therefore complicated: a user’s neighborhood is determined not only by their ratings but also by the ratings of other users, so their neighborhood can change as a result of new ratings supplied by any user in the system. For this reason, most user–user CF systems find neighborhoods at the time when predictions or recommendations are needed.