1. A computer-implemented method of detecting associations between items represented in a data repository, the method comprising: identifying a plurality of items represented in a data repository from which to select items to recommend to a target user, each item having one or more attributes; calculating a degree of fit of the attributes of a first item with a second item, the degree of fit reflecting the relevance of the attributes of the first item to the second item, wherein calculating the degree of fit comprises: forming an initial matrix of values, each of the attributes of the first and second items having a value represented in the initial matrix; calculating a singular value decomposition of the initial matrix, the singular value decomposition comprising a left matrix, a singular value matrix, and a right transpose matrix; reducing the dimension of one or more of the left, singular value, and right transpose matrices to create a reduced singular value decomposition; and multiplying the matrices of the reduced singular value decomposition to create a reduced-dimension matrix approximating the initial matrix; calculating a correlation value between the values in the reduced-dimension matrix corresponding to the first and second items, the correlation value representing a degree of association between the first and second items, the degree of association between the first and second items reflecting the relatedness of the first and second items; and programmatically using the calculated correlation value between the first and second items to create, in computer storage, an association between the first and second items.