A method of detecting associations between items can include identifying a plurality of items represented in a data repository from which to select items to recommend to a target user, each item including one or more attributes. A degree of fit between an item's attributes and other items is calculated. The degree of fit can indicate the relevance of the attributes of one item to the other item. A degree of association between the two items is calculated based at least in part on the calculated degree of fit. The degree of association between the two items can indicate the relatedness of the two items. Based on this degree of association, an association between the items can be stored in a data repository.