1. A computer-implemented method for providing a reputation system, comprising: obtaining a matrix of reputation scores for a set of items and a set of dimensions of the items in the reputation system, wherein the matrix comprises unknown values for a subset of the reputation scores, and wherein the reputation scores are calculated based on a user's levels of expertise in one or more skills; calculating a factorization of the matrix to produce at least two factor matrices; using the factorization to update the matrix with one or more inferred values for the set of reputation scores, wherein the at least two factor matrices are multiplied to generate the one or more inferred values that are used to fill in the matrix, wherein the one or more inferred values are further filtered based on a set of confidence scores associated with the set of items and the set of dimensions; and using the updated matrix to obtain a ranking of the items by one or more of the dimensions specified by a query, wherein the ranking is based on a linear combination of one or more reputation scores associated with the one or more dimensions; wherein using the updated matrix to obtain the ranking includes: obtaining an inverted index of the one or more dimensions, using the inverted index to identify a subset of the items with reputation scores in the one or more dimensions, and ranking the subset of the items by the reputation scores.