Algorithms for Learning Latent Models : Establishing Tractability to Approaching Optimality