Added implementation of the non-negative matrix factorization using gradient descent with constrained least squares.