Advanced Natural Language Processing

CS 685, Fall 2020, UMass Amherst CS
This class is asynchronous! Pre-recorded videos, readings, and assignments will be posted on the schedule.

Instructor: Mohit Iyyer
TAs: Tu Vu, Simeng Sun, Kalpesh Krishna
Email (to all of us):
Office hours (US Eastern time), see Piazza for meeting links:


Course description

Natural Language Processing (NLP) is the engineering art and science of how to teach computers to understand human language. NLP is a type of artificial intelligence technology, and it's now ubiquitous -- NLP lets us talk to our phones, use the web to answer questions, map out discussions in books and social media, and even translate between human languages. Since language is rich, ambiguous, and very difficult for computers to understand, these systems can sometimes seem like magic -- but these are engineering problems we can tackle with data, math, and insights from linguistics.

This course will broadly focus on deep learning methods for natural language processing. Most of the semester will focus on very recent transfer learning methods that have significantly pushed forward the state of the art. It is intended for graduate students in computer science and linguistics who are (1) interested in learning about cutting-edge research progress in NLP and (2) familiar with machine learning fundamentals. We will cover modeling architectures, training objectives, and downstream tasks (e.g., text classification, question answering, and text generation). Coursework includes reading recent research papers, programming assignments, and a final project. This class will be asynchronous: lectures will be prerecorded and posted on a weekly basis, along with accompanying readings and assignments.


A nice textbook for NLP fundamentals is Jurafsky and Martin, Speech and Language Processing, 3rd ed. For this course, readings will mainly be NLP conference papers (e.g., from ACL, NAACL, and EMNLP). We will post all readings as PDFs.

Other useful texts for NLP include: