-
HINTERGRUND
-
Diese Spezifikation betrifft Übersetzen von Text unter Verwendung neuronaler Netzwerke.
-
Maschinenlernmodelle empfangen eine Eingabe und generieren eine Ausgabe, z. B. eine vorhergesagte Ausgabe, basierend auf der empfangenen Eingabe. Einige Maschinenlernmodelle sind parametrische Modelle und generieren die Ausgabe basierend auf der empfangenen Eingabe und auf Werten der Parameter des Modells.
-
Einige Maschinenlernmodelle sind tiefe Modelle, die mehrere Schichten von Modellen verwenden, um eine Ausgabe für eine empfangene Eingabe zu generieren. Beispielsweise ist ein tiefes neuronales Netzwerk ein tiefes Maschinenlernmodell, das eine Ausgabeschicht und eine oder mehrere verborgene Schichten beinhaltet, wovon jede eine nicht lineare Transformation auf eine empfangene Eingabe anwendet, um eine Ausgabe zu generieren.
-
Einige neuronale Netzwerke sind wiederkehrende neuronale Netzwerke. Ein wiederkehrendes neuronales Netzwerk ist ein neuronales Netzwerk, das eine Eingabesequenz empfängt und eine Ausgabesequenz von der Eingabesequenz generiert. Insbesondere verwendet ein wiederkehrendes neuronales Netzwerk einige oder alle der internen Status des Netzwerks nach dem Verarbeiten einer vorherigen Eingabe in der Eingabesequenz durch Erzeugen einer Ausgabe von der aktuellen Eingabe in der Eingabesequenz.
-
KURZDARSTELLUNG
-
Diese Spezifikation beschreibt ein als Computerprogramme auf einem oder mehreren Computern an einem oder mehreren Standorten implementiertes System, das Text unter Verwendung neuronaler Netzwerke von einer Quellsprache in eine Zielsprache übersetzt.
-
In einigen Aspekten des beschriebenen Gegenstandes ist ein durch einen oder mehrere Computer implementiertes neuronales Maschinenübersetzungssystem zum Empfangen einer Eingabesequenz von Eingabe-Token konfiguriert, die eine erste Sequenz von Wörtern in einer ersten natürlichen Sprache darstellen, und zum Generieren einer Ausgabesequenz von Ausgabe-Token, die eine zweite Sequenz von Wörtern darstellt, die eine Übersetzung der ersten Sequenz in eine zweite natürliche Sprache ist, und umfasst: ein neuronales Codierer-Netzwerk und ein Decodierer-Subsystem. Das neuronale Codierer-Netzwerk umfasst wiederum: eine Eingabevorwärts long-short-term memory (LSTM) Schicht (auf Deutsch: Lang-Kurzzeitspeicherschicht), die zum Verarbeiten von jedem Eingabe-Token in der Eingabesequenz in einer Vorwärtsreihenfolge zum Generieren einer jeweiligen Vorwärtsdarstellung jedes Eingabe-Tokens konfiguriert ist, eine Eingaberückwärts-LSTM-Schicht, die zum Verarbeiten von jedem Eingabe-Token in der Eingabesequenz in einer Rückwärtsreihenfolge zum Generieren einer jeweiligen Rückwärtsdarstellung von jedem Eingabe-Token konfiguriert ist, eine Kombinationsschicht, die konfiguriert ist, um für jedes Eingabe-Token in der Eingabesequenz die Vorwärtsdarstellung und die Rückwärtsdarstellung des Eingabe-Tokens zum Generieren einer kombinierten Darstellung des Eingabe-Tokens zu kombinieren, und eine Vielzahl verborgener LSTM-Schichten, die zum Generieren einer jeweiligen codierten Darstellung von jedem der Eingabe-Token in der Eingabesequenz konfiguriert sind. Das Decodierer-Subsystem ist zum Empfangen der jeweiligen codierten Darstellung von jedem der Eingabe-Token in der Eingabesequenz, und zum Verarbeiten der codierten Darstellungen konfiguriert, um die Ausgabesequenz zu generieren.
-
In einigen dieser Aspekte werden die verborgenen LSTM-Schichten nacheinander in einem Stapel angeordnet, wobei die Vielzahl verborgener LSTM-Schichten mindestens sieben LSTM-Schichten umfasst. In einigen dieser Aspekte werden mindestens zwei der Vielzahl verborgener LSTM-Schichten mit einer Restverbindung verbunden.
-
In einigen dieser Aspekte umfasst das Decodierer-Subsystem: ein neuronales Decodierer-Netzwerk, wobei das neuronale Decodierer-Netzwerk umfasst: eine Vielzahl von LSTM-Schichten, die in einem Stapel aufeinander angeordnet, und für jede von einer Vielzahl von Positionen in der Ausgabesequenz konfiguriert sind zum: Empfangen eines Aufmerksamkeitskontextvektors und des Ausgabe-Tokens an einer vorangegangenen Position in der Ausgabesequenz, und Verarbeiten des Aufmerksamkeitskontextvektors und des Tokens an der vorangegangenen Position in der Ausgabesequenz zum Generieren einer LSTM-Ausgabe für die Position, und eine Softmax-Ausgabeschicht, wobei die Softmax-Ausgabeschicht zum Empfangen der LSTM-Ausgabe für die Position für jede der Vielzahl von Positionen, und zum Generieren einer jeweiligen Punktzahl für jedes Ausgabe-Token in einem Vokabular von Ausgabe-Token konfiguriert ist.
-
In einigen dieser Aspekte umfasst die Vielzahl von LSTM-Schichten in dem Decodierer mindestens acht LSTM-Schichten. In einigen dieser Aspekte umfasst die Vielzahl von LSTM-Schichten in dem Decodierer mindestens acht LSTM-Schichten. In einigen dieser Aspekte sind mindestens zwei der Vielzahl in dem Decodierer mit einer Restverbindung verbunden. In einigen dieser Aspekte ist eine erste LSTM-Schicht in dem Stapel für jede der Vielzahl von Positionen konfiguriert zum: Empfangen einer ersten Schichteingabe, die den Aufmerksamkeitskontextvektor umfasst, einer Schichtausgabe, die durch eine LSTM-Schicht direkt unter der ersten LSTM-Schicht in dem Stapel generiert wird, und einer Schichteingabe in die LSTM-Schicht direkt unter der ersten LSTM-Schicht in dem Stapel; und Verarbeiten der ersten Schichteingabe gemäß einem aktuellen verborgenen Status der ersten LSTM-Schicht zum Generieren einer ersten Schichtausgabe und zum Aktualisieren des aktuellen verborgenen Status.
-
In einigen dieser Aspekte umfasst das Decodierer-Subsystem ferner: ein Aufmerksamkeits-Subsystem, wobei das Aufmerksamkeits-Subsystem für jede der Vielzahl von Positionen konfiguriert ist zum: Empfangen einer Aufmerksamkeitseingabe, die eine unterste Schichtausgabe umfasst, die durch eine unterste LSTM-Schicht in dem Stapel von LSTM-Schichten in dem neuronalen Decodierer-Netzwerk für die vorangegangene Position generiert wird; und Verarbeiten der Aufmerksamkeitseingabe zum Generieren des Aufmerksamkeitskontextvektors für den Zeitschritt.
-
In einigen dieser Aspekte umfasst Verarbeiten der untersten Schichtausgabe und der jeweiligen codierten Darstellung von jedem der Eingabe-Token in der Eingabesequenz zum Generieren des Aufmerksamkeitskontextvektors für den Zeitschritt für jeden der Vielzahl von Zeitschritten: Verarbeiten der untersten Schichtausgabe und der codierten Darstellungen durch eine oder mehrere Netzwerkschichten zum Generieren einer jeweiligen Punktzahl für jedes der Eingabe-Token; Generieren eines jeweiligen Gewichts für jedes der Eingabe-Token von den jeweiligen Punktzahlen; und Bestimmen einer gewichteten Summe der codierten Darstellung gemäß den Gewichten.
-
In einigen dieser Aspekte sind die Eingabe- und Ausgabe-Token Wortteile.
-
In einigen dieser Aspekte sind das neuronale Codierer-Netzwerk und das Decodierer-Subsystem zum Ausführen quantifizierter Berechnungen während des Erzeugens der Ausgabesequenz konfiguriert.
-
Andere Aspekte beinhalten ein oder mehrere Computerspeichermedien, die mit Anweisungen codiert sind, die, wenn sie durch einen oder mehrere Computer ausgeführt werden, den einen oder die mehreren Computer zum Implementieren des neuronalen Maschinenübersetzungssystems von einem beliebigen der oben genannten Aspekte veranlassen.
-
Einige andere Aspekte beinhalten Computerprogrammprodukte, die Anweisungen enthalten, die, wenn sie durch einen Prozessor oder mehrere Prozessoren ausgeführt werden, den einen Prozessor oder die mehreren Prozessoren veranlassen, ein Verfahren zum Erzeugen einer Ausgabesequenz von Ausgabe-Token durchzuführen, die eine zweite Sequenz von Wörtern darstellt, die eine Übersetzung der ersten Sequenz von Wörtern in eine zweite natürliche Sprache ist, die die folgenden Aktionen beinhaltet: Erhalten einer Vielzahl von Kandidatenausgabesequenzen von einem neuronalen Maschinenübersetzungssystem; Aufrechterhalten höchstens einer zuvor festgelegten Anzahl der Kandidatenausgabesequenzen in einem Strahl zur weiteren Berücksichtigung durch das neuronale Maschinenübersetzungssystem, umfassend: Zuweisen einer jeweiligen Punktzahl für jede Kandidatenausgabesequenz; Einstufen der Kandidatenausgabesequenzen basierend auf den jeweiligen Punktzahlen; Entfernen aller Kandidatenausgabesequenzen von dem Strahl außer der zuvor festgelegten Anzahl von am höchsten eingestuften Kandidatenausgabesequenzen gemäß der Rangfolge; Bestimmen, ob eine beliebige der Kandidatenausgabesequenzen in dem Strahl als eine finalisierte Kandidatenausgabesequenz durch das neuronale Maschinenübersetzungssystem identifiziert wurde; und wenn mindestens eine der Kandidatenausgabesequenzen als eine finalisierte Kandidatenausgabesequenz identifiziert wurde: Entfernen aller Kandidatenausgabesequenzen von dem Strahl, die eine Punktzahl aufweisen, die mehr als ein Schwellenwert ist, der unter der Punktzahl für eine am höchsten eingestufte finalisierte Kandidatenausgabesequenz liegt.
-
In einigen dieser Aspekte umfasst Bestimmen, ob beliebige der Kandidatenausgabesequenzen als eine finalisierte Kandidatenausgabesequenz durch das neuronale Maschinenübersetzungssystem identifiziert wurden: Bestimmen, ob eine beliebige Kandidatenausgabesequenz mit einem zuvor festgelegten Satzende-Ausgabe-Token endet.
-
In einigen dieser Aspekte umfasst Zuweisen einer jeweiligen Punktzahl zu jeder Kandidatenausgabesequenz: Bestimmen einer Log-Likelihood (auf Deutsch: Protokollwahrscheinlichkeit) der Kandidatenausgabesequenz gemäß den durch das neuronale Maschinenübersetzungssystem generierten Ausgabepunktzahlen; und Normalisieren der Log-Likelihood basierend auf einer Anzahl von Ausgabe-Token in der Kandidatenausgabesequenz zum Generieren einer längennormalisierten Log-Likelihood.
-
In einigen dieser Aspekte umfasst Zuweisen einer jeweiligen Punktzahl zu jeder Kandidatenausgabesequenz ferner: Modifizieren der längennormalisierten Log-Likelihood unter Verwendung einer Abdeckungsstrafe, um Kandidatenausgabesequenzen zu begünstigen, die die Wörter in der ersten Sequenz vollständig abdecken.
-
In einigen dieser Aspekte, wenn alle der Kandidatenausgabesequenzen in dem Strahl als eine finalisierte Kandidatenausgabesequenz durch das neuronale Maschinenübersetzungssystem identifiziert wurden, beinhalten die Aktionen ferner Auswählen einer Kandidatenausgabesequenz mit der höchsten Punktzahl als die Ausgabesequenz.
-
Andere Aspekte beinhalten ein oder mehrere Computerspeichermedien, die mit Anweisungen codiert sind, die, wenn sie durch einen oder mehrere Computer ausgeführt werden, den einen oder die mehreren Computer zum Ausführen der Vorgänge nach einem beliebigen der oben genannten Verfahren veranlassen.
-
Andere Aspekte beinhalten ein System, das einen oder mehrere Computer und ein oder mehrere Speichergeräte, die Anweisungen speichern, die, wenn sie durch einen oder mehrere Computer ausgeführt werden, den einen oder die mehreren Computer nach einem beliebigen der oben genannten Verfahren veranlassen, die Vorgänge auszuführen.
-
Bestimmte Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands können so implementiert werden, dass sie einen oder mehrere der folgenden Vorteile verwirklichen.
-
Durch Verwenden einer bidirektionalen LSTM-Schicht als die unterste Schicht des Codierers kann der Kontext für die Wörter in der Eingabesequenz effektiv erfasst werden, was die Übersetzungsqualität verbessert. Da die anderen Codiererschichten unidirektional sind, kann Parallelisierung während Berechnungen immer noch erreicht werden, wodurch Trainings- und in manchen Fällen Schlussfolgerungszeiten reduziert werden.
-
Durch Verwenden tiefer Stapel von LSTM-Schichten im Codierer und im Decodierer, z. B. 8 oder mehr gesamte LSTM-Schichten in jedem von dem Decodierer und dem Codierer, sind der Codierer und Decodierer tief genug, um feine Unregelmäßigkeiten in der Quell- und Zielsprache zu erfassen, was die Genauigkeit von durch das System generierten Übersetzungen verbessert.
-
Durch Verbinden der untersten Schicht des Decodierers mit der obersten Schicht des Codierers durch das Aufmerksamkeits-Subsystem kann Parallelismus erhöht, und Trainingszeit kann dadurch verringert werden, wobei immer noch ein effektives Aufmerksamkeitsschema verwendet wird, das es dem neuronalen Decodierer-Netzwerk ermöglicht, die Quellsequenz genau zu übersetzen. Das heißt, weil das Aufmerksamkeits-Subsystem Eingaben von der untersten LSTM-Schicht in dem Decodierer, und nicht von beliebigen der anderen LSTM-Schichten in dem Decodierer und anders als bei herkömmlichen Aufmerksamkeitsschemen empfängt, kann die durch das Aufmerksamkeits-Subsystem ausgeführte Berechnung parallel zu anderen Berechnungen effektiv ausgeführt werden, die durch die anderen LSTM-Schichten ausgeführt werden, ohne die Qualität der Übersetzung negativ zu beeinträchtigen.
-
Durch Verwenden von Arithmetik mit geringer Präzision, d. h. quantifizierter Berechnung, während Schlussfolgerungsberechnungen, wie in dieser Spezifikation beschrieben, kann die endgültige Übersetzungszeit beschleunigt werden, während hohe Übersetzungsqualität aufrechterhalten wird.
-
Durch Decodieren unter Verwendung der beschriebenen Strahlensuchtechniken kann die Übersetzungszeit bei Schlussfolgerung verringert werden, während eine hohe Übersetzungsqualität relativ zu herkömmlichen Strahlensuchtechniken aufrechterhalten wird.
-
Die Details von einer oder mehreren Ausführungsformen des in dieser Patentschrift beschriebenen Gegenstandes sind in den begleitenden Zeichnungen und der nachfolgenden Beschreibung dargelegt. Weitere Merkmale, Aspekte und Vorteile des Gegenstands werden anhand der Beschreibung, der Zeichnungen und der Patentansprüche offensichtlich.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 zeigt ein exemplarisches neuronales Maschinenübersetzungssystem.
-
2 zeigt ein Ablaufdiagramm eines exemplarischen Prozesses zum Generieren einer Übersetzung einer Eingabesequenz.
-
3 zeigt ein Ablaufdiagramm eines exemplarischen Prozesses zum Generieren codierter Darstellungen von Token in einer Eingabesequenz.
-
4 zeigt ein Ablaufdiagramm eines exemplarischen Prozesses zum Generieren einer Ausgabe für eine Position in einer Ausgabesequenz.
-
5 zeigt ein Ablaufdiagramm eines exemplarischen Prozesses zum Generieren eines Aufmerksamkeitsvektors.
-
6 zeigt ein Ablaufdiagramm eines exemplarischen Prozesses zum Aufrechterhalten eines Strahls von Kandidatenausgabesequenzen.
-
In den unterschiedlichen Zeichnungen werden gleiche Bezugszeichen und Bezeichnungen für gleiche Elemente verwendet.
-
AUSFÜHRLICHE BESCHREIBUNG
-
1 zeigt ein exemplarisches neuronales Maschinenübersetzungssystem 100. Das neuronale Maschinenübersetzungssystem 100 ist ein exemplarisches System, das in Form von Computerprogrammen auf einem oder mehreren Computern an einem oder mehreren Standorten implementiert ist, in denen die nachfolgend beschriebenen Systeme, Komponenten und Techniken implementiert werden können.
-
Das neuronale Maschinenübersetzungssystem 100 übersetzt Quellsequenzen von Wörtern in einer natürlichen Quellsprache in Zielsequenzen von Wörtern in einer natürlichen Zielsprache, z. B. Sätze oder Phrasen auf Englisch in Sätze oder Phrasen auf Französisch, Sätze oder Phrasen auf Englisch in Sätze oder Phrasen auf Deutsch, oder Sätze oder Phrasen auf Koreanisch in Sätze oder Phrasen auf Spanisch. Beispielsweise kann das neuronale Maschinenübersetzungssystem 100 eine Quellsequenz 102 in der natürlichen Quellsprache empfangen und eine Zielsequenz 152 generieren, die eine Übersetzung der Quellsequenz 102 in die natürliche Zielsprache ist.
-
Das neuronale Maschinenübersetzungssystem beinhaltet ein neuronales Codierer-Netzwerk 110, ein neuronales Decodierer-Netzwerk 120 und ein Aufmerksamkeits-Subsystem 130.
-
Zum Generieren einer Eingabe in das neuronale Codierer-Netzwerk 110 tokenisiert das neuronale Maschinenübersetzungssystem 100 die Quellsequenz 102 in eine Eingabesequenz 104 von Eingabe-Token. Im Allgemeinen wird jedes Eingabe-Token der Eingabesequenz 104 von einem Vokabular von Eingabe-Token ausgewählt, das ein jeweiliges Token für jede von einer Gruppe von Worteinheiten beinhaltet. Zusätzlich zu den Worteinheiten beinhaltet das Vokabular von Eingabe-Token auch ein oder mehrere speziell bezeichnete Token, z. B. ein Satzanfangs-Token und ein Satzende-Token. In einigen Implementierungen sind die Worteinheiten Wörter in der natürlichen Quellsprache. In einigen anderen Implementierungen sind einige oder alle der Worteinheiten Subworteinheiten, z. B. Zeichen, gemischte Wörter/Zeichen usw.
-
Insbesondere sind die Worteinheiten in einigen dieser Implementierungen Wortteile und das System 100 tokenisiert die Sequenz 102, indem es zuerst die Wörter in der Sequenz unter Verwendung eines trainierten Wortteil-Maschinenlernmodells in Wortteile trennt, das zum Teilen der Wörter in Wortteile trainiert wurde, und die spezielle Wortbegrenzungssymbole beinhalten, sodass die ursprüngliche Wortsequenz von der Wortteilsequenz ohne Mehrdeutigkeit zurückgewonnen werden kann. Exemplarische Ansätze für Tokenisierungssequenzen in Wortteile sind in Schuster, M., und Nakajima, K. Japanese and Korean voice search (Japanische und Koreanische Sprachsuche) beschrieben. 2012 IEEE International Conference on Acoustics, Speech and Signal Processing (Internationale Konferenz über Akustik-, Sprach- und Signalverarbeitung) (2012) und Sennrich, R., Haddow, B., und Birch, A. Neural machine translation of rare words with subword units (Neuronale Maschinenübersetzung von seltenen Wörtern mit Subworteinheiten). In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Verfahren des 54. Jahrestreffens des Verbandes für Computerlinguistik) (2016).
-
Das neuronale Codierer-Netzwerk 110 ist zum Empfangen der Eingabesequenz 104 und zum Verarbeiten der Eingabesequenz 104 konfiguriert, um eine jeweilige codierte Darstellung 112 von jedem Token in der Eingabesequenz 104 zu generieren.
-
Im Allgemeinen beinhaltet das neuronale Codierer-Netzwerk 110 mehrere neuronale Long Short-Term Memory(LSTM)-Netzwerkschichten. Genauer gesagt, beinhaltet das neuronale Codierer-Netzwerk 110 eine bidirektionale LSTM-Schicht 114, gefolgt von einem Stapel 116 unidirektionaler LSTM-Schichten. In einigen Fällen sind zwei oder mehr der LSTM-Schichten in dem Stapel 116 mit Restverbindungen 118 verbunden. Der Betrieb des neuronalen Codierer-Netzwerks wird nachfolgend unter Bezugnahme auf 2 und 3 ausführlicher beschrieben.
-
Das neuronale Decodierer-Netzwerk 120 und das Aufmerksamkeits-Subsystem 130 sind zum Verarbeiten der codierten Darstellungen 112 konfiguriert, um eine Ausgabesequenz 142 zu generieren, die Ausgabe-Token von einem Ausgabevokabular beinhaltet.
-
Im Allgemeinen beinhaltet das Ausgabevokabular ein jeweiliges Token für jede von einer Gruppe von Worteinheiten in der natürlichen Zielsprache. Zusätzlich zu den Worteinheiten beinhaltet das Vokabular auch ein oder mehrere speziell bezeichnete Token, z. B. ein Satzende-Token. In einigen Implementierungen sind die Worteinheiten Wörter in der natürlichen Zielsprache. In einigen anderen Implementierungen sind Worteinheiten Subworteinheiten, z. B. Zeichen, gemischte Wörter/Zeichen, Wortteile usw. für Wörter in der natürlichen Zielsprache. In einigen Fällen, wenn die Worteinheiten Wortteile sind, wird der Wortteil von der Quell- und Zielsprache gemeinsam genutzt, um zu ermöglichen, dass Strings von der Quellsequenz zur Zielsequenz kopiert werden.
-
Im Allgemeinen ist das neuronale Decodierer-Netzwerk 120 für jede Position in der Ausgabesequenz 142 zum Empfangen des Tokens an der vorangegangenen Position in der Ausgabesequenz 142 konfiguriert, z. B. ein Token 128 an der zweiten Position der Ausgabesequenz 142. Das neuronale Decodierer-Netzwerk 120 ist außerdem zum Empfangen eines Aufmerksamkeitskontextvektors konfiguriert, der von dem Aufmerksamkeits-Subsystem 130 für die Position generiert wird, z. B. ein Aufmerksamkeitskontextvektor 132 für die zweite Position der Ausgabesequenz 142, und zum Verarbeiten des vorangegangenen Tokens und des Aufmerksamkeitskontextvektors zum Generieren einer Gruppe von Punktzahlen, die eine jeweilige Punktzahl für jedes Ausgabe-Token in dem Ausgabevokabular beinhaltet.
-
Insbesondere beinhaltet das neuronale Decodierer-Netzwerk 120 einen Stapel 122 von LSTM-Schichten und eine Softmax-Ausgabeschicht 124. An jeder Position ist der Stapel 122 von LSTM-Schichten zum Verarbeiten des vorangegangenen Tokens und des Aufmerksamkeitskontextvektors konfiguriert, um eine LSTM-Ausgabe für die Position zu generieren, und die Softmax-Ausgabeschicht 124 ist zum Verarbeiten der LSTM-Ausgabe konfiguriert, um die Gruppe von Punktzahlen für die Position zu generieren. Wie bei dem neuronalen Codierer-Netzwerk 110 sind in einigen Implementierungen zwei oder mehr der LSTM-Schichten in dem Stapel 122 mit einer Restverbindung 126 verbunden.
-
Der Betrieb des neuronalen Codierer-Netzwerks wird nachfolgend unter Bezugnahme auf 4 ausführlicher beschrieben.
-
Das Aufmerksamkeits-Subsystem 130 ist konfiguriert, um an jeder Position in der Ausgabesequenz die LSTM-Ausgabe zu empfangen, die durch die unterste LSTM-Schicht in dem Stapel 122 an der vorangegangenen Position generiert wird, und um die empfangene LSTM-Ausgabe zum Generieren des Aufmerksamkeitskontextvektors für die Position zu verwenden. Im Allgemeinen ist der Aufmerksamkeitskontextvektor eine gewichtete Summe der codierten Darstellungen 112, wobei die Gewichte in der gewichteten Summe basierend auf der empfangenen LSTM-Ausgabe bestimmt werden. Der Betrieb des Aufmerksamkeits-Subsystems wird nachfolgend unter Bezugnahme auf 5 ausführlicher beschrieben.
-
Zum Generieren der Ausgabe an einer gegebenen Position in der Ausgabesequenz 142 wählt das System 100 ein Token basierend auf den Punktzahlen in der Gruppe von Punktzahlen in der Position aus, d. h. durch Auswählen des Tokens mit der höchsten Sequenz oder durch Sampeln eines Tokens gemäß den Punktzahlen von dem Vokabular von Ausgabe-Token.
-
Das System 100 fährt fort, Token auszuwählen und Token zu der Ausgabesequenz hinzuzufügen, bis das System 100 ein Satzende-Ausgabe-Token für die aktuelle Position in der Ausgabesequenz 142 auswählt. Sobald das Satzende-Ausgabe-Token ausgewählt ist, behandelt das System 100 die der Ausgabesequenz 142 vor der Satzende-Ausgabe als endgültige Ausgabesequenz 142 hinzugefügten Ausgaben.
-
In einigen Implementierungen generiert das System 100 die Ausgabesequenz 142 unter Verwendung von Strahlensuche. Das heißt, dass das System 100 einen Strahl von mehreren Kandidatenausgabesequenzen aufrechterhält, die parallel verarbeitet und erweitert werden, und fährt mit dem Verarbeiten fort, bis alle der Kandidatenausgabesequenzen in dem Strahl von dem Strahl finalisiert oder gestutzt sind. Eine exemplarische Technik zum Aufrechterhalten und Aktualisieren eines Strahls wird nachfolgend unter Bezugnahme auf 6 beschrieben.
-
Sobald die Ausgabesequenz 142 generiert wurde, generiert das System 100 die Zielsequenz 152 durch Konvertieren der durch die Token in der Ausgabesequenz 142 dargestellten Worteinheiten in Wörter in der Zielsprache.
-
In einigen Implementierungen sind das neuronale Codierer-Netzwerk 100 und das Decodierer-Subsystem, d. h. das neuronale Decodierer-Netzwerk 120 und das Aufmerksamkeits-Subsystem 130, zum Ausführen quantifizierter Berechnungen während des Generierens der Ausgabesequenz 142 konfiguriert. Insbesondere führen in einigen Implementierungen das neuronale Codierer-Netzwerk 100 und das Decodierer-Subsystem berechnungsmäßig intensive Vorgänge aus, z. B. Matrixmultiplikationen unter Verwendung von 8-Bit-Ganzzahlrechnungen, während fehlerempfindliche Akkumulatorwerte unter Verwendung von 16-Bit-Ganzzahlwerten gespeichert werden. In einigen Implementierungen werden nur die Berechnungen innerhalb der LSTM-Stapel der neuronalen Codierer- und Decodierer-Netzwerke quantifiziert, d. h. und nicht die Berechnungen der Softmax-Ausgabeschicht oder des Aufmerksamkeits-Subsystems.
-
2 zeigt ein Ablaufdiagramm eines exemplarischen Prozesses 200 zum Generieren einer Ausgabesequenz, die eine Übersetzung einer Eingabesequenz ist. Der Einfachheit halber wird der Prozess 200 als etwas beschrieben, dass durch ein System von einem oder mehreren Computern ausgeführt wird, die sich an einem oder mehreren Standorten befinden. Beispielsweise kann ein neuronales Maschinenübersetzungssystem, z. B. das neuronale Maschinenübersetzungssystem 100 von 1, angemessen programmiert, den Prozess 200 ausführen.
-
Das System empfängt eine Eingabesequenz von Token (Schritt 202). Die Eingabesequenz von Token ist eine Sequenz, die eine erste Sequenz von Wörtern in einer natürlichen Sprache darstellt.
-
Das System verarbeitet die Eingabesequenz von Token unter Verwendung eines neuronalen Codierer-Netzwerks, um eine jeweilige codierte Darstellung für jedes der Token in der Eingabesequenz zu generieren (Schritt 204). Verarbeiten der Eingabesequenz von Token wird nachfolgend unter Bezugnahme auf 3 beschrieben.
-
Das System verarbeitet die codierten Darstellungen unter Verwendung eines Decodierer-Subsystems zum Generieren einer Ausgabesequenz von Ausgabe-Token, die eine Sequenz von Wörtern darstellt, die eine Übersetzung der ersten Sequenz von Wörtern in eine andere natürliche Sprache ist (Schritt 206). Das Decodierer-Subsystem beinhaltet insbesondere ein neuronales Decodierer-Netzwerk und ein Aufmerksamkeits-Subsystem. Verarbeiten der codierten Darstellungen unter Verwendung des Decodierer-Subsystems wird nachfolgend unter Bezugnahme auf 4 und 5 ausführlicher beschrieben.
-
3 zeigt ein Ablaufdiagramm eines exemplarischen Prozesses 300 zum Generieren codierter Darstellungen der Token in einer Eingabesequenz. Der Einfachheit halber wird der Prozess 300 als etwas beschrieben, dass durch ein System von einem oder mehreren Computern ausgeführt wird, die sich an einem oder mehreren Standorten befinden. Beispielsweise kann ein neuronales Codierer-Netzwerk, z. B. das neuronale Maschinenübersetzungssystem 100 von 1, angemessen programmiert, den Prozess 300 ausführen.
-
Das neuronale Codierer-Netzwerk verarbeitet die Eingabesequenz durch eine Eingabevorwärts-LSTM-Schicht (Schritt 302). Die Eingabevorwärts-LSTM-Schicht ist zum Verarbeiten jedes Eingabe-Tokens in der Eingabesequenz in einer Vorwärtsreihenfolge konfiguriert, um eine jeweilige Vorwärtsdarstellung für jedes Eingabe-Token zu generieren.
-
Das neuronale Codierer-Netzwerk verarbeitet die Eingabesequenz durch eine Eingaberückwärts-LSTM-Schicht (Schritt 304). Die Eingaberückwärts-LSTM-Schicht ist zum Verarbeiten jedes Eingabe-Tokens in der Eingabesequenz in einer Rückwärtsreihenfolge konfiguriert, um eine jeweilige Rückwärtsdarstellung für jedes Eingabe-Token zu generieren.
-
Das neuronale Codierer-Netzwerk verarbeitet die Vorwärts- und Rückwärtsdarstellungen des Eingabe-Tokens durch eine Kombinationsschicht (Schritt 306). Die Kombinationsschicht ist konfiguriert, um für jedes Eingabe-Token die Vorwärtsdarstellung des Eingabe-Tokens und die Rückwärtsdarstellung des Eingabe-Tokens zu kombinieren, z. B. zu verketten, um eine kombinierte Darstellung des Eingabe-Tokens zu generieren.
-
Das neuronale Codierer-Netzwerk verarbeitet die kombinierten Darstellungen der Eingabe-Token durch einen Stapel mehrerer verborgener LSTM-Schichten (Schritt 308). Die mehreren verborgenen LSTM-Schichten sind zum Verarbeiten jeder kombinierten Darstellung in der Vorwärtsreihenfolge konfiguriert, um eine jeweilige codierte Darstellung von jedem der Eingabe-Token in der Eingabesequenz zu generieren. Insbesondere sind die mehreren verborgenen LSTM-Schichten in einem Stapel nach dem anderen angeordnet, und die codierte Darstellung eines gegebenen Eingabe-Tokens ist die Ausgabe der höchsten LSTM-Schicht in dem Stapel, nachdem die kombinierte Darstellung des gegebenen Eingabe-Tokens durch den Stapel verarbeitet wurde.
-
Daher ist die unterste Schicht des neuronalen Codierer-Netzwerks eine bidirektionale LSTM-Schicht, d. h. die Kombination der Eingabevorwärts-, Eingaberückwärts- und Kombinationsschicht verarbeitet effektiv die Eingabesequenz in der Vorwärts- und Rückwärtsrichtung, da die unterste Schicht des Codierers, der Kontext für die Wörter in der Eingabesequenz effektiv erfasst werden kann, was die Übersetzungsqualität verbessert. Da die anderen Codiererschichten, d. h. die verborgenen LSTM-Schichten in dem Stapel, unidirektional sind, kann Parallelisierung während Berechnungen immer noch erreicht werden, wodurch Trainings- und in einigen Fällen Schlussfolgerungszeiten reduziert werden.
-
Im Allgemeinen sind viele verborgene LSTM-Schichten in dem Stapel, d. h. sieben oder mehr, vorhanden, um dem neuronalen Codierer-Netzwerk zu ermöglichen, feine Unregelmäßigkeiten in der Quellsprache zu erfassen.
-
Zum Verbessern der Leistung des neuronalen Codierer-Netzwerks durch Fördern von Gradientenstrom zwischen den verborgenen Schichten während des Trainings, beinhaltet das neuronale Codierer-Netzwerk in einigen Implementierungen Restverbindungen zwischen einigen oder allen der verborgenen Schichten in dem Stapel. Beispielsweise beginnen in einigen Implementierungen Restverbindungen von dem Schichtdrittel vom Boden des Codierers, d. h. von der zweiten Schicht vom Boden des Stapels verborgener Schichten.
-
Wenn eine Restverbindung zwischen einer LSTM-Schicht A und einer LSTM-Schicht B direkt über der Schicht A in einem Stapel von LSTM-Schichten enthalten ist, empfängt Schicht B als Eingabe die Ausgabe von Schicht A und die Eingabe von Schicht A. Schicht B fügt dann pro Element die Ausgabe von Schicht A und die Eingabe von Schicht A hinzu, und verarbeitet dann die Summe als die neue Eingabe in die Schicht.
-
4 zeigt ein Ablaufdiagramm eines exemplarischen Prozesses 400 zum Generieren einer Ausgabe für eine gegebene Position in einer Ausgabesequenz. Der Einfachheit halber wird der Prozess 400 als etwas beschrieben, dass durch ein System von einem oder mehreren Computern ausgeführt wird, die sich an einem oder mehreren Standorten befinden. Beispielsweise kann ein neuronales Codierer-Netzwerk, z. B. das neuronale Maschinenübersetzungssystem 100 von 1, angemessen programmiert, den Prozess 400 ausführen.
-
Das neuronale Decodierer-Netzwerk erhält einen Aufmerksamkeitskontextvektor für die gegebene Position und das Ausgabe-Token an der vorangegangenen Position, d. h. an der Position, die der gegebenen Position in der Ausgabesequenz unmittelbar vorangeht (Schritt 402). Im Allgemeinen ist der Aufmerksamkeitskontextvektor eine gewichtete Summe über die codierten Darstellungen der Eingabe-Token in der Eingabesequenz, die durch ein Aufmerksamkeits-Subsystem generiert wurde. Generieren des Aufmerksamkeitskontextvektors für eine gegebene Position wird nachfolgend unter Bezugnahme auf 5 ausführlicher beschrieben. Wenn sich die gegebene Position in der ersten Position in der Ausgabesequenz befindet, d. h. keine unmittelbar vorangegangene Position vorhanden ist, kann das empfangene Ausgabe-Token ein bezeichnetes Platzhalter-Token, z. B. ein zuvor festgelegtes Satzanfangs-Token, sein.
-
Das neuronale Decodierer-Netzwerk verarbeitet den Aufmerksamkeitskontextvektor und das Ausgabe-Token durch einen Stapel von LSTM-Schichten, um eine LSTM-Ausgabe für die Position zu generieren (Schritt 404). Im Allgemeinen beinhaltet der Stapel von LSTM-Schichten, um dem neuronale Decodierer-Netzwerk das Erfassen feiner Unregelmäßigkeiten in der Zielsprache zu ermöglichen, viele LSTM-Schichten, z. B. acht oder mehr LSTM-Schichten.
-
Die erste LSTM-Schicht in dem Stapel, d. h. die unterste LSTM-Schicht, ist zum Empfangen des Aufmerksamkeitskontextvektors und des Ausgabe-Tokens, und zum Verarbeiten des Ausgabe-Tokens konfiguriert, um eine unterste Schichtausgabe zu generieren. Jede andere LSTM-Schicht ist zum Empfangen einer Eingabe, die den Aufmerksamkeitskontextvektor und die Schichtausgabe beinhaltet, die durch die LSTM-Schicht direkt vor der Schicht in den Stapel generiert wird, und zum Verarbeiten einer Schichtausgabe für die Eingabe konfiguriert.
-
Wie bei dem neuronalen Codierer-Netzwerk beinhaltet das neuronale Codierer-Netzwerk in einigen Implementierungen Restverbindungen zwischen einigen oder allen der Schichten in dem Stapel zum Verbessern der Leistung des neuronalen Codierer-Netzwerks durch Fördern von Gradientenstrom zwischen den Schichten während des Trainings. Beispielsweise beginnen in einigen Implementierungen Restverbindungen von dem Schichtdrittel von dem Boden des Decodierers.
-
Das neuronale Decodierer-Netzwerk verarbeitet die LSTM-Ausgabe durch eine Softmax-Ausgabeschicht, um eine jeweilige Punktzahl, z. B. eine jeweilige Wahrscheinlichkeit, für jedes Ausgabe-Token in dem Vokabular von Ausgabe-Token zu generieren (Schritt 406).
-
Das System kann dann ein Ausgabe-Token für die Position unter Verwendung der Punktzahlen auswählen oder kann, wie nachfolgend beschrieben, die Punktzahlen zum Aktualisieren des aufrechterhaltenen Strahls von Kandidatenausgabesequenzen verwenden.
-
5 zeigt ein Ablaufdiagramm eines exemplarischen Prozesses 500 zum Generieren eines Aufmerksamkeitskontextvektors für eine gegebene Position in einer Ausgabesequenz. Der Einfachheit halber wird der Prozess 500 als etwas beschrieben, dass durch ein System von einem oder mehreren Computern ausgeführt wird, die sich an einem oder mehreren Standorten befinden. Beispielsweise kann ein Aufmerksamkeits-Subsystem, z. B. das Aufmerksamkeits-Subsystem des neuronalen Maschinenübersetzungssystems 100 von 1, angemessen programmiert, den Prozess 500 ausführen.
-
Das Aufmerksamkeits-Subsystem empfängt die durch die unterste Schicht in dem Stapel von LSTM-Schichten in dem neuronalen Decodierer-Netzwerk generierte LSTM-Ausgabe für die vorangegangene Position in der Ausgabesequenz (Schritt 502). Insbesondere generiert das Aufmerksamkeits-Subsystem den Aufmerksamkeitskontextvektor nur von der Ausgabe, die durch die unterste LSTM-Schicht in dem Decodiererstapel während der Verarbeitung für die vorangegangene Position in der Ausgabesequenz (und die codierten Darstellungen der Eingabe-Token) generiert wurde, d. h. und nicht von den Ausgaben der anderen LSTM-Schichten in dem Decodiererstapel. Aus diesem Grund kann das Generieren des Aufmerksamkeitskontextvektors initiiert werden, bevor das Ausgabe-Token an der vorangegangenen Position abgeschlossen wurde, wodurch die Parallelisierung der durch das System ausgeführten Vorgänge verbessert, und die Zeit verringert wird, die zum Ausführen einer Schlussfolgerung und zum Trainieren des Systems notwendig ist.
-
Für die erste Position in der Ausgabesequenz kann die von dem Aufmerksamkeits-Subsystem empfangene LSTM-Ausgabe eine Platzhalterausgabe sein, oder kann z. B. die codierte Darstellung von einem der Token, z. B. das erste Token oder das letzte Token, in der Eingabesequenz sein.
-
Das Aufmerksamkeits-Subsystem generiert ein jeweiliges Aufmerksamkeitsgewicht für jede der codierten Darstellungen von der untersten LSTM-Ausgabe, und die codierten Darstellungen für die Eingabe-Token (Schritt 504). Insbesondere wendet das System eine Aufmerksamkeitsfunktion auf die unterste LSTM-Ausgabe und die codierten Darstellungen für die Eingabe-Token an, um eine jeweilige Punktzahl für jede der codierten Darstellungen zu generieren, und generiert dann die Gewichte durch Normalisieren der generierten Punktzahlen. In einigen Implementierungen ist die Aufmerksamkeitsfunktion ein neuronales Vorwärtsschubnetzwerk, z. B. ein neuronales Vorwärtsschubnetzwerk mit einer verborgenen Schicht. In einigen Implementierungen kann die Aufmerksamkeitsfunktion eine Distanzfunktion, z. B. eine Cosinus-Ähnlichkeitsfunktion, sein.
-
Das Aufmerksamkeits-Subsystem generiert den Aufmerksamkeitskontextvektor für die Ausgabeposition durch Bestimmen einer gewichteten Summe der codierten Darstellungen gemäß der entsprechenden Aufmerksamkeitsgewichte (Schritt 506).
-
6 zeigt ein Ablaufdiagramm eines exemplarischen Prozesses 600 zum Aufrechterhalten eines Strahls von Kandidatenausgabesequenzen. Der Einfachheit halber wird der Prozess 600 als etwas beschrieben, dass durch ein System von einem oder mehreren Computern ausgeführt wird, die sich an einem oder mehreren Standorten befinden. Beispielsweise kann ein neuronales Maschinenübersetzungssystem, z. B. das neuronale Maschinenübersetzungssystem 100 von 1, angemessen programmiert, den Prozess 600 ausführen.
-
Das System kann wiederholt den Prozess 600 als Teil eines Strahlsuchen-Decodierverfahrens ausführen. Insbesondere kann das System wiederholt das Verfahren 600 ausführen, bis alle der Sequenzen in dem Strahl finalisiert wurden oder bis einige andere Beendigungskriterien für die Decodierung erfüllt sind, z. B. erfüllt nur eine bestimmte Anzahl von Kandidatenausgabesequenzen Kriterien, um in dem Strahl zu verbleiben, oder die längste Kandidatenausgabesequenz in dem Strahl weist mehr als eine Schwellenwertanzahl von Token auf.
-
Das System erhält eine Vielzahl von Kandidatenausgabesequenzen von einem neuronalen Maschinenübersetzungssystem, z. B. dem neuronalen Maschinenübersetzungssystem 100 von 1 (Schritt 602). Insbesondere können die Kandidatenausgabesequenzen jeweils eine finalisierte Kandidatensequenz, die sich in dem Strahl am Ende der vorangegangenen Iteration des Prozesses 600 befand, und für jede Kandidatensequenz, die sich in dem Strahl am Ende der vorangegangenen Iteration des Prozesses 600 befand, aber nicht finalisiert war, eine oder mehrere Erweiterungen der Kandidatensequenz beinhalten. Eine Erweiterung einer Kandidatensequenz weist ein neues Token auf, das an das Ende der Kandidatensequenz angehängt ist, wobei jede Erweiterung der Kandidatensequenz ein anderes Token aufweist, das an das Ende der Sequenz angehängt ist. Das System erhält zudem für jede Erweiterung eine lokale Punktzahl für das an das Ende der Sequenz angehängte Token, wie durch die neuronalen Maschinenübersetzungssysteme generiert.
-
In einigen Implementierungen verwirft das System für jede Kandidatensequenz, die sich in dem Strahl befand, jedoch nicht finalisiert wurde, die Erweiterungen der Kandidatensequenz, die eine lokale Punktzahl aufweisen, die mehr als ein Schwellenwert unter einer höchsten lokalen Punktzahl ist.
-
Das System hält dann höchstens eine zuvor festgelegte Anzahl der Kandidatenausgabesequenzen in dem Strahl zur weiteren Berücksichtigung durch das neuronale Maschinenübersetzungssystem, d. h. zur weiteren Verarbeitung durch das neuronale Maschinenübersetzungssystem, aufrecht.
-
Insbesondere weist das System zum Bestimmen, welche Kandidatenausgabesequenz in dem Strahl aufrechtzuerhalten ist, jeder der Kandidatenausgabesequenzen eine jeweilige Punktzahl zu (Schritt 604). Im Allgemeinen weist das System jeder der Sequenzen eine anfängliche Punktzahl zu, und modifiziert optional die anfängliche Punktzahl für jede Sequenz durch Anwenden einer Abdeckungsstrafe, einer Längennormalisierungsstrafe oder von beiden, auf die anfängliche Punktzahl, um die endgültige Punktzahl für die Sequenz zu generieren.
-
Insbesondere bestimmt das System die anfängliche Punktzahl für eine gegebene Sequenz basierend auf einer Log-Likelihood der Kandidatenausgabesequenz gemäß den durch das neuronale Maschinenübersetzungssystem generierten Ausgabepunktzahlen. Das heißt dass, wie oben beschrieben, bei jeder Position in einer Ausgabesequenz ein neuronales Maschinenübersetzungssystem eine jeweilige Punktzahl für jedes der mehreren möglichen Token in der Ausgabesequenz generiert. Zum Bestimmen der anfänglichen Punktzahl für eine Kandidatenausgabesequenz bestimmt das System eine Summe der Logarithmen der Punktzahlen, die für jedes der Token in der Sequenz durch das neuronale Maschinenübersetzungssystem an der Position generiert wurden, an der das Token positioniert ist. Da die durch das Übersetzungssystem generierten Punktzahlen im Allgemeinen Wahrscheinlichkeiten sind, wird die anfängliche Punktzahl typischerweise negativ sein, d. h. weil der Logarithmus einer Zahl zwischen Null und Eins eine negative Zahl ist.
-
In einigen Implementierungen verwirft das System vor dem Berechnen beliebiger anfänglicher Punktzahlen und für jede Kandidatensequenz der vorherigen Iteration des Prozesses jede beliebige Erweiterung der Kandidatensequenz, bei der die Punktzahl, die dem neuen Token durch das neuronale Maschinenübersetzungssystem zugewiesen war, um mehr als einen Schwellenwert niedriger als die höchste Punktzahl war, die einer beliebigen Erweiterung der Kandidatensequenz zugewiesen wurde.
-
In einigen Implementierungen, bei denen das System eine Längennormalisierungsstrafe anwendet, normalisiert das System dann die anfängliche Punktzahl für die Kandidatensequenz basierend auf einer Anzahl von Ausgabe-Token, die sich in der Ausgabesequenz befinden. Im Allgemeinen wendet das System die Strafe durch Teilen der anfänglichen Punktzahl durch eine Strafbedingung an, die umso größer ist, je mehr Ausgabe-Token sich in der Ausgabesequenz befinden. Verwenden einer solchen Strafe ermöglicht dem System, effektiv Kandidatensequenzen unterschiedlicher Längen während des Decodierens zu vergleichen, d. h. ohne kürzere Ergebnisse gegenüber längeren übermäßig zu begünstigen. In einigen Implementierungen ist die Strafbedingung die Länge der Sequenz, d. h. die Anzahl von Token, die sich in der Sequenz befinden. In einigen anderen Implementierungen ist die Strafbedingung die Länge
α, wobei α eine Konstante zwischen Null und Eins ist, z. B. ein Wert zwischen 0,6 und 0,7, und Länge die Länge der Sequenz ist, d. h. die Anzahl von Token in der Sequenz. In weiteren Implementierungen kann die Strafe lp erfüllen:
wobei b eine positive Konstante ist, z. B. 5, |Y| die Länge der Sequenz ist, und α zwischen Null und Eins konstant, z. B. 0,2, ist.
-
In Implementierungen, bei denen das System eine Abdeckungsstrafe anwendet, fügt das System dann eine Strafbedingung zu der normalisierten anfänglichen Punktzahl (oder wenn Längennormalisierung nicht verwendet wird, die anfängliche Punktzahl) hinzu. Im Allgemeinen begünstigt die Abdeckungsstrafenbedingung Kandidatenausgabesequenzen, die die Wörter in der ersten Sequenz vollständig abdecken, wie durch den Aufmerksamkeitsmechanismus bestimmt, der durch das neuronale Maschinenübersetzungssystem verwendet wird. Beispielsweise kann die Abdeckungsstrafenbedingung cp erfüllen: cp = β·∑ |X| / i=1log(min(∑ |Y| / j=1pi,j), 1) wobei β ein positiver konstanter Wert zwischen Null und Eins ist, z. B. 0,2, i sich über die Token in der Eingabesequenz erstreckt, j sich über die Token in der Kandidatenausgabesequenz erstreckt und pi,j das Gewicht ist, das durch den Aufmerksamkeitsmechanismus für das i. Eingabe-Token generiert wird, wenn es das j. Ausgabe-Token verarbeitet.
-
Das System stuft die Kandidatenausgabesequenzen basierend auf den endgültigen Punktzahlen ein, d. h. von der Kandidatenausgabesequenz, die die höchste endgültige Punktzahl aufweist, zu der Sequenz, die die niedrigste Punktzahl aufweist (Schritt 606).
-
Das System entfernt von dem Strahl alle Kandidatenausgabesequenzen, außer der zuvor festgelegten Anzahl von am höchsten eingestuften Kandidatenausgabesequenzen, gemäß der Rangfolge (Schritt 608).
-
Das System bestimmt dann, ob irgendwelche der verbleibenden Kandidatenausgabesequenzen in dem Strahl durch das neuronale Maschinenübersetzungssystem als finalisiert identifiziert wurden (Schritt 610). Im Allgemeinen wurde eine Ausgabesequenz als finalisiert identifiziert, wenn die Ausgabesequenz in einem bezeichneten Token, z. B. einem zuvor festgelegten Satzende-Ausgabe-Token, endet.
-
Wenn mindestens eine Kandidatenausgabesequenz finalisiert wurde, entfernt das System von dem Strahl alle Kandidatenausgabesequenzen, die eine Punktzahl aufweisen, die mehr als ein Schwellenwert ist, der unter der Punktzahl für die am höchsten eingestufte finalisierte Kandidatenausgabesequenz liegt (Schritt 612). Durch Stutzen des Strahls auf diese Weise kann das System die Anzahl zusätzlicher Iterationen verringern, die ausgeführt werden müssen, sobald eine genügend hohe Qualitätshypothese identifiziert wurde, wodurch Schlussfolgerungszeit abgesenkt wird, ohne eine bedeutende Auswirkung auf die Übersetzungsqualität auszuüben. Wenn nach diesem zusätzlichen Stutzen der Strahl nur finalisierte Sequenzen beinhaltet, kann das System die am höchsten eingestufte Kandidatensequenz als die Übersetzung für die Eingabesequenz auswählen. Wenn der Strahl immer noch nicht finalisierte Kandidatensequenzen beinhaltet, und bis dahin keine anderen Beendigungskriterien erfüllt sind, stellt das System die nicht finalisierten Kandidatensequenzen in dem Strahl dem neuronalen Maschinenübersetzungssystem zur weiteren Verarbeitung bereit. Das heißt, das System stellt jede nicht finalisierte Sequenz in dem Strahl dem neuronalen Maschinenübersetzungssystem bereit, sodass das neuronale Maschinenübersetzungssystem mögliche Erweiterungen für jede nicht finalisierte Sequenz mit Punktzahlen bewerten kann.
-
Wenn keine der Kandidatenausgabesequenzen finalisiert wurde, dann stutzt das System den Strahl nicht weiter, und stellt die Kandidatenausgabesequenzen in dem Strahl dem neuronalen Maschinenübersetzungssystem zur weiteren Verarbeitung bereit (Schritt 614).
-
In dieser Spezifikation wird der Begriff „konfiguriert“ in Verbindung mit Systemen und Computerprogrammkomponenten verwendet. Ein zur Ausführung bestimmter Operationen oder Aktionen konfiguriertes System aus einem oder mehreren Computern bedeutet, dass auf diesem System Software, Firmware, Hardware oder eine Kombination derselben installiert ist, die im Betrieb das System veranlassen, Operationen oder Aktionen auszuführen. Ein oder mehrere zur Ausführung bestimmter Operationen oder Aktionen konfigurierte Computerprogramme bedeutet, dass dieses eine oder die mehreren Programme Anweisungen beinhalten, die wenn sie durch die Datenverarbeitungsvorrichtung ausgeführt werden, die Vorrichtung veranlassen, die Operationen oder Aktionen durchzuführen.
-
Die in dieser Spezifikation beschriebenen Ausführungsformen des Gegenstands sowie Funktionsvorgänge können in digitalen elektronischen Schaltungen, in physisch enthaltener Computersoftware oder -firmware, in Computerhardware, einschließlich der in dieser Spezifikation offenbarten Strukturen und ihrer strukturellen Entsprechungen oder in Kombinationen von einer oder mehrerer derselben, implementiert werden.
-
Die in dieser Beschreibung beschriebenen Ausführungsformen des Gegenstandes können als ein oder mehrere Computerprogramme implementiert werden, d. h. als ein oder mehrere Module mit Computerprogrammanweisungen, die auf einem materiellen, nicht flüchtgen Programmträger kodiert sind, um dann von einem Datenverarbeitungsgerät ausgeführt zu werden bzw. den Betrieb desselben zu steuern. Alternativ oder ergänzend dazu können die Programmbefehle auf einem künstlich erzeugten, sich ausbreitenden Signal, wie beispielsweise einem maschinenerzeugten elektrischen, optischen oder elektromagnetischen Signal codiert werden, das erzeugt wird, um Informationen zur Übertragung an ein geeignetes Empfängergerät zu codieren, die dann von einem Datenverarbeitungsgerät ausgeführt werden. Bei dem Computer-Speichermedium kann es sich um ein maschinenlesbares Speichergerät, ein maschinenlesbares Speichersubstrat, einen frei adressierbaren oder seriellen Zugriffsspeicher oder eine Kombination aus einem oder mehreren derselben handeln.
-
Der Begriff „Datenverarbeitungsvorrichtung“ umfasst alle Arten von Vorrichtungen, Geräten und Maschinen zum Verarbeiten von Daten, einschließlich beispielsweise eines programmierbaren Prozessors, eines Rechners oder mehrerer Prozessoren oder Rechner. Die Vorrichtung kann eine Spezial-Logikschaltung, wie z. B. einen FPGA (feldprogrammierbarer Universalschaltkreis) oder einen ASIC (anwendungsspezifischen integrierten Schaltkreis) beinhalten. Die Vorrichtung kann neben der Hardware auch einen Code beinhalten, der eine Ausführungsumgebung für das betreffende Computerprogramm, z. B. einen Code, der Prozessor-Firmware, einen Protokollstapel, ein Datenbankverwaltungssystem, ein Betriebssystem, oder eine Kombination einer oder mehrerer der genannten, erstellt.
-
Ein Computerprogramm (auf das sich auch bezogen, oder das als Programm, Software, Softwareanwendung, Modul, Softwaremodul, Script oder Code beschrieben wird) kann in einer beliebigen Programmiersprachenform geschrieben sein, darunter auch in kompilierten oder interpretierten Sprachen, deklarativen oder verfahrensorientierten Sprachen, zudem kann das Programm in jeder beliebigen Form eingesetzt werden, darunter auch als unabhängiges Programm oder als Modul, Komponente, Subroutine oder eine andere Einheit, die zur Verwendung in einer Rechenumgebung geeignet ist. Ein Computerprogramm kann, muss jedoch nicht einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei gespeichert sein, die andere Programme oder Daten enthält, wie z. B. eine oder mehrere Scripts, die in Markup-Sprache in einem Dokument, in einer einzelnen Datei speziell für das betreffende Programm oder in mehreren koordinierten Dateien, z. B. Dateien gespeichert sind, die ein oder mehrere Module, Unterprogramme oder Teile von Code speichern. Ein Computerprogramm kann auf einem Computer oder auf mehreren Computern bereitgestellt und ausgeführt werden, die sich an einem Standort oder an mehreren Standorten verteilt befinden und über ein Kommunikationsnetzwerk miteinander verbunden sind.
-
Die in dieser Spezifikation beschriebenen Prozesse und Logikabläufe können von einem oder mehreren programmierbaren Prozessoren durchgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Funktionen durch das Verarbeiten von Eingabedaten und das Erzeugen von Ausgaben auszuführen. Die Prozesse und Logikabläufe können zudem durch eine vorhabensgebundene Logikschaltung, wie z. B. einen FPGA (Universalschaltkreis) oder eine ASIC (anwendungsspezifische integrierte Schaltung) ausgeführt, und das Gerät in Form derselben implementiert werden.
-
Computer, die zur Ausführung eines Datenverarbeitungsprogramms geeignet sind, können beispielsweise allgemeine oder spezielle Mikroprozessoren oder beides oder eine andere Art von zentraler Verarbeitungseinheit beinhalten. Im Allgemeinen nimmt eine zentrale Recheneinheit Befehle und Daten von einem Nur-Lese-Speicher oder einem Direktzugriffsspeicher oder von beiden entgegen. Die wesentlichen Elemente eines Computers sind eine zentrale Recheneinheit zum Durchführen bzw. Ausführen von Befehlen und ein oder mehrere Speichergeräte zum Speichern von Befehlen und Daten. Im Allgemeinen beinhaltet ein Computer außerdem ein oder mehrere Massenspeichergeräte zum Speichern von Daten, wie z. B. Magnet-, magneto-optische oder optische Disketten, um Daten zu empfangen und/oder zu senden, oder derselbe ist operativ an ein solches Speichergerät gekoppelt. Ein Computer muss jedoch nicht über diese Geräte verfügen. Darüber hinaus kann ein Computer in einem anderen Gerät, unter anderem z. B. in einem Mobiltelefon, einem persönlichen digitalen Assistenten (PDA), einem mobilen Audio- oder Videoplayer, einer Spielekonsole, einem globalen Positionsbestimmungssystem (GPS) oder einem tragbaren Speichergerät, z. B. in einem USB-Stick, integriert sein.
-
Computerlesbare Medien, die zum Speichern von Computerprogrammanweisungen und Daten geeignet sind, beinhalten alle Formen von nicht flüchtigem Speicher, Medien und Speichergeräten, darunter auch beispielsweise Halbleiterspeichergeräte, wie z. B. EPROM, EEPROM und Flash-Speichergeräte, magnetische Platten, wie z. B. interne Festplattenlaufwerke oder Wechselplatten, magneto-optische Platten sowie CD-ROMs und DVD-ROMs. Der Prozessor und der Speicher können durch eine Spezial-Logikschaltung ergänzt oder in dieselbe integriert werden.
-
Um die Interaktion mit einem Benutzer zu ermöglichen, können in dieser Spezifikation beschriebene Ausführungsformen des Gegenstandes auf einem Computer mit einem Anzeigegerät, wie z. B. einem CRT-(Kathodenstrahlröhren) oder LCD-(Flüssigkristallanzeigen)-Monitor, mit welchem dem Benutzer Informationen angezeigt werden, sowie einer Tastatur und einem Zeigegerät, z. B. einer Maus oder einer Steuerkugel (Trackball), mit denen der Benutzer Eingaben an den Computer vornehmen kann, implementiert werden. Darüber hinaus können andere Geräte verwendet werden, um die Interaktion mit einem Benutzer zu ermöglichen; zum Beispiel kann es sich bei der Rückmeldung an den Benutzer um jegliche Art von sensorischer Rückmeldung, wie z. B. visuelle, akustische oder taktile Rückmeldungen, handeln; zudem können die Eingaben des Benutzers in beliebiger Form, darunter auch akustisch, sprachlich oder taktil, empfangen werden. Außerdem kann ein Computer durch das Senden von Dokumenten an und das Empfangen von Dokumenten von einem Gerät, das vom Benutzer verwendet wird, mit einem Benutzer interagieren, beispielsweise durch das Senden von Webseiten an einen Webbrowser auf dem Client-Gerät des Benutzers in Reaktion auf die vom Webbrowser empfangenen Anfragen.
-
Die in dieser Spezifikation beschriebenen Ausführungsformen des Gegenstandes können in einem Datenverarbeitungssystem implementiert werden, das eine Backend-Komponente wie z. B. einen Datenserver oder eine Middleware-Komponente, wie z. B. einen Anwendungsserver oder eine Frontend-Komponente, wie z. B. einen Client-Computer mit einer grafischen Benutzeroberfläche, oder eine beliebige Kombination einer oder mehrerer der besagten Backend-, Middleware- oder Frontend-Komponenten oder einen Webbrowser beinhaltet, durch den ein Benutzer mit einer in dieser Spezifikation beschriebenen Implementierung des Gegenstandes interagieren kann. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation, wie z. B. ein Kommunikationsnetzwerk, miteinander verbunden sein. So beinhalten beispielsweise Kommunikationsnetzwerke ein lokales Netzwerk („LAN“), ein Großraumnetzwerk („WAN“), z. B. das Internet.
-
Das Computersystem kann Clients und Server beinhalten. Ein Client und ein Server befinden sich im Allgemeinen entfernt voneinander und interagieren typischerweise über ein Kommunikationsnetzwerk. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander aufweisen.
-
Zwar enthält diese Spezifikation viele spezifische Implementierungsdetails, jedoch sollten diese nicht als Beschränkungen des Umfangs oder des Anspruchs ausgelegt werden, sondern vielmehr als Beschreibungen spezifischer Merkmale bestimmter Ausführungsformen bestimmter Erfindungen. Bestimmte Merkmale, die in dieser Spezifikation im Kontext der unterschiedlichen Ausführungsformen beschrieben werden, können auch in Kombination in einer einzelnen Ausführungsform implementiert werden. Andererseits können verschiedene Merkmale, die im Kontext einer einzelnen Ausführungsform beschrieben werden, in mehreren Ausführungsformen oder in einer geeigneten Teilkombination implementiert werden. Außerdem können, auch wenn die Merkmale vorstehend ggf. als in bestimmten Kombinationen wirkend beschrieben und zunächst auch als solche beansprucht werden, in einigen Fällen ein oder mehrere Merkmale einer beanspruchten Kombination aus der Kombination herausgenommen und die beanspruchte Kombination auf eine Teilkombination oder eine Variante einer Teilkombination gerichtet werden.
-
Gleichermaßen soll, obwohl die Operationen in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, dies nicht so verstanden werden, dass die besagten Operationen in der dargestellten Reihenfolge oder in fortlaufender Reihenfolge durchgeführt werden müssen bzw. alle veranschaulichten Operationen durchgeführt werden müssen, um die erwünschten Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung von Vorteil sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den vorstehend beschriebenen Ausführungsformen nicht als in allen Ausführungsformen erforderlich aufgefasst werden, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in ein einziges Softwareprodukt integriert oder in mehrere Softwareprodukte aufgeteilt werden können.
-
Es wurden bestimmte Ausführungsformen des Gegenstands beschrieben. Weitere Ausführungsformen liegen innerhalb des Schutzumfangs der folgenden Ansprüche. Die in den Ansprüchen ausgeführten Vorgänge können beispielsweise in einer anderen Reihenfolge ausgeführt werden und dennoch wünschenswerte Ergebnisse erzielen. Die in den beigefügten Figuren dargestellten Verfahren erfordern beispielsweise nicht notwendigerweise die gezeigte Reihenfolge oder sequenzielle Reihenfolge, um erwünschte Ergebnisse zu erzielen. In bestimmten Implementierungen können Multitasking und eine Parallelverarbeitung vorteilhaft sein.
-
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 Nicht-Patentliteratur
-
- Schuster, M., und Nakajima, K. Japanese and Korean voice search (Japanische und Koreanische Sprachsuche) beschrieben. 2012 IEEE International Conference on Acoustics, Speech and Signal Processing (Internationale Konferenz über Akustik-, Sprach- und Signalverarbeitung) (2012) [0040]
- Sennrich, R., Haddow, B., und Birch, A. Neural machine translation of rare words with subword units (Neuronale Maschinenübersetzung von seltenen Wörtern mit Subworteinheiten). In Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Verfahren des 54. Jahrestreffens des Verbandes für Computerlinguistik) (2016) [0040]