Richard Socher, Chris Manning and Yoshua Bengio

In the spring quarter of 2015, I gave an entire class at Stanford on deep learning for natural language processing. If you're interested in all the details of these methods and applications, see http://cs224d.stanford.edu

- http://lxmls.it.pt/2014/socher-lxmls.pdf - most recent version from a talk at the Machine Learning Summer School in Lisbon 2014
- NAACL2013-Socher-Manning-DeepLearning.pdf (22mb) - 204 slides - Updated slides for the NAACL 2013 tutorial
- SocherBengioManning-DeepLearning-ACL2012-20120707.pdf (25MB) - 184 slides

- High quality video of the 2013 NAACL tutorial version are up here: http://techtalks.tv/events/312/573/
- Low quality version of the 2012 ACL version: on youtube

Machine learning is everywhere in today's NLP, but by and large machine learning amounts to numerical optimization of weights for human designed representations and features. The goal of deep learning is to explore how computers can take advantage of data to develop features and representations appropriate for complex interpretation tasks. This tutorial aims to cover the basic motivation, ideas, models and learning algorithms in deep learning for natural language processing. Recently, these methods have been shown to perform very well on various NLP tasks such as language modeling, POS tagging, named entity recognition, sentiment analysis and paraphrase detection, among others. The most attractive quality of these techniques is that they can perform well without any external hand-designed resources or time-intensive feature engineering. Despite these advantages, many researchers in NLP are not familiar with these methods. Our focus is on insight and understanding, using graphical illustrations and simple, intuitive derivations. The goal of the tutorial is to make the inner workings of these techniques transparent, intuitive and their results interpretable, rather than black boxes labeled "magic here". The first part of the tutorial presents the basics of neural networks, neural word vectors, several simple models based on local windows and the math and algorithms of training via backpropagation. In this section applications include language modeling and POS tagging. In the second section we present recursive neural networks which can learn structured tree outputs as well as vector representations for phrases and sentences. We cover both equations as well as applications. We show how training can be achieved by a modified version of the backpropagation algorithm introduced before. These modifications allow the algorithm to work on tree structures. Applications include sentiment analysis and paraphrase detection. We also draw connections to recent work in semantic compositionality in vector spaces. The principle goal, again, is to make these methods appear intuitive and interpretable rather than mathematically confusing. By this point in the tutorial, the audience members should have a clear understanding of how to build a deep learning system for word-, sentence- and document-level tasks. The last part of the tutorial gives a general overview of the different applications of deep learning in NLP, including bag of words models. We will provide a discussion of NLP-oriented issues in modeling, interpretation, representational power, and optimization.

- The Basics
- Motivations
- From logistic regression to neural networks
- Word representations
- Unsupervised word vector learning
- Backpropagation Training
- Learning word-level classifiers: POS and NER
- Sharing statistical strength

- Recursive Neural Networks
- Motivation
- Recursive Neural Networks for Parsing
- Theory: Backpropagation Through Structure
- Recursive Autoencoders
- Application to Sentiment Analysis and Paraphrase Detection
- Compositionality Through Recursive Matrix-Vector Spaces
- Relation classification

- Applications, Discussion, and Resources
- Neural language models
- Assorted other speech and NLP applications
- Resources (readings, code)
- Discussion
- Tricks of the trade
- Limitations, advantages, future directions

- A very useful assignment for getting started with deep learning in NLP is to implement a simple window-based NER tagger in this exercise we designed for the Stanford NLP class 224N. The zip file includes starter code in Java and the pdf walks through all the steps:
- The implementation assignment for a sparse autoencoder can be found here: exercise description pdf and matlab starter code (11MB)
- You can find an introductory tutorial here and an implementation assignment for a sparse autoencoder here.
- A hands-on tutorial for denoising autoencoders can be found here http://deeplearning.net/tutorial/dA.html#daa
- Charles Elkan wrote a great, detailed derivation of recursive neural networks: http://cseweb.ucsd.edu/~elkan/250B/learningmeaning.pdf
- You can study clean recursive neural network code with backpropagation through structure on this page: Parsing Natural Scenes And Natural Language With Recursive Neural Networks

Save your text first, then fill out captcha, then save again.