Uses stochastic gradient descent to find factors of a 2D numpy array M of size m x n given the O, observed entries in the array, and d, the embedding dimension which may correspond to the number of desired features in the factorization.
See test_matrix_factorization.py
for example usage. See Wikipedia article and Google Developer Documentation for usage in recommender systems.