The basic idea is to decompose a positive (!) matrix $A$ in $$ A = BC. $$
Then one can interpret $B$ as factor loadings and $C$ as factors. I assume that $A$ is not a correlation matrix (which is not necessarily positive) neither a return matrix for the same reason. The authors of the first presentation use the logarithm of stock prices shifted to the right as input. I tried this myself and did not find any useful decomposition.
I have used stock prices and also shifted returns (just adding $1$) to have the whole matrix positive.
Then I applied the R function
nnmf of the package NMFN which uses the Multiplicative Update Algorithm. I get some "factors" but the interpretation is by far not clear. In the presentation they say that one can (probably) recognize a bear and a bull market factor.
Did you ever try such a decomposition? Which input do you use? Which algorithm and which factors do you analyze? Thanks!
PS:I am aware of PCA but I wanted to try an alternative.
EDIT: For NMF I am having a look at this as a first start.
EDIT: Apparently there are is another stream of research of cardinality constraint and non-negative exposures in PCA. Christian Sigg provides an R-package and Matlab code for doing this here.