1. A computer-implemented method for making recommendations to a user, the method comprising: storing data relating to usage patterns of the user, wherein the data includes information as to items which were used and the context in which they were used; clustering the data into clusters of data points, wherein the number of data points per cluster is artificially limited to a preset maximum number of data points per cluster; determining a centroid for each of the clusters; selecting clusters similar to a current context of the user by comparing a data point representing the current context of the user to one or more of the centroids; and computing, for each of one or more items, a probability that the user wishes to use the corresponding item, based on the selected similar clusters, wherein the probabilities are used for recommending one or more of the items.