Deep Learning illustriert. Jon Krohn

Deep Learning illustriert - Jon Krohn


Скачать книгу
und Entwicklungsaufwand bei gleichzeitig geringerer Rechenkomplexität. Diese verminderte Rechenkomplexität erlaubte es Microsoft, Echtzeitübersetzungssoftware in Prozessoren für Mobiltelefone zu quetschen – ein bemerkenswerter Fortschritt für eine Aufgabe, die zuvor eine Internet-Verbindung und aufwendige Berechnungen auf einem Server verlangt hatte. 2016 und 2017 waren Deep-Learning-Modelle, die an NLP-Wettbewerben teilnahmen, nicht nur effizienter als traditionelle Machine-Learning-Modelle, sondern begannen, diese an Exaktheit zu übertreffen. Wir werden im weiteren Verlauf dieses Kapitels zeigen, wie das geht.

       2.2Repräsentationen von Sprache im Computer

      Damit Deep-Learning-Modelle Sprache verarbeiten können, müssen wir dem Modell diese Sprache in einer Weise vorsetzen, die dieses auch verdauen kann. Bei allen Computersystemen bedeutet dies eine quantitative Darstellung von Sprache, etwa als zweidimensionale Matrix numerischer Werte. Zwei beliebte Methoden für die Konvertierung von Text in Zahlen sind 1-aus-n-Kodierung (auch One-Hot-Kodierung genannt) und Wortvektoren4. Wir werden beide Methoden in diesem Abschnitt diskutieren.

       2.2.11-aus-n-Repräsentationen von Wörtern

      Das traditionelle Vorgehen zum numerischen Kodieren natürlicher Sprache für die Verarbeitung mit einer Maschine ist die 1-aus-n-Kodierung (auch: One-Hot-Kodierung; Abbildung 2–4). Dabei werden die Wörter der natürlichen Sprache in einem Satz (z.B. »the«, »bat«, »sat«, »on«, »the« und »cat«) durch die Spalten einer Matrix dargestellt. Jede Zeile in der Matrix wiederum repräsentiert ein einziges eindeutiges Wort. Wenn es 100 eindeutige Wörter im Textkorpus der Dokumente gibt, die Sie in Ihren Sprachalgorithmus eingeben, muss Ihre Matrix aus 1-aus-n-kodierten Wörtern 100 Zeilen besitzen. Besteht Ihr Korpus5 aus 1.000 eindeutigen Wörtern, gibt es 1.000 Zeilen in der Matrix usw.

      Abb. 2–4Solche 1-aus-n-Kodierungen von Wörtern sind beim traditionellen Machine-Learning-Ansatz zur Verarbeitung natürlicher Sprache vorherrschend.

      Die Zellen in 1-aus-n-Matrizen bestehen aus Binärwerten, das heißt, sie sind entweder 0 oder 1. Jede Spalte besteht aus höchstens einer 1 und ansonsten aus Nullen. 1-aus-n-Matrizen sind also dünn besetzt6. Werte von 1 zeigen das Vorhandensein eines bestimmten Wortes (Zeile) an einer bestimmten Position (Spalte) innerhalb des Textkorpus an. In Abbildung 2–4 enthält unser gesamter Textkorpus nur sechs Wörter, von denen fünf einzigartig sind. Eine entsprechende 1-aus-n-Darstellung der Wörter in unserem Korpus hat deshalb sechs Spalten und fünf Zeilen. Das erste einzigartige Wort – the – tritt an der ersten und der fünften Position auf, wie die Zellen anzeigen, die in der ersten Zeile der Matrix eine 1 enthalten. Das zweite eindeutige Wort in unserem winzigen Korpus ist bat, das nur an der zweiten Position auftaucht und daher durch den Wert 1 in der zweiten Zeile der zweiten Spalte repräsentiert wird. 1-aus-n-Darstellungen wie diese sind ziemlich einfach und direkt und bilden ein akzeptables Format für die Eingabe in ein Deep-Learning-Modell (oder auch andere Machine-Learning-Modelle). Wie Sie allerdings gleich sehen werden, sind die Einfachheit und Spärlichkeit von 1-aus-n-Darstellungen ein recht einschränkender Faktor, wenn man sie in Sprachanwendungen einsetzt.

       2.2.2Wortvektoren

      Vektordarstellungen von Wörtern sind die informationsdichte Alternative zur 1-aus-n-Kodierung von Wörtern. Während 1-aus-n-Darstellungen nur Informationen über die Wortstellung festhalten, erfassen Wortvektoren (auch als Word Embeddings, Worteinbettungen oder Vector-Space Embeddings bekannt) Informationen sowohl über die Wortbedeutung als auch über die Wortstellung.7 Aufgrund dieser Zusatzinformationen sind Wortvektoren aus verschiedenen Gründen, die Sie im Laufe des Kapitels kennenlernen werden, vorteilhaft. Der wichtigste Vorzug besteht darin, dass Wortvektoren – analog zu den visuellen Features, die von den Deep-Learning-Modellen in Kapitel 1 automatisch erkannt wurden – es Deep-Learning-NLP-Modellen erlauben, automatisch linguistische Features zu lernen.

      Beim Erzeugen von Wortvektoren besteht das übergreifende Konzept darin, dass wir jedes Wort innerhalb eines Textkorpus einem bestimmten, bedeutungsvollen Ort innerhalb eines mehrdimensionalen Raums zuweisen wollen, den wir als Vektorraum bezeichnen. Anfangs ist jedes Wort einer zufälligen Stelle in diesem Vektorraum zugeordnet. Indem jedoch die Wörter betrachtet werden, die um ein bestimmtes Wort in der natürlichen Sprache herum verwendet werden, können die Standorte der Wörter im Vektorraum sich nach und nach an Orte verschieben, die die Bedeutung der Wörter repräsentieren.8

      Abbildung 2–5 zeigt ein klitzekleines Beispiel dafür, welche Mechanismen hinter der Art und Weise stecken, wie Wortvektoren konstruiert werden. Beginnend mit dem ersten Wort in unserem Textkorpus und wortweise nach rechts bis zum letzten Wort in unserem Korpus fortlaufend, betrachten wir jedes einzelne Wort als Zielwort. In dem speziellen Augenblick, der in Abbildung 2–5 festgehalten wird, ist das momentan untersuchte Zielwort word. Das nächste Zielwort wäre by, gefolgt von the, dann company usw. Wir betrachten jedes Zielwort in Bezug auf die Wörter, die es umgeben – seine Kontextwörter. In unserem Beispiel verwenden wir ein Kontextwort-Fenster von drei Wörtern. Das bedeutet, dass im Falle des Zielwortes word die drei Wörter links davon (a, know und shall) gemeinsam mit den drei Wörtern rechts davon (by, company und keep) die sechs Kontextwörter bilden.9 Wenn wir zum nächsten Zielwort (by) weitergehen, verschiebt sich auch das Fenster der Kontextwörter um eine Position nach rechts: shall und by fallen als Kontextwörter weg, während word und it hinzukommen.

      Abb. 2–5Ein winziges Beispiel für den Prozess hinter Techniken wie »word2vec« und »GloVe«, die natürliche Sprache in Wortvektoren umwandeln.

      Zwei der beliebtesten Techniken zum Konvertieren von natürlicher Sprache in Wortvektoren sind word2vec10 und GloVe11. Bei beiden Techniken ist es unser Ziel, beim Betrachten eines bestimmten Zielwortes das Zielwort anhand seiner Kontextwörter vorherzusagen.12 Wenn wir diese Vorhersagen Zielwort für Zielwort in einem großen Textkorpus verbessern, weisen wir nach und nach Wörter, die in ähnlichen Kontexten auftauchen, ähnlichen Orten im Vektorraum zu.

      In Abbildung 2–6 sehen Sie eine Skizze des Vektorraums. Der Raum kann eine beliebige Anzahl von Dimensionen haben. Wir nennen ihn deshalb einen n-dimensionalen Vektorraum. In der Praxis könnten wir (je nach der Fülle des Textkorpus, der uns zum Arbeiten zur Verfügung steht, und der Komplexität unserer NLP-Anwendung) einen Wortvektorraum mit Dutzenden, Hunderten oder – in extremen Fällen – Tausenden von Dimensionen erschaffen. Wie wir im vorigen Absatz ausgeführt haben, wird jedem Wort aus unserem Korpus (z.B. king) ein Ort im Vektorraum zugewiesen. In einem 100-dimensionalen Raum etwa, würde die Lage des Wortes king durch einen Vektor angegeben werden, den wir vking nennen könnten und der aus 100 Zahlen bestehen müsste, um den Ort des Wortes king in allen verfügbaren Dimensionen zu bestimmen.

      Abb. 2–6Das Diagramm der Wortbedeutung, dargestellt


Скачать книгу