Choose initial user/item vectors uniformly on the unit sphere rather than within the unit square to possibly avoid bias in the initial state and improve convergence
Generate factors with all positive components, per discussion in https://github.com/apache/incubator-spark/pull/460