Non-negative Matrix Factorization (NMF) is a family of linear algebra algorithms used for identifying the latent structure within data represented as a non-negative matrix. Link to the YouTube tutorial
Input: matrix A; rank k.
Output: Two k-dimensional factors W and H approximating A
So our Objective function looks like this:
There are several approaches to solving this minimization Problem. I used Multiplicative Update Method
introduced by Lee and Seung in 1999. (This Paper)
As the Multiplicative Update is an iterative method, It is very sensitive to initializations of W and H.
NNDSVD Method is an SVD-based initialization, introduced by C. Boutsidis and E. Gallopoulos in 2007 (This Paper)