Generative Models: Controllable Generation and Learning