1. A method for making recommendations to a user, the method comprising: storing data relating to usage patterns of the user, wherein the data includes an application portion having information as to items which were used and a context portion having information as to the context in which the items were used; clustering the data into clusters of data points; computing, for each of the clusters, a centroid, wherein the centroid includes an application portion and a context portion; selecting clusters similar to a current context of the user by comparing a data point representing the current context of the user to the context portions of one or more of the centroids; and computing, for each of one or more items, an expectation value that the user wishes to use the corresponding item, based on the application portions of the selected similar clusters, wherein the expectation values are used to recommend one or more of the items.