Course Code: CS563
Course Name: Neural Networks for NLP
Prerequisites: None.

Preamble/Objectives: Primary aim of the course is to introduce recent advances made in applying neural network or deep learning models for natural language processing.
Syllabus: Introduction: Different levels of NLP; Text Normalization: sub-word tokenization; Recap of Neural Network Fundamentals: Feed Forward network, Computational Graph, Backpropagation, Convolutional Neural Network, Recurrent Neural Networks and variants; Neural models for NLP Tasks: Vector Semantics, Neural Language Models, Sequence Labeling Tasks, Sequence to sequence learning tasks, Encode-Decoder Models, Attention models and Transformers, Contextualized word embedding; Large-scale Neural Models: Transformer and variants based large language models; Multi-lingual Learning: Cross-Lingual Embedding, Transfer Learning; Applications: Machine Translation, Conversational Agents etc.
Texts: 1. D. Jurafsky, J.H. Martin, Speech and Language Processing, 3rd ed. Jan 2022 (Online available at https://web.stanford.edu/~jurafsky/slp3/).
2. Eisenstein, Introduction to Natural Language Processing, MIT Press, 2019.
References: 1. A. Zhang, Z. C. Lipton, M. Li, A. J. Smola, Dive into Deep Learning, 2021 (Available online at https://d2l.ai/index.html).
2. Y. Goldberg, Neural Network Methods for Natural Language Processing, Synthesis Lectures on Human Language Technologies, Morgan & Claypool Publishers, 2017.