Natural Language Processing

ETH Zürich, Spring 2021: Course catalog

Course Description

This course presents topics in natural language processing with an emphasis on modern techniques, primarily focusing on statistical and deep learning approaches. The course provides an overview of the primary areas of research in language processing as well as a detailed exploration of the models and techniques used both in research and in commercial natural language processing systems.

The objective of the course is to learn the basic concepts in the statistical processing of natural languages. The course will be project-oriented so that the students can also gain hands-on experience with state-of-the-art tools and techniques.

Grading

Marks for the course will be determined by the following formula:
* 70% Final Exam
* 30% Course Project/Assignment

Lectures: Wed 12-14h Zoom (recurring link sent at start of semester).

Discussion Sections: Thurs 17-18h; Fri 11-12h Zoom (link to be distributed day of section).

Textbooks: Introduction to Natural Language Processing (Eisenstein)
      Deep Learning (Goodfellow, Bengio and Courville)

News

18.02   Class website is online!
18.02   We are using piazza as our discussion forum. Please enroll here.
24.02   First lecture.
03.03Project guidelines released.
04.03   First discussion section.
31.03   Project proposals due.
01.04Assignment Part 1 released.

Syllabus

Week Date   Topic Slides   Readings Supplementary Material Exercises
1 24.02.21 Introduction to Natural Language Lecture 1 Eisenstein Ch. 1
2 03.03.21 Backpropagation Lecture 2 Goodfellow, Bengio and Courville Ch. 6.5 Chris Olah's Blog
Justin Domke’s Notes
Tim Vieira’s Blog
Moritz Hardt’s Notes
Bauer (1974)
Baur and Strassen (1983)
Griewank and Walter (2008)
Eisner (2016)
Backpropagation Proof
Computation Graph for MLP
Computation Graph Example
Week 2
Solutions
3 10.03.21 Log-Linear Modeling---Meet the Softmax Lecture 3 Eisenstein Ch. 2 Ferraro and Eisner (2013)
Jason Eisner’s list of further resources on log-linear modeling
Week 3
Solutions
4 17.03.21 Sentiment Analysis with Multi-layer Perceptrons Lecture 4 Eisenstein Ch. 3 and Ch. 4
Goodfellow, Bengio and Courville Ch. 6
Wikipedia
Cybenko (1989)
Hanin and Selke (2018)
Pang and Lee (2008)
Iyyer et al. (2015)
word2vec Parameter Learning Explained
word2vec Explained
Week 4
Solutions
5 24.03.21 Language Modeling with *n*-grams and LSTMs Lecture 5 Eisenstein Ch. 6
Goodfellow, Bengio and Courville Ch. 10
Good Tutorial on n-gram smoothing
Good–Turing Smoothing
Kneser and Ney (1995)
Bengio et al. (2003)
Mikolov et al. (2010)
Week 5
Solutions
6 31.03.21 Part-of-Speech Tagging with CRFs Lecture 6 Eisenstein Ch. 7 and 8 Tim Vieira's Blog
McCallum et al. (2000)
Lafferty et al. (2001)
Sutton and McCallum (2011)
Koller and Friedman (2009)
Week 6
Solutions
7 14.4.21 Context-Free Parsing with CKY Lecture 7
(last semester)
Eisenstein Ch. 10 The Inside-Outside Algorithm
Jason Eisner’s Slides
Kasami (1966)
Younger (1967)
Cocke and Schwartz (1970)
Week 7
Coding Exercise
8 21.4.21 Dependency Parsing with the Matrix-Tree Theorem Lecture 8
(last semester)
Eisenstein Ch. 11 Koo et al. (2007)
Smith and Smith (2007)
McDonald and Satta (2007)
McDonald, Kübler and Nivre (2009)
9 28.4.21 Semantic Parsing with CCGs Eisenstein Ch. 9.3 and 12
10 5.5.21 Transliteration with WFSTs Lecture 10
(last semester)
Eisenstein Ch. 9 Knight and Graehl (1998)
Mohri, Pereira and Riley (2008)
11 12.5.21 No Class (EMNLP Deadline)
12 19.5.21 Machine Translation with Transformers Lecture 12
(last semester)
Eisenstein Ch. 18 Neural Machine Translation
Vaswani et al. (2017)
Rush (2018)
13 26.5.21 Axes of Modeling Review: Eisenstein Ch. 2
Goodfellow, Bengio and Courville Ch. 5 and 11
14 2.6.21 Bias and Fairness in NLP Bolukabasi et al. (2016)
Gonen and Goldberg (2019)
Hall Maudslay et al. (2019)
Vargas and Cotterell (2020)
A Course in Machine Learning Chapter 8

Weekly Exercises

We will release exercises every week that cover material in the next lecture (e.g., exercises released on Sunday night cover material in the following Wednesday’s lecture). These exercises are intended to give you the opportunity to test your understanding of the course material. They are not for a grade, nor will the TAs be able to offer individual feedback on your solutions. If you have questions regarding the exercises, we recommend bringing them to the discussion section that week as the TAs will walk through related problems. Solutions will be released in the following week.

Course Project/Assignment

Every student has the option of completing either a research project or a structured assignment. This work will be worth 30% of your final mark. Both will be due on July 15th.

The research project is an open-ended project where students reimplement an existing research paper or perform novel research if they are so inclined. Projects can be completed in groups of up to 4; feel free to use Piazza to reach out to other students in the course. We will require you to write a 1-page project proposal where we will give you feedback on the idea (due March 31st). Submission can be done on the course Moodle page (one submission per team please).

In the assignment, some of the questions will be more theoretical and resemble the questions you will see on the final exam. However, there will also be a substantial coding portion, which would not look like the exam questions. For instance, we may ask you to implement a recurrent neural dependency parser. Assignments must be completed individually, although you may discuss the assignment with other students. If you choose to do so, you must specify with whom you collaborated in your submission (see template below). We will release the assignment in two waves, corresponding to when course material is covered. The second portion of the assignment will be released ~May 20th.

Materials

Contact

You can ask questions on piazza. Please post questions there, so others can see them and share in the discussion. If you have questions which are not of general interest, please don’t hesitate to contact us directly, i.e., post a private note on piazza or email Ryan with Clara cc-ed.