Q: I compared this projected gradient method with the multiplicative update, and found the former may not give smaller objective values even after long running time. Why is that?
A: It is possible that they simply converge to two different local minima.
Q: My data matrix V is very sparse. Should I use sparse matrices in MATLAB?
A: Yes if V is extremely sparse (though we didn't do that for the text experiments in the paper). However, please use dense Winit and Hinit as they still have a very high percentage of nonzeros. Using sparse Winit and Hinit will slow down the code.