ENH add latent semantic analysis to decomposition module