Neural Language Generation: Formulation, Methods, and Evaluation