-
QUERVERWEIS AUF ANDERE ANMELDUNGEN
-
Diese Anmeldung beansprucht die Priorität der am 17. Mai 2018 eingereichten
US-Patentanmeldung Nr. 15/982,841 und der
US-Provisional Patentanmeldungen Nr. 62/508,977, die am 19. Mai 2017 eingereicht wurde, und Nr. 62/536,959 , die am 25. Juli 2017 eingereicht wurde, deren Inhalt hierin durch Bezugnahme in ihrer Gesamtheit für alle Zwecke aufgenommen wird.
-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung bezieht sich im Allgemeinen auf neuronale Netze und insbesondere auf neuronale Netze zur Verarbeitung natürlicher Sprache unter Verwendung kontextspezifischer Wortvektoren.
-
HINTERGRUND
-
Neuronale Netze haben sich als eine Technik zur automatischen Analyse von realen Informationen mit menschenähnlicher Genauigkeit bewährt. Im Allgemeinen empfangen neuronale Netzmodelle Eingangsinformationen und treffen Vorhersagen auf der Grundlage der Eingangsinformationen. So kann beispielsweise ein neuronaler Netzwerkklassifizierer eine Klasse der Eingangsinformationen unter einer vorgegebenen Menge von Klassen vorhersagen. Während andere Ansätze zur Analyse realer Informationen fest programmierte Prozesse, statistische Analysen und/oder dergleichen beinhalten können, lernen neuronale Netze, Vorhersagen schrittweise durch einen Prozess des Trial-and-Error-Verfahrens unter Verwendung eines maschinellen Lernprozesses zu treffen. Ein bestimmtes neuronales Netzwerkmodell kann mit einer großen Anzahl von Trainingsbeispielen trainiert werden, wobei iterativ vorgegangen wird, bis das neuronale Netzwerkmodell beginnt, konsequent ähnliche Schlussfolgerungen aus den Trainingsbeispielen zu ziehen, die ein Mensch machen könnte. Es hat sich gezeigt, dass neuronale Netzwerkmodelle in einer Reihe von Anwendungen die Leistung anderer Computertechniken übertreffen und/oder das Potenzial dazu haben. Tatsächlich wurden sogar einige Anwendungen identifiziert, bei denen neuronale Netzwerkmodelle die Leistung auf menschlicher Ebene übertreffen.
-
Figurenliste
-
- 1 ist ein vereinfachtes Diagramm einer Rechenvorrichtung gemäß einigen Ausführungsformen.
- 2 ist ein vereinfachtes Diagramm eines Verfahrens zum Vortraining eines Encoders auf eine erste Natural Language Processing (NLP)-Aufgabe und zum Ausführen einer zweiten NLP-Aufgabe unter Verwendung derselben gemäß einigen Ausführungsformen.
- 3 ist ein vereinfachtes Diagramm, das das Vortraining eines Encoders gemäß einigen Ausführungsformen veranschaulicht.
- 4 veranschaulicht ein Beispiel für Wortvektoren für eine Sequenz von Wörtern.
- 5 ist ein vereinfachtes Diagramm, das die Vorbildung eines Encoders für eine NLP-Übersetzungsaufgabe gemäß einigen Ausführungsformen veranschaulicht.
- 6 ist ein vereinfachtes Diagramm eines Verfahrens zum Vortraining eines Encoders auf eine NLP-Übersetzungsaufgabe gemäß einigen Ausführungsformen.
- 7 ist ein vereinfachtes Diagramm eines Systems zur Verarbeitung natürlicher Sprache gemäß einigen Ausführungsformen.
- 8 ist ein vereinfachtes Diagramm eines Systems zur Verarbeitung natürlicher Sprache mit einem Encoder, der auf eine NLP- Übersetzungsaufgabe gemäß einigen Ausführungsformen vortrainiert ist.
- Die 9 und 10 sind vereinfachte Diagramme, die die Leistung von Systemen zur Verarbeitung natürlicher Sprache vergleichen, die auf unterschiedlichen Eingabekodierungen basieren.
- 11 ist eine Tabelle, die die Leistungsergebnisse von Systemen zur Verarbeitung natürlicher Sprache auf der Grundlage verschiedener Eingabedarstellungen veranschaulicht.
-
In den Figuren haben Elemente mit gleicher Bezeichnung die gleiche oder ähnliche Funktion.
-
DETAILLIERTE BESCHREIBUNG
-
Diese Beschreibung und die beigefügten Zeichnungen, die Aspekte, Ausführungsformen, Implementierungen oder Anmeldungen veranschaulichen, dürfen nicht als Einschränkung angesehen werden - die Ansprüche definieren die geschützte Erfindung. Verschiedene mechanische, zusammengesetzte, strukturelle, elektrische und betriebliche Änderungen können vorgenommen werden, ohne vom Geist und Umfang dieser Beschreibung und der Ansprüche abzuweichen. In einigen Fällen wurden bekannte Schaltungen, Strukturen oder Techniken nicht im Detail gezeigt oder beschrieben, da diese einem Fachmann bekannt sind. Gleiche Zahlen in zwei oder mehr Figuren stellen die gleichen oder ähnliche Elemente dar.
-
In dieser Beschreibung werden spezifische Details dargelegt, die einige Ausführungsformen beschreiben, die mit der vorliegenden Offenbarung übereinstimmen. Zahlreiche spezifische Details werden erläutert, um ein gründliches Verständnis der Ausführungsformen zu ermöglichen. Für einen Fachmann wird es jedoch offensichtlich sein, dass einige Ausführungsformen ohne einige oder alle diese spezifischen Details praktiziert werden können. Die hierin offenbarten spezifischen Ausführungsformen sollen illustrativ, aber nicht einschränkend sein. Ein Fachmann kann andere Elemente erkennen, die, obwohl sie hier nicht ausdrücklich beschrieben sind, innerhalb des Umfangs und des Geistes dieser Offenbarung liegen. Darüber hinaus können zur Vermeidung unnötiger Wiederholungen ein oder mehrere Merkmale, die in Verbindung mit einer Ausführungsform dargestellt und beschrieben werden, in andere Ausführungsformen aufgenommen werden, sofern nicht ausdrücklich etwas anderes beschrieben ist oder wenn das eine oder die mehreren Merkmale eine Ausführungsform unwirksam machen würden.
-
Natural Language Processing (NLP) ist eine Klasse von Problemen, bei denen neuronale Netze eingesetzt werden können. NLP kann verwendet werden, um neue neuronale Netze mit einem Verständnis für einzelne Wörter und Phrasen zu entwickeln. Für die meisten Probleme oder Aufgaben in NLP ist es jedoch auch wichtig, den Kontext zu verstehen. Übersetzungsmodelle müssen beispielsweise verstehen, wie die Wörter in einem englischen Satz zusammenwirken, um eine deutsche Übersetzung zu erzeugen. Ebenso benötigen Verdichtungsmodelle einen Kontext, um zu wissen, welche Wörter am wichtigsten sind. Modelle, die eine Stimmungsanalyse durchführen, müssen verstehen, wie man Schlüsselwörter aufgreift, die das von anderen geäußerte Stimmungsbild verändern. Und Fragebeantwortungsmodelle basieren auf dem Verständnis, wie Wörter in einer Frage die Bedeutung von Wörtern in einem Dokument verändern. Dementsprechend ist es wünschenswert, einen Weg zur Initialisierung neuronaler Netze für NLP zu entwickeln, um zu verstehen, wie sich verschiedene Wörter auf andere Wörter beziehen können oder wie der Kontext die Bedeutung eines Wortes beeinflusst.
-
Gemäß einigen Ausführungsformen wird einem neuronalen Netz beigebracht, wie man Wörter im Kontext versteht, indem man es an einer ersten NLP-Aufgabe trainiert - z.B. an einer ersten NLP-Aufgabe, die ihm beibringt, wie man vom Englischen ins Deutsche übersetzt. Das trainierte Netzwerk kann dann in einem neuen oder anderen neuronalen Netz wiederverwendet werden, das eine zweite NLP-Aufgabe ausführt - z.B. Klassifizierung, Fragebeantwortung, Stimmungsanalyse, Folgenklassifizierung (entailment classification), Sprachübersetzung, etc. Die kontextspezifischen Wortvektoren (CoVe) des vortrainierten Netzwerks werden als Eingänge für neue Netzwerke bereitgestellt, die andere NLP-Aufgaben lernen. Experimente zeigen, dass die Bereitstellung von CoVe für diese neuen Netzwerke ihre Leistung verbessern kann, wodurch bestätigt wird, dass verschiedene NLP-Modelle oder Aufgaben von der Verwendung eines neuronalen Netzes profitieren können, das bereits gelernt hat, wie man Wörter kontextualisiert.
-
In einigen Ausführungsformen können verschiedene NLP-Modelle oder Aufgaben - wie Klassifizierung, Fragenbeantwortung, Stimmungsanalyse und Übersetzung - verbessert werden, indem kontextspezifische Wortvektoren verwendet werden, die durch das Training eines Encoders mit einer NLP-Aufgabe erzeugt werden, die sich von der auszuführenden NLP-Aufgabe unterscheiden kann. Generell wurden durch Transfer und Multi-Task-Lernen zwischen synergistischen Aufgaben erhebliche Fortschritte erzielt. In vielen Fällen können diese Synergien durch Architekturen genutzt werden, die auf ähnliche Komponenten setzen. Die hierin offenbarten Ausführungsformen verwenden Netze, die bereits gelernt haben oder trainiert wurden, Wörter zu kontextualisieren, um anderen neuronalen Netzen einen Vorteil beim Erlernen des Verständnisses anderer Teile der natürlichen Sprache zu geben.
-
1 ist ein vereinfachtes Diagramm einer Rechenvorrichtung 100 gemäß einigen Ausführungsformen. Wie in 1 dargestellt, beinhaltet die Rechenvorrichtung 100 einen Prozessor 110, der mit dem Speicher 120 gekoppelt ist. Der Betrieb der Rechenvorrichtung 100 wird durch den Prozessor 110 gesteuert. Und obwohl die Rechenvorrichtung 100 mit nur einem Prozessor 110 dargestellt wird, versteht es sich, dass der Prozessor 110 repräsentativ für eine oder mehrere Zentraleinheiten, Multicore-Prozessoren, Mikroprozessoren, Mikrocontroller, digitale Signalprozessoren, Field Programmable Gate Arrays (FPGAs), anwendungsspezifische integrierte Schaltungen (ASICs), Grafikverarbeitungseinheiten (GPUs), Tensor-Verarbeitungseinheiten (TPUs) und/oder dergleichen in der Rechenvorrichtung 100 sein kann. Die Rechenvorrichtung 100 kann als eigenständiges Subsystem, als Karte, die einer Rechenvorrichtung hinzugefügt wird, und/oder als virtuelle Maschine implementiert werden.
-
Der Speicher 120 kann verwendet werden, um Software zu speichern, die von der Rechenvorrichtung 100 ausgeführt wird, und/oder eine oder mehrere Datenstrukturen, die während des Betriebs der Rechenvorrichtung 100 verwendet werden. Der Speicher 120 kann einen oder mehrere Typen von maschinenlesbaren Medien beinhalten. Einige gängige Formen von maschinenlesbaren Medien können Diskette, flexible Diskette, Festplatte, Magnetband, jedes andere magnetische Medium, CD-ROM, jedes andere optische Medium, Lochkarten, Papierband, jedes andere physikalische Medium mit Lochmustern, RAM, PROM, EPROM, FLASH-EPROM, jeder andere Speicherchip oder jede andere Kassette und/oder jedes andere Medium sein, von dem ein Prozessor oder Computer lesen kann.
-
Prozessor 110 und/oder Speicher 120 können in jeder geeigneten physikalischen Anordnung angeordnet werden. In einigen Ausführungsformen kann der Prozessor 110 und/oder der Speicher 120 auf derselben Platine, in demselben Gehäuse (z.B. System in Gehäuse), auf demselben Chip (z.B. System on Chip) und/oder dergleichen implementiert werden. In einigen Ausführungsformen kann der Prozessor 110 und/oder der Speicher 120 verteilte, virtualisierte und/oder containerisierte Computerressourcen beinhalten. In Übereinstimmung mit solchen Ausführungsformen können sich Prozessor 110 und/oder Speicher 120 in einem oder mehreren Rechenzentren und/oder Cloud Computing-Einrichtungen befinden. In einigen Beispielen kann der Speicher 120 nicht-flüchtige, greifbare, maschinenlesbare Medien beinhalten, die ausführbaren Code enthalten, der bei Ausführung durch einen oder mehrere Prozessoren (z.B. Prozessor 110) dazu führen kann, dass der eine oder die mehreren Prozessoren eine der nachfolgend beschriebenen Methoden ausführen.
-
Wie dargestellt, beinhaltet Speicher 120 ein neuronales Netz 130. Das neuronale Netz 130 kann verwendet werden, um eines der nachfolgend beschriebenen neuronalen Netze zu implementieren und/oder zu emulieren. In einigen Beispielen kann das neuronale Netz 130 ein mehrschichtiges oder tiefes neuronales Netz beinhalten. Gemäß einigen Ausführungsformen sind Beispiele für mehrschichtige neuronale Netze das ResNet-32, DenseNet, PyramidNet, SENet, AWD-LSTM, AWD-QRNN und/oder ähnliche neuronale Netze. Das neuronale Netz ResNet-32 wird in He, et al., „Deep Residual Learning for Image Recognition“, arXiv:1512.03385, eingereicht am 10. Dezember 2015, näher beschrieben; das neuronale Netz DenseNet wird in Iandola, et al., „Densenet: Implementing Efficient Convnet Descriptor Pyramids“, arXiv:1404.1869, eingereicht am 7. April 2014, näher beschrieben, das neuronale Netz PyramidNet wird in Han, et al., ausführlich beschrieben, „Deep Pyramidal Residual Networks“, arXiv:1610.02915, eingereicht am 10. Oktober 2016; das neuronale SENet-Netzwerk wird in Hu, et al..., „Squeeze-and-Excitation Networks“, arXiv:1709.01507, 5. September 2017; das neuronale AWD-LSTM-Netzwerk wird in Bradbury, et al., „Quasi-Recurrent Neural Networks“, arXiv:1611.01576, eingereicht am 5. November 2016, näher beschrieben, die jeweils durch Bezugnahme hierin aufgenommen werden.
-
Gemäß einigen Ausführungsformen kann das neuronale Netz 130 einen Encoder verwenden, der für eine erste Art von NLP-Aufgabe, wie zum Beispiel die Übersetzung, vortrainiert ist. Die Rechenvorrichtung 100 kann Trainingsdaten empfangen, die eine oder mehrere Wortsequenzen in einer ersten Sprache (z.B. Englisch) und eine oder mehrere entsprechende Wortsequenzen in einer zweiten Sprache (z.B. Deutsch) beinhalten, die die erwartete und/oder gewünschte Übersetzung der jeweiligen Wortsequenzen in der ersten Sprache darstellen. Angenommen, eine Eingabewortsequenz, die einer Rechenvorrichtung 100 zur Verfügung gestellt wird, beinhaltet die englische Wortsequenz „Let's go for a walk“. Die entsprechende deutsche Wortsequenz lautet „Lass uns spazieren gehen.“ Die Rechenvorrichtung 100 verwendet diese Trainingsdaten, um kontextspezifische Wortvektoren oder „Kontextvektoren“ (CoVe) für die Wörter oder Wortsequenzen in der ersten Sprache zu erzeugen und auszugeben. Anders ausgedrückt, wird dem Encoder beigebracht, wie man Wörter im Kontext versteht, indem man ihm zuerst beibringt, wie man von einer Sprache in eine andere übersetzt (z.B. Englisch nach Deutsch). Nach dem Training kann der Encoder vom neuronalen Netz 130 verwendet werden, um eine zweite Art von NLP-Aufgabe durchzuführen, z.B. Stimmungsanalyse (Stanford Sentiment Treebank (SST), IMDb), Frageklassifizierung (TREC), Folgenklassifizierung (Stanford Natural Language Inference Corpus (SNLI)), Fragenbeantwortung (Stanford Question Answering Dataset (SQuAD)) und/oder dergleichen. Zu diesem Zweck empfängt die Rechenvorrichtung 100 die Eingabe 150 für die zweite Art von NLP-Aufgabe und erzeugt Ergebnisse 160 für diese Aufgabe.
-
2 ist ein vereinfachtes Diagramm eines Verfahrens 200 zum Vortraining eines Encoders auf eine erste NLP-Aufgabe und zum Ausführen einer zweiten NLP-Aufgabe unter Verwendung derselben, entsprechend einigen Ausführungsformen. Einer oder mehrere der Prozesse 210-220 des Verfahrens 200 können zumindest teilweise in Form von ausführbarem Code implementiert werden, der auf nichtflüchtigen, körperlichen, maschinenlesbaren Medien gespeichert ist, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen können, einen oder mehrere der Prozesse 210-230 auszuführen. In einigen Ausführungsformen kann das Verfahren 200 durch die Rechenvorrichtung 100 von 1 durchgeführt werden.
-
Gemäß einigen Ausführungsformen verwendet das Verfahren 200 Transferlernen oder Domänenanpassung. Transferlernen wurde in einer Vielzahl von Bereichen angewendet, in denen Forscher synergistische Beziehungen zwischen unabhängig gesammelten Datensätzen identifizieren. In einigen Ausführungsformen ist die Quelldomäne des Transferlernens die maschinelle Übersetzung.
-
Bei einem Prozess 210 wird ein Encoder eines neuronalen Netzes mit Trainingsdaten für die Durchführung der ersten NLP-Aufgabe vortrainiert. In einigen Ausführungsformen kann die erste NLP-Aufgabe die Übersetzung sein. Die Natur der Übersetzungsaufgabe hat ansprechende Eigenschaften für das Training eines allgemeinen Kontext-Encoders - z.B. scheint die Übersetzung ein allgemeineres Verständnis für die Sprache zu erfordern als andere NLP-Aufgaben, wie die Textklassifizierung. Während des Trainings erhält der Encoder Trainings- und/oder Testdaten 150, die in einigen Ausführungsformen eine oder mehrere Wortsequenzen in einer ersten Sprache (z.B. Englisch) und eine oder mehrere entsprechende Wortsequenzen in einer zweiten Sprache (z.B. Deutsch) beinhalten können. Die Trainingsdaten 150 können ein oder mehrere MT-Datensätze (Machine Translation) sein. Die maschinelle Übersetzung ist eine geeignete Quelldomäne für das Transferlernen, da die Aufgabe von Natur aus erfordert, dass das Modell einen Satz in der Zielsprache originalgetreu reproduziert, ohne Informationen im Quellsprachensatz zu verlieren. Darüber hinaus gibt es eine Fülle von maschinellen Übersetzungsdaten, die für das Transferlernen verwendet werden können; tatsächlich sind die Trainingssets für maschinelle Übersetzung viel größer als die für die meisten anderen NLP-Aufgaben. Mögliche Trainingssets beinhalten verschiedene Englisch-Deutsche Maschinenübersetzungs-(MT)-Datensätze. So ist beispielsweise die multimodale Übersetzungsaufgabe WMT 2016 - oft als „Multi30k“ bezeichnet und in Specia, et al., „A shared task on multimodal machine translation and crosslingual image description“, Proceedings of the Ist Conference on Machine Translation, WMT, 2016, S. 543- 553, die hierin durch Bezugnahme aufgenommen wird - ein Datensatz, bestehend aus 30.000 Satzpaaren, die kurz Flickr-Titel beschreiben. Aufgrund der Natur der Bildunterschriften enthält dieser Datensatz Sätze, die im Durchschnitt kürzer und einfacher sind als die von größeren Entsprechungen. Die Version 2016 der maschinellen Übersetzungsaufgabe, die für den International Workshop on Spoken Language Translation vorbereitet wurde und in Cettolo, et al., „The IWSLT 2015 evaluation campaign,“ In International Workshop on Spoken Language Translation, 2015, die hierin durch Bezugnahme aufgenommen wird, ist ein größerer Datensatz, bestehend aus 209.772 Satzpaaren aus transkribierten TED-Präsentationen, die eine Vielzahl von Themen mit mehr Konversationssprache abdecken als in anderen maschinellen Übersetzungsdatensätzen. Die gemeinsame Aufgabe der Nachrichtenübersetzung aus WMT 2017 ist ein großer MT-Datensatz, der aus etwa 7 Millionen Satzpaaren besteht, die aus Webcrawl-Daten, einem Nachrichten- und Kommentarkorpus, Verfahren des Europäischen Parlaments und Pressemitteilungen der Europäischen Union stammen. Diese drei MT-Datensätze können als MT-Small, MT-Medium und MT-Large bezeichnet werden. Jeder dieser MT-Datensätze wird mit dem Moses Toolkit tokenisiert, das in Koehn, et al., „Moses: Open-Source-Toolkit für die statistische maschinelle Übersetzung“, Proceedings of the 45th Annual Meeting of the Association of the Computational Linguistics, 2007, S. 177-180, das durch Verweis hierin aufgenommen wird.
-
Der Encoder erzeugt oder gibt Kontextvektoren (oder CoVe) 160 für die Wörter oder Sequenzen in der ersten Sprache aus. Die Kontextvektoren von Encodern, die auf MT-Small, MT-Medium und MT-Large trainiert wurden, können als CoVe-S, CoVe-M und CoVe-L bezeichnet werden. Der vortrainierte Encoder des neuronalen Netzes kann dann wiederverwendet oder auf eine oder mehrere andere NLP-Aufgaben angewendet werden.
-
Bei einem Prozess 220 wird ein neues oder ein anderes neuronales Netz 130 für die zweite NLP-Aufgabe mit dem vortrainierten Kontext-Encoder trainiert. Die vortrainierten Ausgangskontextvektoren (oder CoVe) des vortrainierten Encoders für die Wörter oder Sequenzen in der ersten Sprache werden als Eingänge für das neue oder andere neuronale Netz 130 bereitgestellt, das andere NLP-Aufgaben lernt oder ausführt, die mit derselben Sprache ausgeführt werden, wie Klassifizierung, Fragenbeantwortung, Stimmungsanalyse, andere Aufgaben der maschinellen Übersetzung und/oder dergleichen. In einigen Ausführungsformen werden Darstellungen fester Länge, die von NMT-Encoder (Neural Machine Translation) erhalten wurden, für das Training übernommen. In einigen Ausführungsformen werden Darstellungen für jedes Token in einer Eingabesequenz zum Training übertragen. Der letztgenannte Ansatz macht die Übertragung des vortrainierten Kontext-Encoders für die andere NLP-Aufgabe direkter kompatibel mit dem nachfolgenden langen Kurzzeitgedächtnis (LSTM), den Aufmerksamkeitsmechanismen und im Allgemeinen den Schichten, die Eingabesequenzen erwarten. Dies erleichtert zusätzlich die Übertragung von sequentiellen Abhängigkeiten zwischen Encoder-Zuständen. In einigen Ausführungsformen wird der vortrainierte Encoder während des Prozesses 220 nicht weiter trainiert.
-
Bei einem Prozess 230 wird das neuronale Netz 130 verwendet, um die zweite NLP-Aufgabe auszuführen. Die Rechenvorrichtung 100 empfängt den Eingang 150 für die zweite NLP-Aufgabe und erzeugt die Ergebnisse 160 für diese Aufgabe. Experimente zeigen, dass die Bereitstellung des neuronalen Netzes 130 mit Kontextvektoren von einem Encoder, der auf eine erste NLP-Aufgabe (z.B. maschinelle Übersetzung) vortrainiert wurde, seine Leistung für eine zweite NLP-Aufgabe (z.B. Klassifizierung, Fragebeantwortung, Stimmungsanalyse) verbessern kann.
-
Aspekte oder Ausführungsformen für jeden dieser Prozesse 210-230 des Verfahrens 200 werden hierin näher beschrieben.
-
3 ist ein vereinfachtes Diagramm, das die Vorbildung eines Encoders 310 gemäß einigen Ausführungsformen veranschaulicht. In einigen Ausführungsformen kann der Encoder 310 einen oder mehrere lange Kurzzeitgedächtnisse (LSTM)-Encoder beinhalten oder mit diesen implementiert werden.
-
Der Encoder 310 empfängt Trainingsdaten, die in Form von Wortvektoren 320 für eine oder mehrere Wortsequenzen in einer Muttersprache (z.B. Englisch) vorliegen können. Anstatt Wortsequenzen als Text zu lesen, lesen Deep-Learning-Modelle Sequenzen von Wortvektoren. Ein Wortvektor verknüpft jedes Wort in der Sprache mit einer Liste von Zahlen. Viele Deep-Learning-Modelle für NLP basieren auf Wortvektoren, um die Bedeutung einzelner Wörter darzustellen.
-
4 veranschaulicht ein Beispiel für Wortvektoren für eine Sequenz von Wörtern: „Let's go for a walk.“ In einigen Ausführungsformen werden die Wortvektoren 320 eines Modells zu Listen von Zufallszahlen initialisiert, bevor das Modell für eine bestimmte Aufgabe trainiert wird. In einigen Ausführungsformen können die Wortvektoren 320 eines Modells mit denen initialisiert werden, die durch die Ausführung von Methoden wie word2vec, GloVe oder FastText erhalten werden. Jede dieser Methoden definiert eine Art und Weise, Wortvektoren mit nützlichen Eigenschaften zu lernen. Die ersten beiden Methoden basieren auf der Hypothese, dass zumindest ein Teil der Bedeutung eines Wortes an seine Verwendung gebunden ist. word2vec trainiert ein Modell, um ein Wort aufzunehmen und ein lokales Kontextfenster vorherzusagen; das Modell sieht ein Wort und versucht, die Wörter um es herum vorherzusagen. GloVe verfolgt einen ähnlichen Ansatz, fügt aber auch explizit Statistiken darüber hinzu, wie oft jedes Wort mit jedem anderen Wort vorkommt. In beiden Fällen wird jedes Wort durch einen entsprechenden Wortvektor dargestellt, und das Training zwingt die Wortvektoren, miteinander zu korrelieren, und zwar auf eine Weise, die an die Verwendung des Wortes in der natürlichen Sprache gebunden ist. Unter Bezugnahme auf das spezifische Beispiel von „Let's go for a walk“ in 4 erzeugen Algorithmen wie word2vec und GloVe Wortvektoren, die mit den Wortvektoren korrelieren, die in natürlicher Sprache regelmäßig um sie herum vorkommen. Auf diese Weise bedeutet der Vektor für „go“, dass das Wort „go“ um Worte wie „Let's“, „for“, „a“, „a“ und „walk“ herum erscheint.
-
Unter Bezugnahme auf 3 wird der Encoder 310 trainiert, indem er eine erste NLP-Aufgabe ausführen lässt, die in einigen Ausführungsformen eine maschinelle Übersetzung (MT) der Wortsequenz in einer ersten Sprache (z.B. „Let's go for a walk“) in eine entsprechende Wortsequenz in einer zweiten Sprache (z.B. „Lass uns spazieren gehen“) sein kann. Um dieses Training durchzuführen, interagiert der Encoder 310 mit einem Decoder 330, um die Übersetzung 340 zu erzeugen. In einigen Ausführungsformen werden die LSTM-Encoder auf mehrere Datensätze zur maschinellen Übersetzung trainiert. Experimente zeigen, dass die Menge der Trainingsdaten, die zum Trainieren des MT-LSTM verwendet werden, positiv mit der Leistung bei nachgelagerten Aufgaben korreliert ist, z.B. wenn der Encoder für eine zweite NLP-Aufgabe verwendet oder eingesetzt wird. Dies ist ein weiterer Vorteil der Verwendung von MT als Trainingsaufgabe, da die Daten für MT reichhaltiger sind als für die meisten anderen überwachten NLP-Aufgaben, und es legt nahe, dass qualitativ hochwertigere MT-LSTMs mehr nützliche Informationen übertragen. Während die maschinelle Übersetzung in keinem Zusammenhang mit anderen NLP-Aufgaben wie Textklassifizierung und Fragenbeantwortung zu stehen scheint, verstärkt dies die Idee, dass die maschinelle Übersetzung eine gute Kandidaten-NLP-Aufgabe für Modelle mit einem stärkeren Sinn für natürliches Sprachverständnis ist.
-
Während 3 ein High-Level-Diagramm ist, veranschaulicht 5 weitere Details für das Vor-Training des Encoders 310 auf die NLP-Aufgabe der maschinellen Übersetzung gemäß einigen Ausführungsformen. Und 6 zeigt ein entsprechendes Verfahren 600 zum Vor-Training des in 5 dargestellten Encoders.
-
Mit Bezug auf die 5 und 6, beginnt das Verfahren 600 mit einem Prozess 602. Bei Prozess 602 werden die Wortvektoren 320a-e für eine Sequenz von Wörtern in einer Erst- oder Quellsprache wx = [wx 1, ...., wx n] (z.B. Englisch - „Let's go for a walk“) eingegeben oder dem Encoder 310 bereitgestellt. Und die Wortvektoren 540 für eine Sequenz von Wörtern in einer Zweit- oder Zielsprache wz = [wz 1, ...., wz n] (z.B. Deutsch - „Lass uns spazieren gehen“) werden eingegeben oder dem Decoder 330 zur Verfügung gestellt. Sei GloVe(wx) eine Sequenz von GloVe-Vektoren, die den Wörtern in wx entspricht, und sei z eine Sequenz von zufällig initialisierten Wortvektoren, die den Wörtern in wz entspricht.
-
In einigen Ausführungsformen beinhaltet oder ist der Encoder 310 mit einem Recurrent Neural Network (RNN) implementiert. RNNs sind Deep-Learning-Modelle, die Vektorsequenzen variabler Länge verarbeiten. Damit eignen sich RNNs für die Verarbeitung von Sequenzen der Wortvektoren 320a-e. In einigen Ausführungsformen kann der Encoder 310 mit einem oder mehreren lange Kurzzeitgedächtnis-(LSTM)-Encodern 5 10a-e realisiert werden, die eine bestimmte Art von RNN sind, die in der Lage sind, lange Wortsequenzen zu verarbeiten.
-
Bei einem Prozess
604 verarbeitet der Encoder die Sequenz der Wortvektoren
320a-e, um einen oder mehrere neue Vektor
520a-e zu erzeugen, die jeweils als versteckter Vektor bezeichnet werden. In einigen Ausführungsformen kodiert der Encoder
310 die Eingangssequenz, z.B. wobei jeder LSTM
510a-e einen entsprechenden Wortvektor
320a-e aufnimmt und den jeweiligen versteckten Vektor
520a-e ausgibt. Der Encoder
310 wird vorwärts betrieben, so dass Informationen, die von einem LSTM-Encoder
510 erzeugt werden, der mit einem Wortvektor
320 arbeitet, der früher in der Eingangssequenz erscheint, an LSTM-Encoder
510 weitergeleitet werden, die mit Wortvektoren
320 arbeiten, die später in der Sequenz erscheinen. Dies ermöglicht es den versteckten Vektoren der späteren LSTM-Encoder
510, Informationen für die früheren Wortvektoren
320 aufzunehmen. In einigen Ausführungsformen wird der Encoder
310 auch rückwärts betrieben, so dass die LSTM Encoder
510a-e versteckte Vektoren erzeugen oder ausgeben können, die Informationen von Wörtern enthalten, die später in der Sequenz erscheinen. Diese rückwärts gerichteten Ausgabevektoren können mit den vorwärts gerichteten Ausgabevektoren verknüpft werden, um einen nützlicheren versteckten Vektor zu erhalten. Jedes Paar von Vorwärts- und Rückwärts-LSTMs kann als Einheit behandelt werden und wird typischerweise als bidirektionaler LSTM bezeichnet. Ein bidirektionaler LSTM-Encoder beinhaltet Informationen, die dem jeweiligen Wort vor und nach folgen. Der auf maschinelle Übersetzung geschulte LSTM kann als MT-LSTM bezeichnet werden. Der erste bidirektionale LSTM
510a verarbeitet seine gesamte Sequenz, bevor er die Ausgänge an den zweiten LSTM
510b weiterleitet; der zweite bidirektionale LSTM
510b macht dasselbe, und so weiter. Jeder der bidirektionalen LSTMs (oder biLSTM) erzeugt zu jedem Zeitschritt i eine Ausgabe als
hi sowie die Verkettung
gemäß:
wobei x langen Kurzzeitgedächtnis-Netzwerk entspricht. Der Encoder
310 mit bidirektionalen LSTMs
510a-e nimmt eine Sequenz von Wortvektoren
320a-e auf, führt eine Vorwärts- und eine Rückwärts-LSTM-Operation aus, verkettet die Ausgaben entsprechend der gleichen Eingabe und gibt die resultierende Sequenz von versteckten Vektoren h 520a-e für den ersten Sprachsatz (z.B. Englisch) zurück.
Für die maschinelle Übersetzung liefert der MT-LSTM den Kontext für einen Aufmerksamkeits-Decoder, der eine Verteilung über die Ausgabewörter
bei jedem Zeitschritt t erzeugt, wobei H sich auf die Elemente von h bezieht, die entlang der Zeitdimension gestapelt sind.
-
Bei einem Prozess
606 wird der Decoder
330 mit den Endzuständen/versteckten Vektoren h 520a-e von Encoder
310 initialisiert. Der Decoder
330 beinhaltet oder wird mit einem anderen neuronalen Netz implementiert, das diese versteckten Vektoren h 520a-e referenziert, während er den zweiten oder Zielsprache (z.B. Deutsch) Satz erzeugt oder übersetzt. Wie der Encoder
310 kann der Decoder
330 in einigen Ausführungsformen einen oder mehrere LSTMs
530a-b beinhalten oder mit diesen implementiert werden, wobei diese bidirektional sein können. Zum Zeitpunkt t verwendet der Decoder
330 zunächst den zweilagigen, unidirektionalen LSTM, um einen versteckten Zustandsvektor
basierend auf der vorherigen Zieleinbettung (z
t-1) und einem kontextabhängigen versteckten Zustand (h̃
t-1) zu erzeugen:
Der erste des Decoders LSTMs
530a wird aus den Endzuständen h des Encoders
310 initialisiert und liest zum Start einen speziellen deutschen Wortvektor
540a ein.
-
Bei einem Prozess
610 wird ein Wort aus der Sequenz in der ersten Sprache ausgewählt. In einigen Ausführungsformen blickt ein Aufmerksamkeitsmechanismus
560 auf die versteckten Vektoren
520a-e zurück, um zu entscheiden, welches Wort des Satzes der ersten Sprache (z.B. Englisch) als nächstes übersetzt werden soll. Der Aufmerksamkeitsmechanismus
560 berechnet einen Vektor von Aufmerksamkeitsgewichten
α, der die Relevanz jedes Codierungszeitschritts für den aktuellen Decoderzustand darstellt.
-
Bei einem Prozess
612 erzeugt der Aufmerksamkeitsmechanismus
560 einen neuen Vektor
570, der als kontextangepasster Zustand bezeichnet werden kann. Der Aufmerksamkeitsmechanismus
560 verwendet die Gewichte α als Koeffizienten in einer Aufmerksamkeitssumme, die mit dem Decoderzustand verkettet ist und durch eine tanh-Schicht geleitet wird, um den kontextangepassten versteckten Zustand h̃ zu bilden:
Mit anderen Worten, der Aufmerksamkeitsmechanismus
560 verwendet den Decoderzustandsvektor
550a, um zu bestimmen, wie wichtig jeder versteckte Vektor
520a-e ist, und erzeugt dann den kontextabhängigen Zustand
570, um seine Beobachtung aufzuzeichnen.
-
Bei einem Prozess
614 betrachtet ein Generator
580 den kontextabhängigen Zustand
570, um das Wort in der zweiten Sprache (z.B. Deutsch) zu bestimmen, das ausgegeben werden soll. Der kontextangepasste Zustand
570 wird an den nächsten LSTM
540 zurückgegeben, so dass er einen genauen Überblick darüber hat, was er bereits übersetzt hat. Die Verteilung über die Ausgabewörter wird durch eine abschließende Transformation des kontextangepassten versteckten Zustands erzeugt:
-
Bei einem Prozess 616 wird bestimmt, ob das aktuelle Wort in der ersten Sprache das letzte Wort in der Sequenz ist. Wenn nicht, wiederholt der Decoder 330 die Prozesse 610-616, bis er die Generierung der übersetzten Wortsequenz in der zweiten Sprache abgeschlossen hat.
-
In einigen Beispielen verwendet das Training eines MT-LSTM des Encoders 310 feste 300-dimensionale Wortvektoren, wie z.B. das CommonCrawl-840B GloVe Modell für englische Wortvektoren. Diese Wortvektoren werden während des Trainings vollständig fixiert, so dass das MT-LSTM lernt, wie man die vortrainierten Vektoren zur Übersetzung verwendet. Die versteckte Größe der LSTMs in allen MT-LSTMs beträgt 300. Da alle MT-LSTMs bidirektional sind, geben sie 600-dimensionale Vektoren aus. Der Encoder 310 kann mit stochastischem Gradientenabstieg mit einer Lernrate trainiert werden, die bei 1 beginnt und bei erstmaliger Erhöhung der Validierungsverwirrung (validation perplexity) in jeder Epoche um die Hälfte abfällt. Ein Dropout mit einem Verhältnis von 0:2 kann auf die Ein- und Ausgänge aller Schichten von Encoder 310 und Decoder 330 angewendet werden.
-
Nach Abschluss des Trainings können die vortrainierten Encoder verwendet werden, um die Leistung von neuronalen Modellen zu verbessern, die für andere Aufgaben in der natürlichen Sprachverarbeitung (NLP) trainiert wurden. Die LSTMs
510, die als Encoder für die maschinelle Übersetzung ausgebildet wurden, können extrahiert und ihr Lernen auf nachgelagerte NLP-Aufgaben (z.B. Klassifizierung oder Fragebeantwortung) übertragen werden. Die vortrainierten LSTMs, die als MT-LSTM bezeichnet werden können, können verwendet werden, um versteckte Vektoren für andere Sätze oder Wortsequenzen in der Muttersprache auszugeben. Diese versteckten Vektoren der maschinellen Übersetzung, wenn sie als Input für ein anderes NLP-Modell verwendet werden, liefern oder dienen als kontextspezifische Wortvektoren oder „Kontextvektoren“ (CoVe). Wenn w eine Sequenz von Wörtern ist und GloVe(w) die entsprechende Sequenz von Wortvektoren ist, die vom GloVe-Modell erzeugt wird, dann ist
die vom MT-LSTM erzeugte Sequenz von Kontextvektoren. Unter Bezugnahme auf
5 entspricht beispielsweise GloVe(w)
320a-e dem CoVe(w)
520a-e. In einigen Ausführungsformen kann für die nachgelagerte NLP-Aufgabe, für eine Eingabesequenz w, jeder Vektor in GloVe(w) mit seinem entsprechenden Vektor in CoVe(w) zu einer Vektorsequenz (w) verknüpft werden:
-
Einige Beispiele für Rechenvorrichtungen, wie beispielsweise die Rechenvorrichtung 100, können nicht-flüchtige, maschinenlesbare Medien beinhalten, die ausführbaren Code enthalten, der bei Ausführung durch einen oder mehrere Prozessoren (z.B. Prozessor 110) dazu führen kann, dass der eine oder die mehreren Prozessoren die Prozesse des Verfahrens 600 ausführen. Einige gängige Formen von maschinenlesbaren Medien, die die Prozesse des Verfahrens 600 beinhalten können, sind z.B. Diskette, flexible Diskette, Festplatte, Magnetband, jedes andere magnetische Medium, CD-ROM, jedes andere optische Medium, Lochkarten, Papierband, jedes andere physikalische Medium mit Lochmustern, RAM, PROM, EPROM, FLASH-EPROM, jeder andere Speicherchip oder -kassette und/oder jedes andere Medium, von dem ein Prozessor oder Computer zum Lesen geeignet ist.
-
7 ist ein vereinfachtes Diagramm, das ein System 700 zur Verarbeitung natürlicher Sprache gemäß einigen Ausführungsformen darstellt. Das System 700 beinhaltet einen oder mehrere Encoder 710, die für eine erste NLP-Aufgabe, wie beispielsweise die maschinelle Übersetzung, wie hierin beschrieben, vortrainiert und nun als Teil eines neuen Modells wiederverwendet werden. In einigen Ausführungsformen ist jeder Encoder 710 mit Encoder 310 konsistent. In einigen Ausführungsformen beinhaltet oder ist jeder Encoder 710 mit einem oder mehreren vortrainierten MT-LSTMs implementiert. Der vortrainierte Encoder 710 ist in der Lage, Kontextvektoren (CoVe) aus den Eingangswortvektoren 720 bereitzustellen oder zu erzeugen.
-
Die Wortvektoren 720 eines Modells können mit denen initialisiert werden, die durch Methoden wie word2vec, FastText oder GloVe erhalten werden, von denen jede eine Möglichkeit definiert, Wortvektoren mit nützlichen Eigenschaften zu lernen. In einigen Ausführungsformen werden die Wortvektoren 720 eines Modells zu Listen von Zufallszahlen initialisiert, bevor das Modell für eine bestimmte Aufgabe trainiert wird.
-
Das System 700 beinhaltet auch das neuronale Modell 730 zur Durchführung einer zweiten, spezifischen NLP-Aufgabe, wie z.B. Stimmungsanalyse (Stanford Sentiment Treebank (SST), IMDb), Frageklassifizierung (TREC), Folgenklassifizierung (Stanford Natural Language Inference Corpus (SNLI)), Fragebeantwortung (Stanford Question Answering Dataset (SQuAD)) und/oder dergleichen. In einigen Ausführungsformen ist das neuronale Modell 730 mit dem neuronalen Netz des Modells 130 konsistent. Das neuronale Modell 730 ist mit den Kontextvektoren (CoVe) von vortrainierten Encodern 710 ausgestattet. In einigen Ausführungsformen können die Kontextvektoren (CoVe) von Encoder 710 mit den Wortvektoren 720 (z.B. GloVe), die typischerweise als Eingabe in diese Art von neuronalen Modellen verwendet werden (siehe Gl. 6), und den Ergebnissen, die dem neuronalen Modell 730 zur Verfügung gestellt werden, hinzugefügt oder verknüpft werden. Dieser Ansatz verbessert die Leistung des neuronalen Modells 730 für Downstream-Aufgaben gegenüber den Baseline-Modellen, die allein mit vortrainierten Wortvektoren arbeiten. Im Allgemeinen können Kontextvektoren (CoVe) mit jedem neuronalen Modell 730 verwendet werden, das seine Eingaben als eine Sequenz von Vektoren darstellt. Experimente haben die Vorteile der Verwendung von vortrainierten MT-LSTMs zur Erzeugung von Kontextvektoren (CoVe) für neuronale Modelle gezeigt, die NLP-Aufgaben wie Textklassifizierung und Fragebeantwortungsmodelle durchführen. Für die Stanford Sentiment Treebank (SST) und den Stanford Natural Language Inference Corpus (SNLI) treibt die Verwendung von Kontextvektoren (CoVe) die Performance des Baseline-Modells auf den aktuellen Stand der Technik.
-
8 ist ein Diagramm, das ein System 800 für die Verarbeitung natürlicher Sprache unter Verwendung eines oder mehrerer Encoder 810 veranschaulicht, die auf eine NLP-Übersetzungsaufgabe gemäß einigen Ausführungsformen vortrainiert sind. In einigen Ausführungsformen ist jeder Encoder 810 mit den Encodern 310, 710 konsistent. Das System 800 kann ein mehrschichtiges neuronales Netz oder neuronales Modell 830 zur Durchführung einer bestimmten NLP-Aufgabe beinhalten oder mit diesem implementiert werden - wie z.B. Frageklassifizierung (TREC), Fragebeantwortung (SQuAD), Stimmungsanalyse (SST, IMDb), Folgenklassifizierung (SNLI) und/oder dergleichen - die sich von der NLP-Übersetzungsaufgabe unterscheidet. In einigen Ausführungsformen ist das neuronale Modell 830 mit dem neuronalen Modell 130, 730 konsistent.
-
Das neuronale Modell 830 des Systems 800 kann mit geeigneten Datensätzen für die spezifischen NLP-Aufgaben trainiert werden. So kann beispielsweise das Training des neuronalen Modells 830 für die Frageklassifizierung den kleinen TREC-Datensatz von offen domänen- und faktenbasierten Fragen verwenden, der in breite semantische Kategorien unterteilt ist, wie in Voorhees, et al., „The TREC-8 question answering track evaluation“, The Eighth Text Retrieval Conference, Band 1999, S. 83, näher beschrieben. Dieser Datensatz kann die fünfzig- oder sechsklassige Version von TREC sein, die als TREC-50 bzw. TREC-6 bezeichnet wird. Beide haben 4.300 Trainingsbeispiele, aber TREC-50 hat feinkörnige Etiketten. Für die Beantwortung von Fragen kann das neuronale Modell 830 mit dem Stanford Question Answering Dataset (SQuAD) trainiert werden, wie in Rajpurkar, et al., „SQuAD: 100,000+ questions for machine comprehension of text“, arXiv Preprint arXiv:1606.05250, eingereicht am 16. Juni 2016, der durch Verweis hierin aufgenommen wird. SQuAD ist ein umfangreicher Fragenbeantworter-Datensatz mit 87.599 Trainingsbeispielen und 10.570 Entwicklungsbeispielen. Beispiele bestehen aus einem Absatz aus der englischen Wikipedia und zugehörigen Frage-Antwort-Paaren über dem Absatz. SQuAD-Beispiele gehen davon aus, dass die Frage beantwortbar ist und die Antwort irgendwo im Absatz wörtlich enthalten ist. Für die Stimmungsanalyse kann das neuronale Modell 830 separat auf zwei Stimmungsanalyse-Datensätzen trainiert werden: der Stanford Sentiment Treebank (SST) (wie näher beschrieben in Socher, et al., „Recursive Deep Models for semantic compositionality over a sentiment Treebank“, Empirical Methods in Natural Language Processing, 2013, die durch Verweis hierin aufgenommen wird) und der IMDb-Datensatz (wie näher beschrieben in Maas, et al., „Learning Word Vectors for Sentiment Analysis“, In Proceedings of the 49th Annual Meetings of the Association for Computational Linguistics: Human Language Technologies, S. 142-150, Portland, Oregon, USA, Juni 2011. Gesellschaft für Computerlinguistik. URL http://www.aclweb.org/anthology.P11-1015], die durch Verweis hierin aufgenommen wird). Beide Datensätze umfassen Filmkritiken und deren Stimmung. Es wird die Binärversion jedes Datensatzes verwendet, ebenso wie die Fünfklassenversion von SST. IMDb enthält 22.500 mehrsätzige Rezensionen, die jeweils auf die ersten 200 Wörter verkürzt werden können. SST-2 enthält 56.400 Beispiele mit der Klasse „neutral“ entfernt und allen Teilbäumen enthalten, und SST-5 enthält 94.200 Bewertungen mit allen Klassen und Teilbäumen. Für Folgenklassifizierung (entailment) kann das neuronale Modell 830 mit dem Stanford Natural Language Inference Corpus (SNLI) trainiert werden, wie in Bowman, et al., „Recursive neuronale Netzneuronale Netze zum Erlernen der logischen Semantik“, arXiv Preprint arXiv:1406.1827, eingereicht am 6. Juni 2014, beschrieben. Das SNLI verfügt über 550.152 Trainings-, 10.000 Validierungs- und 10.000 Testbeispiele. Jedes Beispiel besteht aus einer Prämisse, einer Hypothese und einer Bezeichnung, die angibt, ob die Prämisse eine Hypothese beinhaltet, widerspricht oder neutral in Bezug auf die Hypothese ist.
-
Wie in 8 dargestellt, beinhaltet das System 800 ein neuronales Modell 830 für ein General Biattentive Classification Network (BCN). Dieses Modell 830 ist sowohl für die Klassifizierung von Einzel- als auch von Zwei-Sequenz-Aufgaben ausgelegt. Bei Einzelsequenz-Aufgaben wird die Eingangswortsequenz dupliziert, um zwei Sequenzen zu bilden.
-
Die beiden Eingangssequenzen wx und wy sind als Wortvektoren 820 (z.B. Glove(w)) an System 800 an vortrainierten Encodern 810 vorgesehen. In einigen Ausführungsformen ist jeder Encoder 810 mit den Encodern 310, 710 konsistent. Die Encoder 810 sind auf die NLP-Aufgabe der maschinellen Übersetzung vortrainiert und stellen somit entsprechende Kontextvektoren (CoVe(w)) aus den Eingangswortvektoren 820 zur Verfügung oder erzeugen diese. In einigen Ausführungsformen wird jeder Wortvektor 820 (z.B. Glove(w)) mit seinen entsprechenden Kontextvektoren (CoVe(w)) verkettet oder angehängt, um Sequenzen von Vektoren w̃x und w̃y zu erzeugen, wie hierin beschrieben (z.B. Glg. 6). Die Vektorsequenzen w̃x und w̃y werden als Eingabe für den aufgabenspezifischen Teil des Modells 830 bereitgestellt.
-
Das neuronale Netz oder Modell 830 wird mit den vortrainierten Encodern 810 trainiert. In einigen Ausführungsformen werden die Encoder 810 nicht weiter trainiert, wenn das neuronale Netz oder das Modell 830 trainiert wird.
-
Das Modell
830 beinhaltet eine oder mehrere Gleichrichter-Lineareinheiten (rectifier linear units, ReLUs)
832, die die Eingangsvektorsequenzen w̃
x und w̃
y empfangen. Die ReLUs 832 implementieren oder führen eine Funktion f aus, die ein Feedforward-Netzwerk mit ReLU-Aktivierung anwendet (wie näher beschrieben in Nair et al., „Rectified linear units improve restricted Boltzmann machines“, Proceedings of the 27th International Conference on Machine Learning, 2010, die durch Verweis hierin aufgenommen wird), auf jedes Element von w̃
x and w̃
y. Die Encoder
834, die jeweils einen bidirektionalen LSTM (biLSTM) beinhalten oder als solcher implementiert werden können, verarbeiten die resultierenden Sequenzen, um aufgabenspezifische Darstellungen (
x und
y) zu erhalten:
Diese Sequenzen werden jeweils entlang der Zeitachse gestapelt, um die Matrizen
X und
Y zu erzeugen.
-
Um voneinander unabhängige Repräsentationen zu berechnen, verwendet das Modell 830 einen Bi-Aufmerksamkeitsmechanismus 836, wie in Seo, et al., „Bidirectional attention flow for machine comprehension“, International Conference on Learning Representations, 2017, und Xiong, et al., „Dynamic coattention networks for question answer“, International Conference on Learning Representations, 2017, beschrieben, die beide durch Bezugnahme hierin aufgenommen werden. Biattention bedingt jede Darstellung auf der anderen.
-
Die Verwendung des Bi-Aufmerksamkeitsmechanismus 836 im neuronalen Modell 830 bietet beispielsweise bei einigen NLP-Klassifizierungsaufgaben wie der Folgenklassifizierung (entailment classification) und der Stimmungsanalyse oder Stimmungsklassifizierung einen Vorteil. Die Implikationsklassifizierung beinhaltet die Verarbeitung von zwei Wortsequenzen, für die es eine Form von Beziehung geben kann - z.B. das Bestimmen, ob eine Sequenz, die wahr ist, die andere Sequenz mit sich bringt, das Bestimmen, ob eine Sequenz, die wahr ist, die Negation der anderen Sequenz mit sich bringt, oder das Bestimmen, ob eine Sequenz, die wahr ist, die andere entweder wahr oder falsch sein lässt. Ein Beispiel für Sequenzen zur Klassifizierung von Engagements könnte sein: (wx ) „Zwei Frauen diskutieren über Schaltkreise“, und (wy ) „zwei Leute diskutieren über Technologie.“ In diesem Beispiel beinhaltet die Sequenz wx die Sequenz wy . Die Stimmungs-Klassifizierung zielt darauf ab, die Einstellung oder das Stimmungsbild eines Sprechers oder Autors einer Wortsequenz in Bezug auf ein Thema zu bestimmen. Jede dieser Sequenzen könnte einem entsprechenden Kanal (z.B. als Eingang für ReLU 832) im neuronalen Modell 830 bereitgestellt werden. Ein Beispiel für eine Sequenz zur Folgenklassifizierung könnte sein: (wx ) „Dieser Film war Zeitverschwendung.“ Diese Sequenz könnte wiederholt und jedem der Kanäle im neuronalen Modell 830 zur Verfügung gestellt werden. In einigen Ausführungsformen führt der Bi-Aufmerksamkeitsmechanismus 836 zu einem besseren Ergebnis für die NLP-Klassifikationsaufgabe, indem er die Aufmerksamkeit mit elementaren Merkmalen der Klassifizierung kombiniert.
-
Der Bi-Aufmerksamkeitsmechanismus (biattention mechanism)
836 berechnet zunächst eine Affinitätsmatrix A = XY
T. Der Bi-Aufmerksamkeitsmechanismus
836 extrahiert dann die Aufmerksamkeitsgewichte (
Ax und
Ay ) mit spaltenweiser Normalisierung:
was eine Form der Selbstaufmerksamkeit sein kann, wenn die aufgabenspezifischen Darstellungen gleich sind (x = y). Als nächstes verwendet der Bi-Aufmerksamkeitsmechanismus
836 Kontextzusammenfassungen (
Cx and
Cy )
um jede Sequenz auf die andere zu konditionieren.
-
Zwei separate Integratoren
838 integrieren die Konditionierungsinformationen (erzeugt aus dem Bi-Aufmerksamkeitsmechanismus
836) in die aufgabenspezifischen Darstellungen (
x und
y) für jede Eingabesequenz. In einigen Ausführungsformen ist jeder Integrator
838, der einen einschichtigen biLSTM beinhalten oder mit ihm implementiert werden kann. Die biLSTMs arbeiten mit der Verkettung der ursprünglichen Darstellungen (um sicherzustellen, dass keine Informationen in der Konditionierung verloren gehen), ihren Unterschieden von den Kontextzusammenfassungen (
Cx und
Cy , um die Differenz zu den Originalsignalen explizit zu erfassen) und den element-weisen Produkten zwischen Originalen und Kontextzusammenfassungen (um die Originalsignale zu verstärken oder zu dämpfen).
-
Pool-Mechanismen
840 aggregieren die Ausgaben der bidirektionalen LSTMs der Integratoren
838 durch Pooling entlang der Zeitdimension. In einigen Ausführungsformen kann das Max- und Mittelwertpooling verwendet werden, um Features zu extrahieren. In einigen Ausführungsformen wurde festgestellt, dass das Hinzufügen von Min-Pooling und einer parameterlosen Form des selbstständigen Poolings bei einigen Aufgaben hilfreich ist. Jede Art von Pooling erfasst eine andere Perspektive auf die konditionierten Sequenzen. Das selbstaufmerksame (self-attentive) Pooling berechnet Gewichte (
βx und
βy ) für jeden Zeitschritt der Sequenz:
Die Gewichte (
βx und
βy ) werden verwendet um gewichtete Summierungen (
xself und
yself ) von jeder Sequenz zu erhalten:
-
Die gepoolten Darstellungen werden zu einer gemeinsamen Darstellung (
xpool und
ypool ) für alle Eingaben zusammengefasst:
-
Für eine NLP-Aufgabe der Klassifizierung werden die zusammengeführten Darstellungen bereitgestellt oder in die Maxout-Schichten 842 eingegeben. Die Maxout-Schichten 842 können als dreischichtige, Batch-normalisierte Schichten implementiert werden (wie näher beschrieben in Ioffee, et al., „Batch normalization: Accelerating deep network training by reducing internal covariate shift", Proceedings of the 32nd International Conference on Machine Learning, 2015, durch Verweis hierin aufgenommen) maxout Netzwerk (wie in Goodfellow, et al., „Maxout networks", Proceedings of the 30th Annual Conference on Machine Learning, 2013, die durch Verweis hierin aufgenommen wird), um eine Wahrscheinlichkeitsverteilung über mögliche Klassen zu erzeugen.
-
Wie vorstehend erläutert und hier weiter betont, ist 8 nur ein Beispiel für ein System zur natürlichen Sprachverarbeitung, das den Umfang der Ansprüche nicht übermäßig einschränken sollte. Ein Fachmann der Technik würde viele Variationen, Alternativen und Modifikationen erkennen. In einigen Ausführungsformen kann das System 800 so modifiziert werden, dass es eine andere NLP-Aufgabe erfüllt, wie z.B. die Beantwortung von Fragen. Für eine NLP-Aufgabe der Fragebeantwortung werden die aufgabenspezifischen Sequenzen x und y wie bei der Klassifizierung erhalten (Eq. 7 und Eq. 8), mit der Ausnahme, dass die Funktion f durch eine Funktion g ersetzt wird, die anstelle einer ReLU-Aktivierung eine tanh-Aktivierung verwendet. In diesem Fall ist eine der Sequenzen das Dokument und die andere die Frage im Fragen-Dokument-Paar. Diese Sequenzen x und y werden dann durch den Coattention- und Dynamikdecoder geleitet, der beispielsweise als Dynamic Coattention Network (DCN) implementiert ist, wie in Xiong, et al., „Dynamic memory networks for visual and textual question answering“, In Proceedings of the 33rd International Conference on Machine Learning, Seiten 2397-2406, 2016, das hier durch Verweis aufgenommen wird, beschrieben.
-
Die 9 und 10 sind vereinfachte Diagramme, die die Leistung von Systemen zur Verarbeitung natürlicher Sprache vergleichen, die auf unterschiedlichen Eingabekodierungen basieren. Diese 9 und 10 veranschaulichen, wie unterschiedlich die Eingangsdarstellungen - z.B. GloVe allein, GloVe plus CoVe, GloVe plus Char und GloVe plus CoVe plus Char - die endgültige Performance von NLP-Aufgaben wie Stimmungsanalyse, Frageklassifizierung, Entailment-Klassifizierung und Fragenbeantwortung beeinflussen.
-
Ebenso ist 11 eine Tabelle, die die Leistungsergebnisse von Systemen zur Verarbeitung natürlicher Sprache veranschaulicht, die auf unterschiedlichen Eingabedarstellungen (SST-2, SST-5, IMDb, TREC-6, TREC-50, SNLI, SQuaAD) und mit verschiedenen Trainingssets (MT-Small, MT-Medium und MT-Large) für den Encoder (CoVe-S, CoVe-M, CoVe-L) basieren.
-
Die 9 und 10 zeigen, dass Modelle, die CoVe neben GloVe verwendeten, eine höhere Leistung erzielten als Modelle, die nur GloVe verwendeten. 11 zeigt, dass die Verwendung von CoVe in Gl. 6 größere Verbesserungen bringt als die Verwendung von Zeichen-N-gram-Einbettungen, wie im Einzelnen beschrieben in Hashimoto, et al., „A joint many-task model: Growing a neural network for multiple NLP tasks“, arXiv Preprint arXiv 1611.01587, eingereicht am 5. November 2016, das durch Verweis hierin aufgenommen wird. Es zeigt auch, dass die Änderung von Gl. 6 durch zusätzliches Anhängen von Zeichen n-gram-Einbettungen die Performance bei einigen NLP-Aufgaben noch weiter steigern kann. Dies deutet darauf hin, dass die von CoVe bereitgestellten Informationen sowohl die von GloVe bereitgestellten Informationen auf Wortebene als auch die von Zeichen n-gram-Einbettungen bereitgestellten Informationen auf Zeichenebene ergänzen.
-
Die 9-11 verdeutlichen den Vorteil oder den Nutzen der Übertragung von Wissen von einem Encoder, der auf maschinelle Übersetzung vorbereitet ist, auf eine Vielzahl anderer nachgelagerter NLP-Aufgaben. In allen Fällen haben Modelle, die Kontextvektoren (CoVe) verwenden, besser abgeschnitten als die Baselines, die eine zufällige Wortvektorinitialisierung verwendeten, Baselines, die vortrainierte Wortvektoren aus einem GloVe-Modell verwendeten, und Baselines, die Wortvektoren aus einem GloVe-Modell zusammen mit Zeichen n-Gram-Einbettungen verwendeten.
-
Obwohl illustrative Ausführungsformen gezeigt und beschrieben wurden, wird in der vorstehenden Offenbarung eine Vielzahl von Modifikationen, Änderungen und Substitutionen erwogen, und in einigen Fällen können einige Merkmale der Ausführungsformen ohne entsprechende Verwendung anderer Merkmale verwendet werden. Jemand mit gewöhnlichen Fähigkeiten in der Kunst würde viele Variationen, Alternativen und Modifikationen erkennen. Daher sollte der Anwendungsbereich der vorliegenden Anmeldung nur durch die folgenden Ansprüche eingeschränkt werden, und es ist angemessen, die Ansprüche breit und in einer Weise auszulegen, die dem Anwendungsbereich der hierin offenbarten Ausführungsformen entspricht.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 15982841 [0001]
- US 62508977 [0001]
- US 62/536959 [0001]
-
Zitierte Nicht-Patentliteratur
-
- Ioffee, et al., „Batch normalization: Accelerating deep network training by reducing internal covariate shift“, Proceedings of the 32nd International Conference on Machine Learning, 2015 [0053]
- Goodfellow, et al., „Maxout networks“, Proceedings of the 30th Annual Conference on Machine Learning, 2013 [0053]