Sabrish Gopalakrishnan
Non negative Matrix Factorization using Project Gradients based block descent
Dr Lin's seminal paper: implemented in python with complexity tradeoffs suggested. See docstrings in notebook for KKT bounds, complexities and requirements