Matrix iTi = itemTransItem.clone();
Matrix itemM = new DenseMatrix(itemMatrix);
XTCX = iTi.plus(itemM.transpose().times(C.minus(I)).times(itemM));
Matrix diag = solve(XTCX.plus(I2.times(preventOverfitting)), I2);
Matrix results = diag.times(itemM.transpose().times(C)).times(prefVector.transpose());
updateMatrix(id, results);
} else {
Matrix I = identityV(dataModel.getNumUsers());
Matrix I2 = identityV(numFeatures);
Matrix uTu = userTransUser.clone();