public static Vector solveExplicit(VectorWritable ratingsWritable, OpenIntObjectHashMap<Vector> uOrM,
double lambda, int numFeatures) {
Vector ratings = ratingsWritable.get();
List<Vector> featureVectors = Lists.newArrayListWithCapacity(ratings.getNumNondefaultElements());
for (Vector.Element e : ratings.nonZeroes()) {
int index = e.index();
featureVectors.add(uOrM.get(index));
}
return AlternatingLeastSquaresSolver.solve(featureVectors, ratings, lambda, numFeatures);