1. A computer-implemented method, comprising: obtaining a dataset representing a plurality of users, a plurality of items, and a plurality of ratings given to items by users; clustering the plurality of users into a plurality of user-groups such that at least one user belongs to more than one user-group; clustering the plurality of items into a plurality of item-groups such that at least one item belongs to more than one item-group; inducing a model describing a probabilistic relationship between the plurality of users, items, ratings, user-groups, and item-groups, the induced model defined by a plurality of model parameters; and predicting a rating of a user for an item using the induced model.
3. The computer implemented method of claim 1 , wherein the model parameters include: a marginal probability distribution of user-groups; a marginal probability distribution of item-groups; a conditional probability distribution of users given the user-groups; a conditional probability distribution of items given the item-groups; and a conditional probability distribution of ratings given the user- and item-groups.