Slope One

Slope One is a family of algorithms used for collaborative filtering, introduced in a 2005 paper by Daniel Lemire and Anna Maclachlan.

[1] Arguably, it is the simplest form of non-trivial item-based collaborative filtering based on ratings.

Their simplicity makes it especially easy to implement them efficiently while their accuracy is often on par with more complicated and computationally expensive algorithms.

[3][4][5][6][7][8][9] They are part of major open-source libraries such as Apache Mahout and Easyrec.

Example: Can we predict the rating an individual would give to the new Celine Dion album given that he gave the Beatles 5 out of 5?

: experiments show that this simpler predictor (called Slope One) sometimes outperforms[1] linear regression while having half the number of regressors.

Other alternatives include user-based collaborative filtering where relationships between users are of interest, instead.

However, item-based collaborative filtering is especially scalable with respect to the number of users.

We are not always given ratings: when the users provide only binary data (the item was purchased or not), then Slope One and other rating-based algorithm do not apply[citation needed].

Examples of binary item-based collaborative filtering include Amazon's item-to-item patented algorithm[12] which computes the cosine between binary vectors representing the purchases in a user-item matrix.

Being arguably simpler than even Slope One, the Item-to-Item algorithm offers an interesting point of reference.

The model uses a single parameter per pair of item (the cosine) to make the recommendation.

It was shown to be much more accurate than linear regression in some instances,[1] and it takes half the storage or less.

If a user rated several items, the predictions are simply combined using a weighted average where a good choice for the weight is the number of users having rated both items.

Computing the average rating differences for each pair of items requires up to n(n-1)/2 units of storage, and up to m n2 time steps.