this.numSimilarItems = numSimilarItems;
this.similarity = similarity;
averageRating = averageRating();
itemBiases = new OpenLongDoubleHashMap(getDataModel().getNumItems());
userBiases = new OpenLongDoubleHashMap(getDataModel().getNumUsers());
for (int pass = 0; pass < numOptimizationPasses; pass++) {
optimizeItemBiases(itemBiasRegularization);
optimizeUserBiases(userBiasRegularization);
}