Patent ID: 8229798

Claim:
A system for estimating user ratings for one or more items, based on previous user rating activity, comprising: a processor; a memory for storing data and instructions for execution by the processor; a database hosted in the memory for storing rating information for a plurality of items and a plurality of users; a rating estimation module hosted as software stored in the memory and executable by the processor, the rating estimation module being operative to estimate a rating r ui for a first item i by a user u based on a) rating activity by the user u for items other than the first item i and b) rating activity by users other than the user u for the first item i and items other than the first item i, the rating estimation module being operative to compute an estimate of the rating r ui by identifying a plurality of rating factors, including original item factors and user factors based on known ratings of items provided by users during previous rating activity by users, successively adding rating factors based on a correlation between the original and additional rating factors with known ratings of items provided by users during previous rating activity by users, the original rating factors being progressively shrunk so as to reduce their magnitude and their contribution to the estimate of the rating r ui as additional rating factors are computed, and computing the estimate of the rating r ui based on the rating factors, the estimate of the rating r ui being a product of a vector of the item factors for the item and a vector of the user factors for the user; wherein a set of user and item factors is precomputed and stored, and the rating estimation module retrieves user and item factors for a specific user and item in order to compute a rating for that user and item; and wherein each f th user factor P uf is iteratively precomputed as follows for each user u=1 . . . n: P uf ← ∑ i : ( u , i ) ∈ Κ ⁢ ⁢ res ui ⁢ Q if ∑ i : ( u , i ) ∈ Κ ⁢ Q if 2 and each f th item factor Q uf is iteratively precomputed as follows for each item i=1 . . . m Q if ← ∑ u : ( u , i ) ∈ Κ ⁢ ⁢ res ui ⁢ P uf ∑ u : ( u , i ) ∈ Κ ⁢ P uf 2 wherein χ is a set of known ratings for users u and items i, and res ui is a residuals portion computed as follows for each know rating r ui : res ui ← r ui - ∑ l = 1 f - 1 ⁢ ⁢ P ul ⁢ Q il and adjusted as follows to provide shrinkage: res ui ← support ui ⁢ res ui support ui + af , wherein α is a constant and support ui is a support behind a rating r ui .