1. A method for providing differential privacy comprising: receiving user rating data at a correlation engine through a network, the user rating data comprising ratings generated by a plurality of users for a plurality of items; removing per-item global effects from the user rating data by: calculating an average rating for each item rated in the user rating data; determining a plurality of fictitious ratings for each item rated in the user rating data, wherein each fictitious rating of an item is set to the calculated average rating of the item; calculating a stabilized average rating for each item rated in the user rating data using the ratings in the user rating data for the item and the plurality of fictitious ratings for the item; and for each rating in the user rating data, subtracting the calculated stabilized average rating for the rated item from the rating; generating correlation data from the user rating data by the correlation engine, the correlation data identifying correlations between the items based on the user generated ratings; generating noise by the correlation engine; and adding the generated noise to the generated correlation data by the correlation engine to provide differential privacy protection to the generated correlation data.