This program performs non-negative matrix factorization on the given dataset,
storing the resulting decomposed matrices in the specified files. For an
input dataset V, NMF decomposes V into two matrices W and H such that
V = W * H
where all elements in W and H are non-negative. If V is of size (n x m),
then W will be of size (n x r) and H will be of size (r x m), where r is the
rank of the factorization (specified by the "rank" parameter).
Optionally, the desired update rules for each NMF iteration can be chosen
from the following list:
- multdist: multiplicative distance-based update rules (Lee and Seung 1999)
- multdiv: multiplicative divergence-based update rules (Lee and Seung 1999)
- als: alternating least squares update rules (Paatero and Tapper 1994)
The maximum number of iterations is specified with "max_iterations", and the
minimum residue required for algorithm termination is specified with the
"min_residue" parameter.