Agency for Data Science
Machine learning & AI
Mathematical modelling
Data strategy
Daniel Kirsch
Natural Language Processi...
Ziele des Talks
Was Sie aus dem Talk mitnehmen sollen:
• High-level Übersicht: RNNs
• Architekturen und Anwendungen
• Wie ...
Neuronale Netze nn
nn
Quelle: h)ps://de.wikipedia.org/wiki/RekurrentesneuronalesNetz
idalab GmbH — NLP mit RNN 3
Rekurrente Neuronale Netze rnn
rnn
Quelle: h*p://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduc...
Architekturen k
k
Quelle: h)p://karpathy.github.io/2015/05/21/rnn-effec=veness/
idalab GmbH — NLP mit RNN 5
NLP-Anwendungen
idalab GmbH — NLP mit RNN 6
Sprachmodelle/Sequenzgenerierung
The Unreasonable Effec0veness of Recurrent Neural Networksk
k
Quelle: h)p://karpathy.githu...
PANDARUS:
Alas, I think he shall be come approached
and the day
When li>le srain would be a>ain'd into
being never fed,
An...
Übersetzung
Sutskever - Sequence to Sequence Learning with Neural Networks s2s
problem with neural networks. Our approach ...
Dependency Tree Parsing
Vinyals - Grammar as a Foreign Language dtp
. Go
LSTM1
in
LSTM2
in
LSTM3
in
END (S (VP XX )VP
. )S...
Weitere Anwendungen
• Reading Comprehension / Ques4on Answering: Hermann eta al -
Teaching Machines to Read and Comprehend...
Beispiel bei idalab:
Textklassifika+on
idalab GmbH — NLP mit RNN 12
Twi$er: Was ist Mobilitätsrelevant?
idalab GmbH — NLP mit RNN 13
BOW-TSNE-Tweet-Einbe/ung
idalab GmbH — NLP mit RNN 14
LSTM-Dokumenten-Vektor
idalab GmbH — NLP mit RNN 15
LSTM-TSNE-Tweet-Einbe.ung
idalab GmbH — NLP mit RNN 16
Jetzt wirds etwas technischer…
• Warum LSTMs?
• Funk1onsweise LSTM
• Keras-Implemen1erung (am Beispiel Textklassifizierung)...
Rekurrente Neuronale Netze rnn
rnn
Quelle: h*p://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduc...
BPTT / Verschwindende Gradienten Hochreiter,1991
Quelle:
Pascanu - On the difficulty of training recurrent neural networks
H...
LSTM l1
l1
Quelle: LSTM: A Search Space Odyssey
idalab GmbH — NLP mit RNN 20
Neuronale Netze / Neuronen nn
nn
Quelle: h)ps://de.wikipedia.org/wiki/RekurrentesneuronalesNetz
idalab GmbH — NLP mit RNN ...
Block Input
idalab GmbH — NLP mit RNN 22
Input Gate
idalab GmbH — NLP mit RNN 23
Forget Gate
idalab GmbH — NLP mit RNN 24
Cell State
idalab GmbH — NLP mit RNN 25
Output Gate
idalab GmbH — NLP mit RNN 26
Block Output
idalab GmbH — NLP mit RNN 27
LSTM-Formeln
• block input:
• input gate:
• forget gate:
• cell state:
• output gate:
• block output:
idalab GmbH — NLP mi...
Keras-Implemen,erung
from keras.models import Sequential
from keras.layers import Dense, LSTM
from keras.layers.embeddings...
Input-Preprocessing
from keras.preprocessing import sequence, text
tokenizer = text.Tokenizer(filters=custom_filter(),
low...
LSTM-Stacking/Dropout/etc.
Keras macht Experimente mit unterschiedlichen Modellen sehr
einfach.
model = Sequential()
model...
Weiterführende Links
Keras
• h#ps://keras.io
• h#ps://github.com/fchollet/keras/tree/master/examples
• h#ps://github.com/f...
Weiterführende Links
RNNS
• Pascanu - On the difficulty of training neural networks
• Werbos - Backpropaga=on Through Time: ...
LSTMs
• h#p://www.wildml.com/2015/09/recurrent-neural-networks-
tutorial-part-1-introduc=on-to-rnns/
• h#p://colah.github....
Danke fürs Zuhören!
Fragen?
Daniel Kirsch / @kirel
idalab GmbH / idalab.de
idalab GmbH — NLP mit RNN 35
Nächste SlideShare
Wird geladen in …5
×

Natural Language Processing with Recurrent Neural Networks

306 Aufrufe

Veröffentlicht am

Neural networks and deep learning have become state of the art in several domains of machine learning. Natural language processing (NLP) is no exception. In particular, NLP has seen recurrent neural networks make significant advances due to the sequential nature of the data. Famous examples are Siri, Google Now, and Cortana.

At data2day/2016 in Karlsruhe, Daniel Kirsch gave a fascinating talk and answered the following questions:
- How do RNNs function?
- For what kind of tasks are they helpful?
- How do you train and apply them?

Prerequisites:

Basic understanding of artificial neural networks is advantageous.

Veröffentlicht in: Daten & Analysen
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
306
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Natural Language Processing with Recurrent Neural Networks

  1. 1. Agency for Data Science Machine learning & AI Mathematical modelling Data strategy Daniel Kirsch Natural Language Processing mit rekurrenten neuronalen Netzen data2day | October 6th 2016
  2. 2. Ziele des Talks Was Sie aus dem Talk mitnehmen sollen: • High-level Übersicht: RNNs • Architekturen und Anwendungen • Wie LSTMs funk@onieren • Verwendung in Python mit Keras idalab GmbH — NLP mit RNN 2
  3. 3. Neuronale Netze nn nn Quelle: h)ps://de.wikipedia.org/wiki/RekurrentesneuronalesNetz idalab GmbH — NLP mit RNN 3
  4. 4. Rekurrente Neuronale Netze rnn rnn Quelle: h*p://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduc>on-to-rnns/ idalab GmbH — NLP mit RNN 4
  5. 5. Architekturen k k Quelle: h)p://karpathy.github.io/2015/05/21/rnn-effec=veness/ idalab GmbH — NLP mit RNN 5
  6. 6. NLP-Anwendungen idalab GmbH — NLP mit RNN 6
  7. 7. Sprachmodelle/Sequenzgenerierung The Unreasonable Effec0veness of Recurrent Neural Networksk k Quelle: h)p://karpathy.github.io/2015/05/21/rnn-effec=veness/ idalab GmbH — NLP mit RNN 7
  8. 8. PANDARUS: Alas, I think he shall be come approached and the day When li>le srain would be a>ain'd into being never fed, And who is but a chain and subjects of his death, I should not sleep. Second Senator: They are away this miseries, produced upon my soul, Breaking and strongly should be buried, when I perish The earth and thoughts of many states. DUKE VINCENTIO: … idalab GmbH — NLP mit RNN 8
  9. 9. Übersetzung Sutskever - Sequence to Sequence Learning with Neural Networks s2s problem with neural networks. Our approach is closely related to Kalchbrenner and Blunsom [18] who were the first to map the entire input sentence to vector, and is related to Cho et al. [5] although the latter was used only for rescoring hypotheses produced by a phrase-based system. Graves [10] introduced a novel differentiable attention mechanism that allows neural networks to focus on dif- ferent parts of their input, and an elegant variant of this idea was successfully applied to machine translation by Bahdanau et al. [2]. The Connectionist Sequence Classification is another popular technique for mapping sequences to sequences with neural networks, but it assumes a monotonic alignment between the inputs and the outputs [11]. Figure 1: Our model reads an input sentence “ABC” and produces “WXYZ” as the output sentence. The model stops making predictions after outputting the end-of-sentence token. Note that the LSTM reads the input sentence in reverse, because doing so introduces many short term dependencies in the data that make the optimization problem much easier. The main result of this work is the following. On the WMT’14 English to French translation task, we obtained a BLEU score of 34.81 by directly extracting translations from an ensemble of 5 deep s2s h%ps://arxiv.org/abs/1409.3215 idalab GmbH — NLP mit RNN 9
  10. 10. Dependency Tree Parsing Vinyals - Grammar as a Foreign Language dtp . Go LSTM1 in LSTM2 in LSTM3 in END (S (VP XX )VP . )S LSTM1 out LSTM2 out LSTM3 out (S (VP XX )VP . )S END Figure 1: A schematic outline of a run of our LSTM+A model on the sentence “Go.”. See text for details. To our surprise, the sequence-to-sequence model matched the BerkeleyParser that produced the annotation, having achieved an F1 score of 90.5 on the test set (section 23 of the WSJ). dtp h&ps://arxiv.org/abs/1412.7449 idalab GmbH — NLP mit RNN 10
  11. 11. Weitere Anwendungen • Reading Comprehension / Ques4on Answering: Hermann eta al - Teaching Machines to Read and Comprehend • Textzusammenfassung: Nallapa4 et al - Abstrac4ve Text Summariza4on using Sequence-to-sequence RNNs and Beyond • Bildbeschreibung: Xu et al - Show, AKend and Tell: Neural Image Cap4on Genera4on with Visual AKen4on • Übersetzung (mit AKen4on): Bahdanau - Neural machine transla4on by jointly learning to align and translate idalab GmbH — NLP mit RNN 11
  12. 12. Beispiel bei idalab: Textklassifika+on idalab GmbH — NLP mit RNN 12
  13. 13. Twi$er: Was ist Mobilitätsrelevant? idalab GmbH — NLP mit RNN 13
  14. 14. BOW-TSNE-Tweet-Einbe/ung idalab GmbH — NLP mit RNN 14
  15. 15. LSTM-Dokumenten-Vektor idalab GmbH — NLP mit RNN 15
  16. 16. LSTM-TSNE-Tweet-Einbe.ung idalab GmbH — NLP mit RNN 16
  17. 17. Jetzt wirds etwas technischer… • Warum LSTMs? • Funk1onsweise LSTM • Keras-Implemen1erung (am Beispiel Textklassifizierung) idalab GmbH — NLP mit RNN 17
  18. 18. Rekurrente Neuronale Netze rnn rnn Quelle: h*p://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduc>on-to-rnns/ idalab GmbH — NLP mit RNN 18
  19. 19. BPTT / Verschwindende Gradienten Hochreiter,1991 Quelle: Pascanu - On the difficulty of training recurrent neural networks Hochreiter,1991 Hochreiter, Sepp. Untersuchungen zu dynamischen neuronalen Netzen idalab GmbH — NLP mit RNN 19
  20. 20. LSTM l1 l1 Quelle: LSTM: A Search Space Odyssey idalab GmbH — NLP mit RNN 20
  21. 21. Neuronale Netze / Neuronen nn nn Quelle: h)ps://de.wikipedia.org/wiki/RekurrentesneuronalesNetz idalab GmbH — NLP mit RNN 21
  22. 22. Block Input idalab GmbH — NLP mit RNN 22
  23. 23. Input Gate idalab GmbH — NLP mit RNN 23
  24. 24. Forget Gate idalab GmbH — NLP mit RNN 24
  25. 25. Cell State idalab GmbH — NLP mit RNN 25
  26. 26. Output Gate idalab GmbH — NLP mit RNN 26
  27. 27. Block Output idalab GmbH — NLP mit RNN 27
  28. 28. LSTM-Formeln • block input: • input gate: • forget gate: • cell state: • output gate: • block output: idalab GmbH — NLP mit RNN 28
  29. 29. Keras-Implemen,erung from keras.models import Sequential from keras.layers import Dense, LSTM from keras.layers.embeddings import Embedding model = Sequential() model.add(Embedding(vocabulary_size, embedding_vector_length)) model.add(LSTM(num_cells)) model.add(Dense(1, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(X_train, y_train, validation_data=(X_test, y_test), nb_epoch=nb_epoch, batch_size=batch_size) y_pred = model.predict_proba(X_test) idalab GmbH — NLP mit RNN 29
  30. 30. Input-Preprocessing from keras.preprocessing import sequence, text tokenizer = text.Tokenizer(filters=custom_filter(), lower=True, split=" ") tokenizer.fit_on_texts(documents) X = tokenizer.texts_to_sequences(documents) X = pad_sequences(X, maxlen=maxlen) # => X = array([[0, 0, …, 3, 150, 2426], …]) idalab GmbH — NLP mit RNN 30
  31. 31. LSTM-Stacking/Dropout/etc. Keras macht Experimente mit unterschiedlichen Modellen sehr einfach. model = Sequential() model.add(Embedding(vacabulary_size, embedding_vecor_length)) model.add(LSTM(30, return_sequences=True)) # 1st LSTM model.add(LSTM(30)) # 2nd LSTM model.add(Dropout(0.2)) model.add(Dense(1, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) idalab GmbH — NLP mit RNN 31
  32. 32. Weiterführende Links Keras • h#ps://keras.io • h#ps://github.com/fchollet/keras/tree/master/examples • h#ps://github.com/fchollet/keras/issues idalab GmbH — NLP mit RNN 32
  33. 33. Weiterführende Links RNNS • Pascanu - On the difficulty of training neural networks • Werbos - Backpropaga=on Through Time: What It Does and How to Do It • Ilya Sutskever - TRAINING RECURRENT NEURAL NETWORKS • Hochreiter - Untersuchungen zu dynamischen neuronalen Netzen idalab GmbH — NLP mit RNN 33
  34. 34. LSTMs • h#p://www.wildml.com/2015/09/recurrent-neural-networks- tutorial-part-1-introduc=on-to-rnns/ • h#p://colah.github.io/posts/2015-08-Understanding-LSTMs/ idalab GmbH — NLP mit RNN 34
  35. 35. Danke fürs Zuhören! Fragen? Daniel Kirsch / @kirel idalab GmbH / idalab.de idalab GmbH — NLP mit RNN 35

×