Deep Generative Models For Natural Language Processing