DE102019207712A1 - Slot-Befüllung beim Gesprochene-Sprache-Verständnis mit einer Kombination aus Zeiger und Aufmerksamkeit - Google Patents

Slot-Befüllung beim Gesprochene-Sprache-Verständnis mit einer Kombination aus Zeiger und Aufmerksamkeit Download PDF

Info

Publication number
DE102019207712A1
DE102019207712A1 DE102019207712.9A DE102019207712A DE102019207712A1 DE 102019207712 A1 DE102019207712 A1 DE 102019207712A1 DE 102019207712 A DE102019207712 A DE 102019207712A DE 102019207712 A1 DE102019207712 A1 DE 102019207712A1
Authority
DE
Germany
Prior art keywords
slot
words
rnn
probability distribution
word
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102019207712.9A
Other languages
English (en)
Inventor
Lin Zhao
Zhe Feng
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/057,521 external-priority patent/US10770066B2/en
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of DE102019207712A1 publication Critical patent/DE102019207712A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/027Frames
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems

Abstract

Ein Verfahren zur Slot-Befüllung in einem automatischen Gesprochene-Sprache-Verständnis-(SLU-)System umfasst das Empfangen von Wörtern in einem Textausdruck, das Erzeugen von einer verschlüsselten Ausgabe und Aufmerksamkeitsgewichtungen unter Verwendung eines Rekurrentes-neuronales-Netzwerk-(RNN-)Kodierers, der einen Aufmerksamkeitsmechanismus aufweist, das Erzeugen einer ersten und einer zweiten Wahrscheinlichkeitsverteilung von Slotwörtern in einer erweiterten Slot-Vokabulardatenbank unter Verwendung eines RNN-Dekodierers bzw. eines Zeigernetzwerks, jeweils für einen Zeitschritt, das Erzeugen einer kombinierten Wahrscheinlichkeitsverteilung basierend auf der ersten und der zweiten Wahrscheinlichkeitsverteilung und das Identifizieren eines Slotworts, das einem Wort entspricht, in der erweiterten Slot-Vokabulardatenbank mit einem höchsten Wahrscheinlichkeitswert in der kombinierten Wahrscheinlichkeitsverteilung für den Zeitschritt.

Description

  • PRIORITÄTSANSPRUCH
  • Diese Patentanmeldung beansprucht den Vorteil der Priorität gegenüber der provisorischen US-Patentanmeldung Nr. 62/678,406 mit dem Titel „Slot Filling in Spoken Language Understanding with Joint Pointer and Attention“, die am 31. Mai 2018 eingereicht wurde und deren gesamter Inhalt hier durch Bezugnahme ausdrücklich eingeschlossen ist.
  • GEBIET
  • Die vorliegende Offenbarung betrifft im Allgemeinen das Gebiet des automatischen Verstehens von gesprochener Sprache und insbesondere Systeme und Verfahren zur Verwendung von kombinierten Zeiger- bzw. Aufmerksamkeitsmechanismen bei der Slot-Befüllung in einem Gesprochene-Sprache-Verständnissystem.
  • HINTERGRUND
  • Sofern hier nicht anders bestimmt, sind die in diesem Abschnitt beschriebenen Materialien nicht Stand der Technik für die Patentansprüche in dieser Anmeldung und sind nicht durch Aufnahme in diesen Abschnitt als Stand der Technik zugelassen.
  • Gesprochene-Sprache-Verständnis-(SLU-)Systeme verarbeiten Sprache, die durch menschliches Sprechen ausgedrückt wird, zu einer semantischen Darstellung, die von Maschinen verstanden werden kann. SLU ist ein wesentlicher Bestandteil aller sprachgesteuerten KI-Systeme. Zu den allgemeinen Aufgaben von SLU zählen die Absichtsbestimmung und die Slot-Befüllung ausgehend von einer Äußerung. Die Aufgabe der Absichtsbestimmung kann als Problem der semantischen Äußerungsklassifizierung angesehen werden, während die Aufgabe der Slot-Befüllung als Sequenzmarkierungsproblem in Bezug auf zusammenhängende Wörter zu betrachten ist. Frühere Ansätze zur Lösung dieser zwei verwandten Aufgaben wurden üblicherweise in Form von zwei separaten Systemen vorgeschlagen, wie etwa Support-Vector-Machines (SVMs) zur Absichtsbestimmung und Conditional-Random-Fields (CRFs) zur Slot-Befüllung.
  • Jüngste Fortschritte im Bereich der neuronalen Netzwerke, insbesondere der rekurrenten neuronalen Netzwerke (RNNs), ermöglichen ein gemeinsames Traningsmodell für Absichtsbestimmung sowie Slot-Befüllung. Dieser Rahmen erwies sich als vorteilhaft gegenüber den Verfahren des vormaligen Stands der Technik und erregte in der Forschungsgemeinschaft viel Aufmerksamkeit. Der Erfolg von verbundenen Modellen beruht auf dem Aufmerksamkeitsmechanismus und dem Verschlüsselungs-Entschlüsselungsmodell. Der Aufmerksamkeitsmechanismus ermöglicht eine optimierte Auswahl von Eingangssequenzen zum Entschlüsseln sowohl von Inhalts- als auch von Standortsinformationen.
  • Im Allgemeinen wird ein SLU-System als Stromabwärtsaufgabe von Gesprochener-Dialog-Systemen eingesetzt, deren Eingaben Ausgaben von der Automatische-Spracherkennungs-(ASR-)Front-End-Engine sind. Eine der Aufgaben eines SLU-Systems ist es, Slots in einem Slot-Befüllungsvorgang Wörter zuzuweisen, die das ASR in der Spracheingabe eines Benutzers erkennt. Wie hier verwendet, bezieht sich der Begriff „Slot“ auf ein für eine Maschine verständliches Datenfeld, das mit einer oder mehreren Worteingaben in natürlicher Sprache, die in das SLU-System eingegeben wurden, befüllt wird. Beispielsweise fordert ein Satz in gesprochener Sprache, der in ein automatisches Heimsystem eingegeben wurde, die Aktivierung eines Heizgeräts an. Die Eingabe umfasst mehrere Slots, einschließlich eines Befehlsslots, eines Slots, der die Art der zu aktivierenden Vorrichtung anzeigt (z.B. Heizkörper), und ein anderer Slot umfasst eine Einstellung für die Vorrichtung (z.B. Einstellen der Temperatur auf 40 °C). Nachdem sie einem Slot zugewiesen worden sind, verwendet ein automatisches System die Worteingaben für jeden Slot, um zusätzliche Vorgänge auszuführen, wie etwa das Betätigen von Komponenten in einem automatischen Heimsystem unter Heranziehung des obigen Beispiels.
  • Im genannten Beispiel wird ein Satz von zählbaren Slots verwendet, wobei es für jeden Slot in einem gegebenen System eine definierte Anzahl gültiger Eingaben gibt (z.B. definierte Sätze von gültigen Befehlen, Automatikvorrichtungen und gültige numerische Temperaturwerte), doch können nicht alle SLU-Systeme mit Slots arbeiten, die einen definierten Satz von zählbaren Werten aufweisen. Einige SLU-Systeme des Stands der Technik verwenden Maschinelles-Lernen-Klassifikatoren, die mithilfe von annotierten Trainingsdaten trainiert werden, um die Slots für verschiedene Wörter in eingegebener gesprochener Sprache zu erkennen. Diese SLU-Systeme des Stands der Technik können allerdings Schwierigkeiten bei der Durchführung des Slot-Befüllungsvorgangs haben, wenn Slots mit Wörtern befüllt werden können, die in den ursprünglichen Trainingsdaten nicht ausreichend vertreten sind oder gänzlich fehlen. Erstens können manche Arten von Slots eine große oder sogar unlimitierte Anzahl an möglichen Werten aufweisen, so dass die Klassifikatoren durch zu spärliche Daten beeinträchtigt sein können, weil der verfügbare Satz von Trainingsdaten häufig begrenzt ist und selbst große Sätze von Trainingsdaten einen großen Teil der korrekten Eingaben für manche Arten von Slots nicht klassifizieren können. Ein weiteres Problem entsteht aufgrund von vokabularexternen Wörtern, die durch unbekannte Slotwerte erzeugt werden (z.B. Restaurant- und Straßennamen), welche in den Trainingsdaten nicht ohne weiteres vordefiniert werden können und häufig in Anwendungen für gesprochenen Dialog mit starkem Alltagscharakter vorkommen. Folglich wären Verbesserungen für Verfahren und Systeme, die die Genauigkeit von Gesprochene-Sprache-Verständnissystemen erhöhen, von Vorteil.
  • ZUSAMMENFASSUNG
  • Um die Herausforderungen im Zusammenhang mit den SLU-Systemen des Stands der Technik zu bewältigen, stellen die hier beschriebenen Ausführungsformen ein neuronales generatives Modell zur Slot-Befüllung unter Verwendung von nicht ausgerichteten Dialogdaten vor, insbesondere zur Slotwert-Vorhersage, da diese aufgrund von OOV-Wörtern größere Herausforderungen in sich birgt. Das Modell setzt Seq2Seq-Lernen zum Vorhersagen einer Sequenz von Slotwerten aus einer Äußerung ein. Durch die Fähigkeit von Zeigernetzwerken (Ptr-Net), OOV-Probleme zu lösen, angeregt, binden die Erfinder Ptr-Net in ein standardmäßiges Seq2Seq-Aufmerksamkeitsmodell ein, um OOV-Slots handhaben zu können. Die hier beschriebenen Ausführungsformen können Slotwerte entweder durch Erzeugen von einem aus einem festgelegten Vokabular oder durch Auswählen eines Worts aus der Äußerung vorhersagen. Das endgültige Modell ist eine gewichtete Kombination der beiden Vorgänge.
  • Die hier beschriebenen Ausführungsformen verwenden ein neuronales generatives Modell zur Slot-Befüllung für die Daten ohne Annotationen auf Wortebene. Die hier beschriebenen Ausführungsformen verwenden zur Bewältigung des OOV-Problems bei der Slotwert-Vorhersage ein Zeigernetzwerk, das eine verbesserte Leistungsfähigkeit gegenüber dem Stand der Technik erreicht, ohne manuell entworfene Regeln oder Merkmale zu erfordern.
  • Ein Gesprochene-Sprache-Verständnis-(SLU-)System empfängt einen Befehl oder eine Anfrage von einem Benutzer in natürlicher Sprache und gibt die Absichten und Slots aus, die in der Benutzereingabe identifiziert werden. Das SLU-System identifiziert Wörter für Slots durch gemeinsame Verwendung eines neuronalen Sequenz-zu-Sequenz-Netzwerks und eines Zeigernetzwerks, um die Vokabular-Probleme in vielen Anwendungen für gesprochenen Dialog konkret zu bewältigen. Das System identifiziert ferner die Benutzerabsicht und die Arten von Slots unter Verwendung von konvolutionalen neuronalen Netzwerken. Die Identifizierung der Art von Slotwerten und der Benutzerabsichten kann entweder in einer Pipeline oder in einem gemeinsamen Rahmen durchgeführt werden.
  • In einer Ausführungsform umfasst ein Verfahren zum Betreiben eines Gesprochene-Sprache-Verständnis-(SLU-)Systems das Empfangen einer Vielzahl von Wörtern in einem Textausdruck mit einem Prozessor im SLU-System, das Erzeugen einer verschlüsselten Ausgabe, die der Vielzahl von Wörtern entspricht, und einer Vielzahl von Aufmerksamkeitsgewichtungen, die der Vielzahl von Wörtern entsprechen, mit dem Prozessor unter Verwendung eines Rekurrentes-neuronales-Netzwerk-(RNN-)Kodierers mit einem Aufmerksamkeitsmechanismus, der die Vielzahl von Wörtern als Eingaben für den RNN-Kodierer empfängt, das Erzeugen einer ersten Wahrscheinlichkeitsverteilung mit dem Prozessor, die einer Vielzahl von Wörtern in einer erweiterten Slot-Vokabulardatenbank entspricht, die ein Slotwort zu einem Zeitschritt ist, unter Verwendung eines RNN-Dekodierers, der die verschlüsselte Ausgabe aus dem RNN-Kodierer als Eingabe empfängt, Erzeugen einer zweiten Wahrscheinlichkeitsverteilung mit dem Prozessor, die einer Vielzahl von Wörtern in der Eingangssequenz entspricht, die ein Slotwort zum Zeitschritt ist, unter Verwendung eines Zeigernetzwerks, das die Vielzahl von Aufmerksamkeitsgewichtungen als Eingabe empfängt, Erzeugen einer kombinierten Wahrscheinlichkeitsverteilung mit dem Prozessor basierend auf der ersten Wahrscheinlichkeitsverteilung und der zweiten Wahrscheinlichkeitsverteilung, Identifizieren eines Slotworts mit dem Prozessor, das einem Wort in der erweiterten Slot-Vokabulardatenbank mit einem höchsten Wahrscheinlichkeitswert in der kombinierten Wahrscheinlichkeitsverteilung für den Zeitschritt entspricht, und Durchführen eines Befehls mit dem Prozessor unter Verwendung des Slotworts als Parameter für den Befehl.
  • In einer anderen Ausführungsform wurde ein System für das Verstehen von gesprochener Sprache (SLU) entwickelt. Das System umfasst eine Eingabevorrichtung, eine Ausgabevorrichtung, einen Speicher und einen Prozessor, der operativ mit der Eingabevorrichtung, der Ausgabevorrichtung und dem Speicher verbunden ist. Der Prozessor ist konfiguriert, um eine Vielzahl von Wörtern in einem Textausdruck basierend auf einer mit der Eingabevorrichtung empfangenen Eingabe zu empfangen, eine verschlüsselte Ausgabe, die der Vielzahl von Wörtern entspricht, und eine Vielzahl von Aufmerksamkeitsgewichtungen, die der Vielzahl von Wörtern entsprechen, unter Verwendung eines Rekurrentes-neuronales-Netzwerk-(RNN-)Kodierers zu empfangen, der einen im Speicher gespeicherten Aufmerksamkeitsmechanismus aufweist, der die Vielzahl von Wörtern als Eingaben für den RNN-Kodierer empfängt, eine erste Wahrscheinlichkeitsverteilung, die einer Vielzahl von Wörtern in einer im Speicher gespeicherten erweiterten Slot-Vokabulardatenbank entspricht, die ein Slotwort zu einem Zeitschritt ist, unter Verwendung eines im Speicher gespeicherten RNN-Dekodierers zu erzeugen, der die verschlüsselte Ausgabe aus dem RNN-Kodierer als Eingabe empfängt, eine zweite Wahrscheinlichkeitsverteilung, die der Vielzahl von Wörtern in der Eingangssequenz entspricht, die ein Slotwort zum Zeitschritt ist, unter Verwendung eines Zeigernetzwerks zu empfangen, das die Vielzahl von Aufmerksamkeitsgewichtungen als Eingabe empfängt, eine kombinierte Wahrscheinlichkeitsverteilung basierend auf der ersten Wahrscheinlichkeitsverteilung und der zweiten Wahrscheinlichkeitsverteilung zu erzeugen, ein Slotwort, das einem Wort in der erweiterten Slot-Vokabulardatenbank mit einem höchsten Wahrscheinlichkeitswert in der kombinierten Wahrscheinlichkeitsverteilung für den Zeitschritt entspricht, zu identifizieren, und einen Befehl unter Verwendung des Slotworts als Parameter für den Befehl auszuführen, um mit der Ausgabevorrichtung eine Ausgabe zu erzeugen.
  • Figurenliste
    • 1 ist eine schematische Darstellung einer Ausführungsform eines automatischen gesprochene-Sprache-Verständnis-(SLU-)Systems.
    • 2 ist eine schematische Darstellung der Ausführungsform von 1 bei der Durchführung eines Slot-Befüllungsvorgangs für eine Sequenz von Wörtern in einem Textausdruck.
    • 3 ist ein Blockdiagramm eines Prozesses zum Identifizieren von Slotwörtern und unter Verwendung der Slotwörter in einem SLU-System.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Zur besseren Nachvollziehbarkeit der Grundsätze der hier offenbarten Ausführungsformen wird nun auf die Zeichnungen und Erörterungen in der folgenden schriftlichen Beschreibung Bezug genommen. Die Verweise sollen keinesfalls den Schutzumfang des Gegenstands einschränken. Die vorliegende Offenbarung umfasst auch etwaige Veränderungen und Modifikationen der veranschaulichten Ausführungsformen und umfasst weitere Anwendungen des Grundsatzes der offenbarten Ausführungsformen, wie für Fachleute auf dem Gebiet, das die Offenbarung betrifft, klar sein sollte.
  • Wie hier verwendet, bezieht sich der Begriff rekurrentes neuronales Netzwerk (RNN) auf eine Art des neuronalen Netzwerks, das eine Reihe von Eingaben empfängt und eine Reihe von Ausgaben erzeugt, wobei jede Eingabe für das RNN den inneren Zustand des RNN beeinflusst und für das RNN einen „Speicher“ bereitstellt, in dem die Ausgabe des RNN nicht nur durch die vorliegende Eingabe beeinflusst wird, sondern auch durch den inneren Zustand des RNN, der basierend auf zuvor empfangenen Eingaben verändert wurde. Verschiedene RNNs umfassen Neuronen, die eine rekurrente Gate-Einheit (GRU), eine Langzeitspeicher-(LSTM-)Einheit oder andere Einheiten, die auf dem Gebiet bekannt sind, einsetzen, wobei jede „Einheit“ auch als Neuron in einem RNN bezeichnet wird. In einem RNN-Kodierer/Dekodierer-Netzwerk umfasst ein Kodierer eine oder mehrere Einheiten, die eine Sequenz von Eingaben empfangen und eine verschlüsselte Ausgabe erzeugen, typischerweise in Form eines numerischen Vektors oder einer sonstigen geeigneten Struktur, die verschlüsselte Informationen über jede der Eingaben in der Sequenz umfasst. In den hier beschriebenen Ausführungsformen bezieht sich die Sequenz von Eingaben auf numerische Werte, die Wörtern in einer Eingangssequenz zugewiesen sind. Der Kodierer speichert einen inneren „verborgenen Zustand,, h, der für jede Eingabe in der Sequenz aktualisiert wird und der als Serie von Zeitschritten t modelliert ist, wobei der RNN-Kodierer zu jedem Zeitschritt eine zusätzliche Eingabe empfängt. Die letzte Ausgabe des Kodierers umfasst verschlüsselte Informationen über alle Eingaben, die in der Sequenz empfangen wurden.
  • Im RNN-Kodierer/Dekodierer-Netzwerk ist der Dekodierer ein anderes RNN, das den verschlüsselten Ausgabevektor empfängt, der dem letzten verborgenen Zustand h aus dem RNN-Kodierer als Eingabe entspricht. Der RNN-Dekodierer sendet eine Sequenz von Ausgaben, die in den spezifischen hier beschriebenen Ausführungsformen Wahrscheinlichkeitsverteilungen Pgen von verschiedenen Wörtern in einem vorbestimmten Slotvokabular sind, welche Wörter umfassen können, die in der ursprünglichen Eingabe nicht vorkommen, und einem Slot während einer Sequenz von Zeitschritten entsprechen. Somit sendet das RNN-Kodierer/Dekodierer-Netzwerk eine Sequenz von Wörtern, die auf Slots anzuwenden wären, und ein separater Mechanismus verwendet anschließend die weiter unten beschriebene gemeinsame Ausgabe des RNN-Dekodierers und des Zeigernetzwerk, um während eines SLU-Vorgangs Slots mit den erzeugten Wörtern zu befüllen. Der Prozess filtert auch Wörter aus der Vielzahl von Wörtern in einem Textausdruck der ursprünglichen Eingangssequenz, die keinem der Slots entsprechen, aus. Wie oben beschrieben, ist ein Nachteil eines herkömmlichen RNN-Dekodierers, dass der Lernprozess weniger wirksam beim Identifizieren von vokabularexternen (OOV-)Wörtern ist, welche möglicherweise Slots entsprechen, aber in den Trainingsdaten nicht ausreichend vertreten sind. Im Zusammenhang mit dieser Offenbarung bezieht sich OOV auf ein Wort, das durch ein Automatische-Spracherkennungs-Front-End identifiziert, aber nicht direkt einem zählbaren Slot zugewiesen werden kann, der eine vorbestimmte Anzahl möglicher Eingaben, die in den ursprünglichen Trainingsdaten enthalten sind, aufweist. Im Gegensatz dazu werden Wörter, die zählbaren Slots zugewiesen werden können und in den Trainingsdaten enthalten sind, als „vokabulareigene“ Wörter bezeichnet.
  • Die hier beschriebenen Ausführungsformen verwenden sowohl unidirektionale als auch bidirektional RNNs. Ein unidirektionales RNN beinhaltet ein oder mehrere Neuronen, um eine Reihe von Ausgaben basierend auf einer Reihe von Eingangswerten zu erzeugen, die jeweils nur in eine zeitliche Richtung verlaufen, d.h. üblicherweise, wenn auch nicht ausschließlich, von der frühesten Eingabe in einer Sequenz zur letzten Eingabe in einer Sequenz. Manche RNNs verwenden mehrere Schichten von Neuronen, obwohl die hier beschriebenen Ausführungsformen mit einer einzigen Schicht oder mehreren Schichten von Neuronen umgesetzt sein können. Ein bidirektionales RNN umfasst zumindest zwei Neuronen, wie etwa zwei GRU, um Ausgaben zu erzeugen, die zeitlich sowohl rückwärts als auch vorwärts verlaufen. Bei den hier beschriebenen Ausführungsformen sind alle Eingangsdaten vor der Verwendung der RNNs verfügbar, das zeitliche „Zurückgehen“ bedeutet also ganz einfach, dass ein Neuron oder ein Satz von Neuronen im RNN beim letzten Wert in der Eingabe beginnt und bis zum ersten Eingangswert zurückgeht, um den verborgenen Zustand sowie Kontextinformationen aus zukünftigen Werten anstatt aus früheren Werten in der Sequenz zu inkorporieren, was tatsächlich die Konfiguration eines Vorwärtszeit-RNN ist, nur zeitlich umgekehrt. Ein weiteres Neuron oder weiterer Satz von Neuronen im RNN erzeugt eine Ausgabe, beginnend mit der frühesten Eingabe in der Sequenz, in ähnlicher Weise wie im Fall einer unidirektionalen GRU. Die Ausgabe des bidirektionalen RNN ist beispielsweise eine Kombination aus zwei Vektoren, die auf den variable Ausgaben des numerischen verborgenen Zustands sowohl für die Vorwärts- als auch die Rückwärts-RNNs basieren, um eine Ausgabe für jeden Eingangswert in der Sequenz zu erzeugen, die sowohl durch vorhergehende als auch darauffolgende Werte in der Sequenz beeinflusst ist.
  • Wie oben beschrieben erzeugt der Kodierer in einem Standard-RNN einen einzelnen Ausgangsvektor, der Informationen über alle Eingaben in einer Sequenz verschlüsselt. Wie hier verwendet, bezieht sich der Begriff „Aufmerksamkeitsmechanismus“ auf einen zusätzlichen Prozess, der es einem RNN-Kodierer/Dekodierer ermöglicht, zusätzliche Informationen über die Positionen von Wörtern in der Sequenz zu enthalten, die im Ausgangsvektor des RNN-Kodierers nicht direkt verschlüsselt sind. Der Aufmerksamkeitsmechanismus erzeugt mehrere numerische Aufmerksamkeitsgewichtungswerte basierend auf einer Score-Funktion zweier verschiedener verborgener Zustände. Beispiele für Score-Funktionen umfassen score ( h t , h ¯ s ) = h t T W h ¯ s
    Figure DE102019207712A1_0001
    oder score ( h t , h ¯ s ) = v a T tanh ( W 1 h t + W 2 h ¯ s ) ,
    Figure DE102019207712A1_0002
    worin der Term ht der Vektor eines verborgenen Dekodierer-Zustands zum aktuellen Zeitschritt t ist, h s der Vektor des s-ten verborgenen Kodierer-Zustands in der Sequenz ist, und die Terme νa, W, W1, und W2 stehen für numerische Gewichtungsparameter, die während des Trainings des RNN-Kodierer/Dekodierer-Netzes gelernt werden. Allgemeiner gesagt, berechnet die Score-Funktion den Score zum Dekodierer-Zeitschritt t basierend auf der Korrelation zwischen dem verborgenen Kodierer-Zustand und dem verborgenen Dekodierer-Zustand und erhält so den Fokus oder die „Aufmerksamkeit“ für verschiedene Wörter in einer Eingangssequenz. In einer Ausführungsform verwendet der RNN-Kodierer einen Aufmerksamkeitsmechanismus, um auf den Scores basierende numerische Aufmerksamkeitsgewichtungswerte αts unter Verwendung der folgenden Funktion zu erzeugen: a t s = e ( s c o r e ( h t , h ¯ s ) ) S = 1 S e s c o r e ( h t , h ¯ s )
    Figure DE102019207712A1_0003
    für insgesamt S verborgene Quellenzustände. Der Aufmerksamkeitsmechanismus verwendet die Aufmerksamkeitsgewichtungen, um einen Kontextvektor c und einen Aufmerksamkeitsvektor at unter Verwendung von beispielsweise den folgenden Funktionen zu erzeugen: ct = ∑s ats s und at = f (ct, ht) = tanh(Wc[ct; ht]), worin Wc ein anderer Gewichtungswert ist. Andere Ausführungsformen von Aufmerksamkeitsmechanismen, die vorwärtsgerichtete neurale Netzwerke verwenden, um die Aufmerksamkeitsscores zu bestimmen, sind auf dem Gebiet auch bekannt. Der RNN-Dekodierer kann die Ausgabe des Aufmerksamkeitsmechanismus zusätzlich zum standardmäßigen Ausgangsvektor des RNN-Kodierers verwenden, um die Genauigkeit der Erzeugung von entschlüsselten Ausgaben unter Verwendung jener Aufmerksamkeitsscores zu verbessern, die der Sequenz von Wörtern in der ursprünglichen Eingabe entsprechen, um bei der Erzeugung einer sequentiellen Ausgabe den Fokus auf verschiedene Eingabewörter zu legen.
  • Wie hier verwendet, bezieht sich der Begriff „Zeigernetzwerk“ auf einen Entschlüsselungsmechanismus, der verwendet werden kann, um ein Eingabeelement in einer Sequenz, wie etwa ein Wort aus einer Sequenz von Wörtern, in einem Dekodierer basierend auf den Aufmerksamkeitsscores, die in einem RNN-Kodierer erzeugt werden, auszuwählen. Bei jedem Entschlüsselungsschritt wählt das Zeigernetzwerk basierend auf der Aufmerksamkeitsverteilung eine Position aus der Eingangssequenz aus, anstatt ein Token aus dem Zielvokabular zu erzeugen. Beispielsweise empfängt ein Zeigernetzwerk eine Eingangssequenz X = {x1, ..., xT], und erzeugt eine Ausgabe yt zum Zeitschritt t basierend auf der folgenden Funktion: P p t r ( y t = w | y 1 t 1 , X ) = i : x i = w a i t ,
    Figure DE102019207712A1_0004
    worin w eine Worteingabe ist, a i t
    Figure DE102019207712A1_0005
    die Aufmerksamkeitsgewichtung der Position i zum Schritt t ist. Der Wert Pptr ist eine Wahrscheinlichkeitsverteilung von Wörtern, einschließlich vokabulareigener und vokabularexterner Wörter, die zu jedem Dekodierer-Zeitschritt t durch das Zeigernetzwerk erzeugt werden, wobei jeder Zeitschritt einem Wort in der Ausgangssequenz Y entspricht. Die hier beschriebenen Ausführungsformen kombinieren die Ausgabe des RNN-Dekodierers und die Ausgabe des Zeigernetzwerks, um Slotwörter aus der Eingabe basierend auf einem erweiterten Vokabular zu identifizieren, wobei, wie bereits erwähnt, Slotwörter nicht notwendigerweise in der ursprünglichen Eingabe vorkommen müssen. Wie hier verwendet, bezieht sich der Begriff „erweitertes Vokabular“ auf die Vereinigung des Slotvokabulars (vokabulareigene Wörter) für zählbare Slots, die in den Trainingsdaten ausreichend vertreten sind, und anderen Wörtern aus den Eingangsäußerungen, die ferner vokabularexterne Wörter umfassen.
  • 1 zeigt ein Gesprochene-Sprache-Verständnis-(SLU-)System 100, das Slotwörter, einschließlich sowohl vokabulareigener als auch vokabularexterner Wörter, für Slot-Befüllungsvorgänge identifiziert. Das System 100 umfasst eine Audioeingabevorrichtung 104, eine Ausgabevorrichtung 112, einen Prozessor 128 und einen Speicher 132. Beispiele für Hardware-Ausführungsformen, die das System 100 implementieren, umfassen beispielsweise ein Fahrzeuginformationssystem, einen PC, eine mobile Elektronikvorrichtung, wie ein Smartphone, oder eine tragbare Rechenvorrichtung und dergleichen. Während das System 100 zur Veranschaulichung als einzelne Rechenvorrichtung abgebildet ist, umfasst das System 100 in manchen Ausführungsformen eine Client-Vorrichtung, die über die Audioeingabevorrichtung 104 Eingaben empfängt, über die Ausgabevorrichtung 112 Ausgaben erzeugt und aufgezeichnete Audiodaten oder die Ausgabe eines automatischen Spracherkennungssystems, das im Client umgesetzt ist, über ein Datennetzwerk an ein Rechensystem auf einem externen Server überträgt. Das Rechensystem auf dem externen Server führt anschließend zusätzliche Verarbeitung durch, um die Slots zu identifizieren, und überträgt eine endgültige Ausgabe an die Client-Rechenvorrichtung. In jeder Ausführungsform bezieht sich ein Verweis auf das Betreiben eines Prozessors, wie etwa des Prozessors 128, austauschbar auf das Betreiben eines einzelnen Prozessors in a Rechenvorrichtung oder mehrerer Prozessoren in mehreren Rechenvorrichtungen, die zusammenarbeiten, um die hier beschriebenen Funktionen auszuführen.
  • Im System 100 ist die Audioeingabevorrichtung 104 beispielsweise ein Mikrofon oder eine Reihe von Mikrofonen, die eine Spracheingabe von einem menschlichen Benutzer empfangen. Die Audioeingabevorrichtung 104 umfasst gegebenenfalls zusätzliche Schaltungen, einschließlich Filter, Verstärker und Analog-zu-digital-Wandler, die Audiodaten einer digitalisierten Darstellung der Spracheingabe zur zusätzlichen Verarbeitung durch den Prozessor 128 erzeugen. Auch wenn 1 eine Audioeingabevorrichtung 104 zeigt, verwenden alternative Ausführungsformen eine andere Eingabevorrichtung, die es dem System 100 ermöglicht, eine Reihe von Wörtern zu empfangen, die einer menschlichen Eingabe entsprechen, wie etwa eine Tastatur oder eine Handzeichen-Eingabevorrichtung.
  • Im System 100 ist die Ausgabevorrichtung 112 beispielsweise eine Audioausgabevorrichtung oder eine visuelle Anzeigevorrichtung, die eine Ausgabe in einem Dialogsystem erzeugt. Die Ausgabe basiert zumindest teilweise auf Informationen, die dem System 100 vom Benutzer über die Audioeingabevorrichtung 104 bereitgestellt werden. Wie weiter unten detaillierter beschrieben, empfängt das System 100 eine Sprach- oder Texteingabe von einem Benutzer, verschlüsselt die Eingabe und führt einen Slot-Befüllungsvorgang durch, um zumindest einigen der Wörter in der ursprünglichen Eingabe Slots zuzuweisen. Das System 100 verarbeitet die Slots mit bestimmten Begriffen, die in einem Gesprochen-Sprache-Verständnissystem verständlich sind, um eine Ausgabeantwort basierend auf der Benutzereingabe zu erzeugen. Die Ausgabevorrichtung 112 stellt dem Benutzer eine Ausgabe bereit, die eine Dialogantwort nachahmt, welche der Benutzer basierend auf der Benutzereingabe erwartet, doch erzeugt das System 100 die Dialogantwort auf automatische Weise.
  • Im System 100 ist der Prozessor 128 eine digitale Logikvorrichtung, die beispielsweise eine oder mehrere aus einer zentralen Verarbeitungseinheit (CPU) eines Mikroprozessors, einer Mikrosteuerung, einem digitalen Signalprozessor (DSP), einer feldprogrammierbaren Gate-Array (FPGA), einer Grafikverarbeitungseinheit (GPU), einer anwendungsspezifischen integrierten Schaltung (ASIC) oder einer sonstigen geeigneten digitalen Logikvorrichtung, die die hier beschriebenen Funktionen und Aktionen des Systems 100 durchführt, umfasst. In manchen Ausführungsformen umfasst der Prozessor 128 Beschleunigungshardware, die die Arbeitsschritte der hier beschriebenen RNN-Kodierer und -Dekodierers auf effiziente Weise implementiert, obwohl andere Verarbeitungshardware, die CPUs und GPUs umfasst, die RNN-Kodierers und -Dekodierer genauso umsetzen kann. Der Prozessor 128 ist operativ mit der Audioeingabevorrichtung 104, der Ausgabevorrichtung 112 und dem Speicher 132 verbunden.
  • Im System 100 umfasst der Speicher 132 eine oder mehrere flüchtige Speichervorrichtungen, wie etwa such Direktzugriffspeicher (RAM) und eine oder mehrere nichtflüchtige Speichervorrichtungen, wie etwa Magnet- oder Solid-State-Festplatten. Der Speicher 132 speichert programmierte Anweisungen 134 und Daten, die eine Spracherkennungseinheit 136, einen Absichtsklassifikator 138, einen RNN-Kodierer 140, der einen Aufmerksamkeitsmechanismus umfasst, einen Slotwort-Dekodierer 144, der ferner einen RNN-Dekodierer 146 und ein Zeigernetzwerk 148 umfasst, eine erweiterte Slot-Vokabulardatenbank 162 und eine Slot-Datenbank 166 implementieren.
  • Im Speicher 132 ist die Spracherkennungseinheit 136 eine Automatische-Spracherkennungs-(ASR-)Engine nach Stand der Technik, die beispielsweise Software und Modelle umfasst, die die Audiodaten, welche das System 100 von der Audioeingabevorrichtung 104 empfängt, in eine Sequenz von maschinenlesbaren Darstellungen des Worts im Textausdruck konvertieren. Die ARS 136 umfasst eine beliebige Ausführungsform eines automatischen Spracherkennungssystems, einschließlich solche, die verborgene Markov-Modelle verwenden, und verschiedene Arten von neuronalen Netzwerken, einschließlich neuronalen „Deep-Learning“-Netzwerkmodellen. Das System 100 verwendet die Spracherkennungseinheit 136, um eine Sequenz von Textwörtern zu erzeugen, die als Grundlage für den übrigen Teil der Verarbeitung für Gesprochene-Sprache-Verständnis, der hier beschrieben wird, dienen.
  • Im Speicher 132 sind die Slot- und Absichtsklassifikatoren 138 neuronale Netzwerke, die die Slots und die Absichten der Eingangssequenz von Text eines Benutzers erkennen. In einer Ausführungsform sind die Slot- und Absichtsklassifikatoren 138 konvolutionale neuronale Netzwerke (CNN). In einer anderen Ausführungsform ist der Absichtsklassifikator 138 ein RNN-Dekodierer, der eine Ausgabe des RNN-Kodierers 140 empfangen kann und gemeinsam mit dem RNN-Kodierer 140 trainiert wird. Der Begriff „Absicht“, wie auf dem Gebiet bekannt, bezieht sich auf einen intendierten Befehl oder eine Anfrage, die durch ein SLU-System basierend auf der Eingabe des Benutzers erkannt wird. Ein Beispiel für eine Absicht ist eine Anfrage für ein Navigationssystem zur Identifizierung von Restaurants basierend auf Elementen einer Benutzeranfrage, wobei spezifische Elemente in der Benutzeranfrage Wörter bereitstellen, die Slots in der Anfrage entsprechen. Der Slotklassifikator 138 empfängt die Slotwörter, die das System 100 während des Prozesses 300, der weiter unten näher beschrieben wird, erzeugt, und der Prozess 300 stellt in einem SLU-Vorgang Wörter bereit, bei denen die Wahrscheinlichkeit sehr groß ist, dass sie Slots entsprechen, ohne dass der Slotklassifikator 138 jedes Wort der ursprünglichen Eingabe verarbeiten muss, was wiederum die Genauigkeit der Slotklassifizierung verbessert. In manchen Ausführungsformen empfängt der Slotklassifikator zusätzlich zum Slotwort auch einen Absichtsidentifikator als Eingabe vom Absichtsklassifikator, der einen Kontext bereitstellt, damit der Slotklassifikator 138 einen Slot in der Slot-Datenbank 166 für Slotwörter mit größerer Genauigkeit finden kann.
  • Im Speicher 132 ist der RNN-Kodierer 140 ein RNN, das eine Sequenz von numerischen Werten, die Wörtern in einer Eingangssequenz entsprechen, empfängt und eine erste verschlüsselte Darstellung der Vielzahl von Wörtern als numerische Ausgangswerte h eines ersten verborgenen Zustands basierend auf den erzeugten Eingaben. Der Prozessor 128 setzt auch den RNN-Kodierer 140 unter Verwendung eines Aufmerksamkeitsmechanismus um, der die oben beschriebenen Aufmerksamkeitsgewichtungen erzeugt. In der Ausführungsform von 1 ist der RNN-Kodierer 140 ein bidirektionaler RNN-Kodierer, der unter Verwendung von zumindest zwei GRUs implementiert ist, obwohl der RNN-Kodierer in anderen Ausführungsformen ein unidirektionaler Kodierer sein kann.
  • Im Speicher 132 sendet der Slotwort-Dekodierer 144 eine Sequenz von Slotwörtern als Ausgabe basierend auf Wörtern in einer Eingangssequenz unter Verwendung von sowohl der verschlüsselten Ausgabe des verborgenen Zustands als auch der Aufmerksamkeitsgewichtungen des RNN-Kodierers 140. Der Begriff „Slotwort“ bezieht sich auf ein Wort in der erweiterten Slot-Vokabulardatenbank 162, die der Slotwort-Dekodierer 144 zu jedem Zeitschritt einer Entschlüsselungssequenz erzeugt, um als Eingabe für den Slotklassifikator 138 zu dienen. Ein Slotwort kann ein Wort sein, das in der ursprünglichen Eingangssequenz vorkommt, aber der Slotwort-Dekodierer 144 kann auch Slotwörter senden, die in der ursprünglichen Eingangssequenz nicht vorkommen. Zusätzlich dazu sendet der Slot-Dekodierer 144 in manchen Fällen keinerlei Wörter aus der ursprünglichen Eingangssequenz als Slotwörter.
  • Der Slot-Dekodierer 144 umfasst einen RNN-Dekodierer 146 und ein Zeigernetzwerk 148. In der Ausführungsform von 1 ist der RNN-Dekodierer 146 ein unidirektionaler Dekodierer, der als RNN mit zumindest einer GRU implementiert ist. Der RNN-Dekodierer 146 verwendet den letzten verborgenen Zustand des RNN-Kodierers 140 als Eingabe und verwendet gegebenenfalls den Aufmerksamkeitsvektor des Aufmerksamkeitsmechanismus des RNN-Kodierers 140, um die Genauigkeit der Ausgabe zu verbessern. Der RNN-Dekodierer 146 sendet eine Reihe von Wahrscheinlichkeitsverteilungen für die wahrscheinlichsten vokabulareigenen Slotwörter, die in der erweiterten Slot-Vokabulardatenbank 162 enthalten sind. In manchen Ausführungsformen verwendet der RNN-Dekodierer 146 auch die Ausgabe des Aufmerksamkeitsmechanismus des RNN-Kodierers 140, um es dem RNN-Dekodierer 146 zu ermöglichen, den Aufmerksamkeitsvektor zu verwenden, um die Wahrscheinlichkeitsverteilung von vokabulareigenen Slotwörtern zu erzeugen. Die Ausgaben des RNN-Dekodierers 146 erzeugen Wahrscheinlichkeitsverteilungen mit potentiellen Nicht-null-Wahrscheinlichkeitswerten für Wörter, die zählbare vokabulareigene Wörter aufweisen, welche in der erweiterten Slot-Vokabulardatenbank 162 gespeichert sind, und die Ausgabe des RNN-Dekodierers 146 kann hohe Wahrscheinlichkeitswerts für vokabulareigene Wörter umfassen, die in der ursprünglichen Eingabe nicht vorkommen.
  • Das Zeigernetzwerk 148 empfängt die Aufmerksamkeitsgewichtungen aus dem Aufmerksamkeitsmechanismus 140 des RNN-Kodierers 140 als Eingaben und erzeugt eine weitere Wahrscheinlichkeitsverteilung von Slots, die jedem Wort in der Eingangssequenz zugewiesen werden. Die Ausgaben des Zeigernetzwerks 148 erzeugen Wahrscheinlichkeitsverteilungen mit den höchsten Wahrscheinlichkeitswerten für Slotwörter, die als vokabularexternes Wort in der erweiterten Slot-Vokabulardatenbank 162 gespeichert sind, und die in der ursprünglichen Eingangssequenz von Wörtern vorkommen, aber im Allgemeinen nicht mit großer Genauigkeit vom RNN-Dekodierer 146 erkannt werden. Die letzte Ausgabe des Slotwort-Dekodierers 144 ist eine Kombination der Ausgaben des RNN-Dekodierers 146 und des Zeigernetzwerks 148, die ein oder mehrere Slotwörter bereitstellt. Der Slotwort-Dekodierer 144 stellt ein „erweitertes Vokabular“ bereit, da der Slotwort-Dekodierer 144 die Slotwörter unter Verwendung einer kombinierten Wahrscheinlichkeitsverteilung für sowohl vokabulareigene als auch vokabularexterne Slotwörter erzeugt. Das System 100 oder ein anderes automatisches Spracherkennungssystem verwendet Slotwörter, um einen oder mehrere Slots als Teil der zusätzlichen Dialogverarbeitung zu befüllen.
  • Im Speicher 132 speichert die erweiterte Slot-Vokabulardatenbank 162 das erweiterte Vokabular aller Wörter und numerischer Werte, das sowohl vokabulareigene Wörter, welche zählbaren Slots zugewiesen werden können und während des Trainingsprozesses ausreichend vertreten sind, als auch vokabularexterne Wörter, die durch die ASR 136 erkannt werden können, aber während des Trainingsprozesses des RNN-Kodierers 140 und des Slotwort-Dekodierers 144 nicht ausreichend vertreten sind. Daher hängt der genaue Satz von Wörtern, die in der erweiterten Slot-Vokabulardatenbank 162 enthalten sind, vom Gesamtkorpus an erkannten Wörtern ab, die zu verarbeiten das System 100 konfiguriert ist, und da die erweiterte Slot-Vokabulardatenbank 162 das erweiterte Vokabular umfasst, umfasst die erweiterte Slot-Vokabulardatenbank 162 sowohl „vokabulareigene“ Wörter, die beim Training des RNN-Kodierers 140 und des RNN-Dekodierers 146 ausreichend vertreten sind, als auch „vokabularexterne Wörter“, die im Trainingsprozess nicht ausreichend vertreten sind. Während des Betriebs des Systems 100 verwendet der RNN-Dekodierer 146 im Slotwort-Dekodierer 144 den vom RNN-Kodierer 140 empfangenen verborgenen Zustand h, um vokabulareigene Wörter in der erweiterten Slot-Vokabulardatenbank 162, die den Slots mit der höchsten Wahrscheinlichkeit entsprechen, zu identifizieren, und das Zeigernetzwerk 148, um Vokabular externe Wörter, die den Slots mit der höchsten Wahrscheinlichkeit entsprechen, zu identifizieren.
  • Im Speicher 132 speichert die Slot-Datenbank 166 einen Satz von vorbestimmten Slotmarkierungen, die den Ausgaben des Slotklassifikators 138 entsprechen, wenn dem Slotklassifikator 138 Slotworteingaben bereitgestellt werden. Die Slot-Datenbank 166 speichert auch einen defaultmäßigen NULL-Wert-Slot, der als Catch-all-Identifikator für ein Slotwort dient, das nicht direkt einem bestimmten Slot entspricht. Beispielsweise erzeugt in einer Konfiguration der Slotwort-Dekodierer 144 eine Ausgangssequenz von Slotwörtern, die möglicherweise einem der Slots in der Slot-Datenbank 166 entsprechen. Der Slotklassifikator 138 empfängt die Wörter und erzeugt eine Ausgabe mit einer Wahrscheinlichkeitsverteilung von Elementen, die Indexwerten von verschiedenen Slots in der Slot-Datenbank 166 zugewiesen sind. Der Prozessor 128 kann unter Verwendung der Slot-Datenbank 166 den Slot identifizieren, der einem Slotwort zugewiesen ist. Das System 100 verwendet anschließend das Slotwort in Verbindung mit dem Slot, um eine weitere Verarbeitung durchzuführen, etwa die Formulierung einer Datenbankabfrage mit verschiedenen Feldern in der Datenbankabfrage, die mit Wörtern befüllt sind, welche den Slots in der Slot-Datenbank 166 entsprechen. Die exakten Werte von Slots in der Slot-Datenbank 166 variiert basierend auf dem Gebiet, für das das SLU-System 100 trainiert ist, um Interaktion mit einem Benutzer bereitzustellen. Ein nicht einschränkendes Beispiel für einen Bereich ist ein Fahrzeugnavigationssystem, das Anfragen für verschiedene Standorte, einschließlich Restaurants oder Orte, an den sich ein Fahrzeug begeben kann, empfängt. Die Slot-Datenbank 166 wird vor einem Trainingsprozess erzeugt und in Verbindung mit dem Trainingsprozess des RNN-Kodierers 140 und des Slotwort-Dekodierers 144 verwendet, um Ausgaben zu erzeugen, die den Slots in der Slot-Datenbank 166 entsprechen.
  • In einem Beispiel ist das System 100 konfiguriert, um SLU-Vorgänge für ein Fahrzeugnavigationssystem durchzuführen. Ein vordefinierter Satz von Trainingsdaten stellt vordefinierte Textausdrücke und einen entsprechenden Satz von vordefinierten Slots bereit, die Wörtern in den Trainingstextausdrücken entsprechen. Das Ergebnis des Trainingsprozesses ist ein Satz von Parametern, die die GRUs oder anderen Neuronen im RNN-Kodierer 140 und dem Slotwort-Dekodierer 144 einstellen, um es dem Kodierer 140 und dem Dekodierer 144 zu ermöglichen, Wörtern in der Texteingabe basierend auf den Trainingsdaten Slots zuzuordnen, wenn der RNN-Kodierer 140 mit dem Aufmerksamkeitsmechanismus und der Slotwort-Dekodierer 144 mit dem RNN-Dekodierer 146 und dem Zeigernetzwerk 148 im hier beschriebenen gemeinsamen Modell miteinander verwendet werden. Da die Trainingsdaten ausgewählt sind, um repräsentativ für tatsächliche Eingaben zu sein, die erwartungsgemäß während des Betriebs des Systems 100 empfangen werden, ist die Wahrscheinlichkeit sehr groß, dass die trainierten RNNs genaue Ausgaben erzeugen, wenn ihnen eine andere Sequenz einer Texteingabe und vokabulareigene Begriffe vorgelegt werden, als die, die in den Trainingsdaten vorkommen. Das Zeigernetzwerk verbessert den Betrieb des Systems 100 bei der Durchführung eines Slot-Befüllungsvorgangs, wenn vokabularexterne Wörter in der Eingabe vorkommen, und der Trainingsprozess ordnet dem Zeigernetzwerk Gewichtungen zu. Zusätzlich dazu verwendet der Trainingsprozess Hyperparameter, die vor Beginn des Trainingsprozesses definiert werden, der verschiedene Parameter zum Trainieren des RNN-Kodierer und -Dekodierers, einschließlich Hyperparametern, definiert, welche eine Lernrate, die Minibatchgröße (wird in Minibatchgradientengefälle-Trainingsprozessen verwendet, die ansonsten auf dem Gebiet bekannt sind) und die Durchfallsrate spezifizieren. Wie auf dem Gebiet bekannt ist, verwenden die GRUs Sigmoidfunktonen, die einen trainierbaren Parameter a : 1 1 + e a x
    Figure DE102019207712A1_0006
    umfassen können, und der Trainingsprozess ordnet Gewichtungen und Parametern im RNN-Kodierer/Dekodierer, im Aufmerksamkeitsmechanismus und im Zeigernetzwerk Werte zu. Im System 100 speichert der Speicher 132 die Parameterdaten, Gewichtungen und andere Datenstrukturen, die die Slot- und Absichtsklassifikatoren 138, den RNN-Kodierer 140 und den Slotwort-Dekodierer 144 implementieren, vor dem Ableitvorgang des Prozesses 300, der weiter unten ausführlicher beschrieben ist.
  • 3 zeigt einen Prozess 300 zum Betreiben eines Gesprochene-Sprache-Verständnis-(SLU-)Systems, das die Ausgabe einer Spracherkennungseinheit verarbeitet, um einen Slot-Befüllungsvorgang durchzuführen. Der Prozess 300 wird auch als Ableitprozess bezeichnet, weil der Prozess 200 zuvor trainierte RNN-Kodierers und -Dekodierer gemeinsam mit dem Aufmerksamkeitsmechanismus und den Zeigernetzwerken im System 100 einsetzt, um Slot-Befüllung als Teil eines SLU-Systems durchführt. In der unten folgenden Beschreibung bezieht sich der Verweis auf den Prozess 300, der eine Funktion oder Aktion durchführt, auf den Betrieb eines Prozessors, um gespeicherte Programmanweisungen zum Durchführen des Betriebs in Verbindung mit Komponenten in einem automatischen Gesprochene-Sprache-Verständnissystem auszuführen. Beispielsweise umfasst die nachstehende Beschreibung Beschreibungen eines RNN-Kodierers, eines Aufmerksamkeitsmechanismus, eines RNN-Dekodierers und eines Zeigernetzwerks, die sich auf durch einen Prozessor durchgeführte Arbeitsvorgänge beziehen, die der Ausführung von gespeicherten Programmanweisungen in Verbindung mit Datenstrukturen des RNN-Kodierers und -Dekodierers dienen, welche in einem Speicher gespeichert sind, um den RNN-Kodierer oder -Dekodierer zu implementieren. Der Prozess 300 wird zur Veranschaulichung in Verbindung mit den Ausführungsformen von 1 und 2 beschrieben.
  • Der Prozess 300 beginnt, sobald das System 100 eine Eingangssequenz empfängt, die eine Vielzahl von Wörtern in einem Textausdruck von einem menschlichen Benutzer umfasst (Block 304). Im System 100 verwendet der Prozessor 128 die automatische Spracherkennungseinheit 136, um eine Sequenz von Wörtern im Textausdruck basierend auf einer Eingabe zu erzeugen, die von der Audioeingabevorrichtung 104 empfangen wird. In einer anderen Ausführungsform kann die Eingabe ein Freiform-Textausdruck sein, den der Benutzer mit einer Tastatur oder einem Handzeichen eingibt. Wie oben beschrieben , erfordert das Gesprochene-Sprache-Verständnissystem, während die Ausgabe des automatischen Spracherkennungsprozesses eine Sequenz von Wörtern in einem maschinenlesbaren Format identifizieren kann, zusätzliche Verarbeitung, um Wörter in der erweiterten Slot-Vokabulardatenbank 162, die Slots entsprechen, basierend auf der Eingangssequenz zu identifizieren.
  • Der Prozess 300 fährt fort, wenn das System 100 eine verschlüsselte Ausgabe mit Aufmerksamkeitsgewichtungen der natürlichen Sprache unter Verwendung des RNN-Kodierers mit dem Aufmerksamkeitsmechanismus 140 erzeugt (Block 308). Der Prozessor 128 verwendet den trainierten RNN-Kodierer 140, um sowohl die verschlüsselte Vektorausgabe, die auf einem Vorwärts- und Rückwärts-RNN-Kodierer, welcher zumindest zwei GRUs verwendet, basiert, als auch den Aufmerksamkeitsmechanismus, um Aufmerksamkeitsgewichtungen für jedes Wort in der ursprünglichen Eingangssequenz des Textausdrucks zu erzeugen. 2 zeigt den Betrieb des Kodierers 140 mit dem bidirektionalen RNN 242 und dem Aufmerksamkeitsmechanismus 244 für eine Eingangssequenzstichprobe von Wörtern in einem Textausdruck 208 detaillierter.
  • Während des Prozesses 300 verwendet das System 100 den RNN-Dekodierer 146 im Slotwort-Dekodierer 144, um eine erste Reihe von Wahrscheinlichkeitsverteilungsausgaben zu erzeugen, die während jedes Zeitschritts in einer Sequenz von Zeitschritten das wahrscheinlichste Wort bzw. die wahrscheinlichsten Wörter, welche einem beliebigen Slot entsprechen, identifizieren (Block 312). Der Prozessor 128 verwendet die verschlüsselte Ausgabe des letzten verborgenen Zustands h aus dem RNN-Kodierer 140 als Eingabe für den RNN-Dekodierer 146. Wie oben beschrieben, erzeugt der RNN-Dekodierer 146 Ausgaben, die Wahrscheinlichkeitsverteilungswerte für die vokabulareigenen Wörter, die in der Slot-Vokabulardatenbank 162 gespeichert sind, bereitstellen, obwohl der RNN-Dekodierer 146 eine Sequenz von Ausgaben basierend auf der verschlüsselten Eingabe aus dem RNN-Kodierer 140 erzeugt, der Informationen über alle Wörter in der Eingangssequenz, sowohl die vokabulareigenen als auch die vokabularexternen, verschlüsselt. In manchen Ausführungsformen verwendet der RNN-Dekodierer 146 auch den Aufmerksamkeitsvektor aus dem Aufmerksamkeitsmechanismus des RNN-Kodierers 140 als Eingabe, um die Genauigkeit der Vorhersage von Slotwörtern zu verbessern. In manchen Ausführungsformen ist die Wahrscheinlichkeitsausgabe des RNN-Dekodierers 146 für vokabularexterne Wörter zu jedem Zeitschritt in der Ausgangssequenz null, während der RNN-Dekodierer 146 für eines oder mehrere der vokabulareigenen Wörter, die in der erweiterten Slot-Vokabulardatenbank 162 gespeichert sind, Nicht-null-Wahrscheinlichkeitsverteilungswerte erzeugen kann.
  • Während des Prozesses 300 verwendet das System 100 auch das Zeigernetzwerk 148 im Slotwort-Dekodierer 144, um eine zweite Reihe von Wahrscheinlichkeitsverteilungsausgaben zu erzeugen, die basierend auf den Aufmerksamkeitsgewichtungen aus dem Aufmerksamkeitsmechanismus des RNN-Kodierers 140 jeweils eine Wahrscheinlichkeitsverteilung von potentiellen Slotwörtern in der Eingangssequenz während eines Zeitschritts (Block 316) vorhersagen. Der Prozessor 128 verwendet das Zeigernetzwerk 148 zur Erzeugung der Wahrscheinlichkeitsverteilung für Slotwerte von jedem Wort basierend auf den Aufmerksamkeitsgewichtungswerten für jede Worteingabe in der Sequenz und den aktuellen Zeitschritt. 2 zeigt auch den Betrieb des Slotwort-Dekodierers 144, einschließlich des Zeigernetzwerks 148, unter besonderer Berücksichtigung des Abschnitts der Wörter der Eingangssequenz 208, der das vokabularexterne Wort „orientalisch“ umfasst, das in der ursprünglichen Eingangssequenz 208 vorkommt und im Beispiel von 2 ein vokabularexternes Wort ist. Das Zeigernetzwerk 148 erzeugt eine Wahrscheinlichkeitsverteilungsausgabe für Wörter in der ursprünglichen Eingangssequenz, von der jedes Wort auch in der erweiterten Slot-Vokabulardatenbank 162 vorliegt. Das Zeigernetzwerk 148 kann eine Wahrscheinlichkeitsverteilung für sowohl vokabulareigene als auch vokabularexterne Slotwörter, die in der Eingangssequenz vorhanden sind, erzeugen, obwohl das System 100 das Zeigernetzwerk 148 besonders zum Identifizieren von vokabularextern Slotwörtern verwendet, während es zum Identifizieren von vokabulareigenen Slotwörtern hauptsächlich den RNN-Dekodierer 146 verwendet.
  • Das Prozess 300 fährt fort, wenn das System 100 eine gewichtete Kombination der Ausgaben des RNN-Dekodierers 146 und des Zeigernetzwerks 148 verwendet, um zu jedem Zeitschritt ein Slotwort (Block 320) zu identifizieren. Zur Kombination der Ausgaben erzeugt der Prozessor 128 eine Wahrscheinlichkeitsverteilung über das erweiterte Vokabular basierend auf der folgenden Funktion: P(w) = ptPgen(w) + (1 - pt)Pptr(w), worin w ein Wort ist, das aus dem gesamten Satz von Wörtern in der erweiterten Slot-Vokabulardatenbank 162 ausgewählt ist. 2 zeigt diesen Vorgang angewandt auf das Wort „orientalisch“ in der Sequenz 220 von 2. In der obigen Gleichung bezieht sich der Term Pgen(w) auf den Wahrscheinlichkeitsverteilungswert für das Wort w, den der RNN-Dekodierer 146 für ein gegebenes Wort w erzeugt, und der Term Pptr(w) bezieht sich auf den Wahrscheinlichkeitsverteilungswert für das Wort w, den das Zeigernetzwerk 148 für dasselbe Wort w erzeugt.
  • Bei der gewichteten Kombination des Prozesses 300, ist der Termpt ein Gewichtungswert mit einem Bereich von pt ∈ [0,1] und der definiert ist als pt = σ(wcct + wsst + wddt + b), worin σ eine Sigmoidfunktion ist, dt die Eingabe für den Slotwort-Dekodierer 144 zum Zeitschritt t ist, ct ein Kontextvektor des Aufmerksamkeitsmechanismus zum Zeitschritt t ist, st ein verborgener Zustand des RNN-Dekodierers 146 zum Zeitschritt t ist, die Terme wc, ws, und wd jeweils trainierbare Gewichtungswerte sind, die Teil des Zeigernetzwerks im Slotwort-Dekodierer 144 sind, und b für einen Biasterm steht, der ein skalarer Parameter ist, der während des Trainings zusammen mit wc, ws, und wd gelernt wurde. Der Prozessor 128 erzeugt den Gewichtungswert pt und verwendet den Gewichtungswert pt, um eine gewichtete Summe von Pgen und Pptr zu erzeugen, um die relativen Beiträge des RNN-Dekodierers 146 und des Zeigernetzwerks 148 zu berücksichtigen. Insbesondere basiert der Wert pt auf dem RNN-Dekodierer 146, und ein höherer Gewichtungswert von pt zeigt an, dass die Ausgabe des RNN-Dekodierers 146 hinsichtlich vokabulareigener Wörter begünstigt wird, während ein niedrigerer Wert von pt anzeigt, dass die Ausgabe des Zeigernetzwerks 148 hinsichtlich vokabularexterner Wörter begünstigt wird. Wie oben beschrieben, verändert sich der Wert von pt über eine Sequenz von Zeitschritten t, um variierende Gewichtungswerte für die Ausgabe des RNN-Dekodierers 146 oder des Zeigernetzwerks 148 bereitzustellen. Der Prozessor 128 identifiziert das Slotwort für jeden Zeitschritt unter Verwendung von beispielsweise dem Wort in der erweiterten Slot-Vokabulardatenbank 162, das den höchsten Wahrscheinlichkeitswert in der kombinierten Wahrscheinlichkeitsverteilung P(W) aller Wörter W hat, der die höchste Slotwortwahrscheinlichkeit aller Wörter in der erweiterten Slot-Vokabulardatenbank 162 aus der Kombination von Wahrscheinlichkeitsverteilungen sowohl des RNN-Dekodierers 146 als auch des Zeigernetzwerks 148 darstellt.
  • Bezugnehmend auf 2 zeigt die Gleichung 220 die gewichtete Summenkombination der Ausgaben des RNN-Dekodierers 146 und des Zeigernetzwerks 148 im Slotwort-Dekodierer 144 zur Erzeugung einer kombinierten Wahrscheinlichkeitsverteilung mit einem Eintrag, der dem Wort „orientalisch“ entspricht (P(oriental)). In 2 ordnet der Prozessor 128 der Ausgabe Pptr des Zeigernetzwerks 148 für das Vokabular externe Wort „orientalisch“ in Bezug auf die Ausgabe des RNN-Dekodierers 146 unter Verwendung von der Funktion pt zum Zeitschritt t eine gewichtete Differenz zu. In der Ausführungsform des Systems 100 ist die Ausgabe Pgen (orientalisch) aus dem RNN-Dekodierer 146 für das vokabularexterne Wort „orientalisch“ null, obwohl die Wahrscheinlichkeitswerte für vokabulareigene Wörter nicht-null sind, und der Wert vonpt beeinflusst zusätzlich zur Ausgabe Pptr aus dem Zeigernetzwerk 148 zu jedem Zeitschritt den letzten Wahrscheinlichkeitsverteilungswert für das Wort „orientalisch“. Das kombinierte Ergebnis P(w) ist in der Wahrscheinlichkeitsverteilung von Slotwörtern enthalten, die der Prozessor 128 verwendet, um basierend auf dem höchsten Wahrscheinlichkeitswert in der kombinierten Wahrscheinlichkeitsverteilung ein Slotwort für jeden Zeitschritt auszuwählen. Der Prozessor 128 ordnet anschließend mit dem Slotklassifikator 138 einem oder mehreren Slotwörtern eine Slotmarkierung aus der Slot-Datenbank 166 zu. Während des Prozesses 300 erzeugt das System 100 die Sequenz von Slotwörtern basierend auf den kombinierten Ausgaben des RNN-Dekodierers 146 und des Zeigernetzwerks 148 zu jedem Zeitschritt in der Sequenz, wie oben beschrieben wurde.
  • Wie oben beschrieben wurde, erzeugt der Prozess 300 eine Sequenz von Slotwörtern über eine Reihe von Zeitschritten, in denen sowohl der RNN-Dekodierer 146 als auch das Zeigernetzwerk 148 verschiedene Slotwort-Wahrscheinlichkeitsverteilungen für jeden Zeitschritt erzeugen. Der Prozess 300 fährt wie oben beschrieben für zumindest einen und potentiell mehr als einen Zeitschritt fort (Block 322), bis die letzte Slotwortausgabe zu einem letzten Zeitschritt aus einem oder beiden des RNN-Dekodierers 146 und des Zeigernetzwerks 148 erreicht ist. Nachdem die letzte Slotwortausgabe erzeugt wurde (Block 322), verwendet das System 100 die Slotwörter als Eingabe für zusätzliche SLU-Verarbeitung, wie weiter unten beschrieben wird. In einer Ausführungsform hört der Slotwort-Dekodierer 144 auf, Slotwörter zu senden, nachdem er entweder ein vorbestimmtes Endsymbol (z.B. </s>, wie in 2 gezeigt) als Slotwort gesendet hat, oder nachdem er eine vorbestimmte Höchstanzahl an Slotwörtern, etwa zehn Slotwörter, gesendet hat, ohne das Endsymbol zu senden.
  • Die nun folgende Tabelle 1 zeigt einige Beispiele von vorhergesagten Slotwörtern, die aus Sequenzen von Wörtern in Textausdruckseingaben unter Verwendung des Slot-Befüllungs-Prozesses 300 und unter Verwendung von Prozessen des Stands der Technik, einschließlich eines konvolutionalen neuronalen Netzwerkes (CNN) und des Seq2Seq-RNN-Kodierer/Dekodierer-Systems, das ein Aufmerksamkeitsmodell verwendet, erzeugt wurden. Wie unten zu sehen ist, kann der Prozess 300 ein einziges Slotwort oder mehrere Slotwörter aus einem Eingangssatz identifizieren, der zumindest ein Wort umfasst, das einem Slot entspricht. Der fett markierte Text in jeder Eingabe entspricht den Slotwörtern, die unter Verwendung eines Slotklassifikators in einen oder mehrere Slots gefüllt werden sollten, wobei die Slots für eine Eigenschaft eines Restaurants stehen, wie etwa Art, Standort oder Preis des Restaurants. In der folgenden Tabelle können die identifizierten Slotwörter in der ursprünglichen Eingabe enthalten sein, oder als Wort im erweiterten Vokabular, das in der ursprünglichen Eingabe nicht vorkommt, identifiziert werden. Tabelle 1: Beispiele für vorhergesagte Textwerte für Slots
    Eingabe: Dänisches Essen im Zentrum der Stadt
    System 100 Seq2Seq (Stand der Technik) CNN (Stand der Technik)
    Dänisches Zentrum Spanisches Zentrum Zentrum
    Eingabe: Ich möchte Singapurisch essen
    System 100 Seq2Seq (Stand der Technik) CNN (Stand der Technik)
    Singapurisch Koreanisch NULL (nicht gefunden)
    Eingabe: Wie wär's mit Chiquito
    System 100 Seq2Seq (Stand der Technik) CNN (Stand der Technik)
    Chiquito [Name des Restaurants] Portugiesisch NULL (nicht gefunden)
    Eingabe: ein teures Restaurant für Kantonesisches Essen
    System 100 Seq2Seq (Stand der Technik) CNN (Stand der Technik)
    Kantonesisch Portugiesisch teuer teuer
  • Der Prozess 300 fährt fort, wenn das System 100 einen Befehl, der im Eingabesatz des Benutzers spezifiziert ist, unter Verwendung von Wörtern der identifizierten Slots als Parameter zur Ausführung des Befehls durchführt (Block 324). In manchen Konfigurationen verwendet der Prozessor 128 zusätzlich zum Identifizieren der Slots für Wörter in der Eingangssequenz den Absichtsklassifikator 138, um die Absicht des Eingabesatzes zu identifizieren, und das System 100 führt einen Vorgang basierend auf der identifizierten Absicht unter Verwendung von spezifischen Slotwörtern und den identifizierten Slots als Parametern für den Vorgang durch. Unter Verwendung des Eingangstextausdrucks 208 von 2 als nichteinschränkendes Beispiel identifiziert das System 100 die Absicht als Eingangsaufforderung eines Benutzers zur Anzeige von Restaurants mit bestimmten Eigenschaften. Der Prozess der Slotworterzeugung erzeugt Wahrscheinlichkeitswerte zu jedem Zeitschritt in einer Sequenz von Zeitschritten, die die Wahrscheinlichkeit identifizieren, dass ein beliebiges Wort in der erweiterten Vokabulardatenbank 162, einschließlich sowohl vokabulareigener als auch vokabularexterner Wörter, ein Slotwort ist. Wie oben beschrieben kann das System 100 basierend auf der gewichteten Ausgabe des Slotwort-Dekodierers 144 Slotwörter, die im ursprünglichen Eingangstextausdruck nicht vorhanden sind, erzeugen, und Wörter, die im ursprünglichen und Eingangstextausdruck vorkommen, können bei erzeugten Slotwörtern ausgelassen werden. Nach dem Erzeugen von Slotwörtern verwendet der Prozessor 128 den Slotklassifikator 138, um den jeweiligen Slot für eines oder mehrere der Slotwörter zu identifizieren, und der Slotklassifikator 138 muss den ursprünglichen Eingangstext nicht verarbeiten, der, wie oben beschrieben wurde, oft Wörter umfasst, die keinem Slot entsprechen.
  • Während des Prozesses 300 verwendet der Prozessor 128 die Slotwörter, die spezifischen Slots zugewiesen sind, um einen Befehl auszuführen, wie beispielsweise eine Suchanfrage an eine externe Datenbank in Bezug auf Restaurants, die den Kriterien der Eingabe entsprechen, und steuert die Ausgabevorrichtung 112, um als Reaktion auf das Durchführen des Befehls, der die Slotwörter als Parameter verwendet, eine Ausgabe zu erzeugen. In einem bestimmten Beispiel erzeugt das System 100 eine Suchanfrage, um bestimmte Parameterfelder einzuschließen, und jedes Parameterfeld entspricht einem der vorbestimmten Slots in der Slot-Datenbank 166. Der Prozessor 128 verwendet die identifizierten Slotwörter aus dem Slot-Dekodierer 144, die Slots zugewiesen sind, unter Verwendung des Slotklassifikators 138 als Felder zur Ausführung der Anfrage. Der Slot-Befüllungsvorgang ermöglicht es dem System 100, die Benutzereingabe in natürlicher Sprache in einen für eine Maschine verständlichen Befehl zu übersetzen, der in diesem Beispiel eine Datenbankabfrage ist, bei der das System 100 die Slotwörter identifiziert, um eine automatische Reaktion auf die Eingabe in natürlicher Sprache mit verbesserter Genauigkeit zu bewirken.
  • Die hier beschriebenen Ausführungsformen ermöglichen Verbesserungen der Identifizierung von Slotwörtern bei Slot-Befüllungsvorgängen in SLU-Systemen. Insbesondere stellt das System 100 Verbesserungen in Bezug auf die Kombination von Genauigkeit (P) und Trefferquote (R) des Slotzuordnungsprozesses bereit, die durch Verwendung von F1-Metrik ausgedrückt wird. F1-Metrik ist ein gewichtetes Mittel der Bewertungen von Genauigkeit (P) und Trefferquote (R) auf einer vorbestimmten Skala, wie etwa einer Skala von 0,0 (am schlechtesten) bis 100,0 (am besten), obwohl die F1-Metrik oft auch auf einer Skala 0,0 bis 1,0 ausgedrückt wird. Tabelle 2 zeigt die Ergebnisse von Slotwertvorhersage mit Variationen hinsichtlich Trainingsgröße und OOV-Verhältnis einer konvolutionalen neuronalen Netzwerks (CNN), einer RNN-Kodierer/Dekodierer-Grundstruktur des Stands der Technik mit einem Aufmerksamkeitsmechanismus (Seq2Seq) und das System 100, das den Prozess 300 durchführt: Tabelle 2: Slotwertvorhersageergebnisse mit Variationen hinsichtlich Trainingsgröße und OOV-Verhältnis
    Trainingsgröße 5 % 10 % 15 % 20 %
    OOV-Verhältnis (16 %) (12 %) (4 %) (2 %)
    CNN P 91,6 93,0 92,7 93,4
    (Stand der Technik) R 61,7 62,5 65,8 69,2
    F1 73,7 74,8 77,0 79,5
    Seq2Seq P 81,3 83,6 84,1 85,3
    w/ Aufmerksamkeit R 69,6 74,7 74,9 76,5
    (Stand der Technik) F1 75,0 78,9 79,2 80,7
    System 100 P 86,9 86,4 85,7 85,9
    R 73,2 75,3 77,0 77,4
    F1 79,5 80,5 81,1 81,4
  • Wie oben in Tabelle 2 zu sehen ist, zeigen die F1-Bewertungen die höchsten Werte für das System 100 über eine große Bandbreite von Trainingssatzgrößen mit unterschiedlichen Verhältnissen von als vokabularextern erachteten Worteingaben. Das System 100 verwendet sowohl die RNN-Kodierer/Dekodierer-Grundstruktur als auch das Zeigernetzwerk zur Verbesserung der Gesamtergebnisse, die sowohl Genauigkeit als auch Trefferquote abwägen. Wie oben gezeigt, weist das CNN des Stands der Technik in einigen Fällen eine größere Genauigkeit P auf, doch ist das Ausmaß der Trefferquote R des CNN-System des Stands der Technik im Wesentlichen geringer als beim System 100, und die F1-Gewamtbewertungen für das System 100 sind besser als bei den Ausführungsformen des Stands der Technik von CNN oder Seq2Seq. Somit stellen die hier beschriebenen Ausführungsformen, die das System 100 und den Prozess 300 umfassen, jeweils Verbesserungen des Betriebs von Computern, die zur Umsetzung von SLU-Systemen verwendet werden, bereit.
  • Es versteht sich, dass Varianten von den oben offenbarten und von anderen Merkmalen und Funktionen oder alternative Funktionen davon sich vorteilhafterweise zu vielen anderen verschiedenen Systemen, Anwendungen oder Verfahren kombinieren lassen. Es können in der Folge verschiedene derzeit nicht vorgesehene oder nicht geplante Alternativen, Modifikationen, Abwandlungen oder Verbesserungen durch Fachleute auf dem Gebiet vorgenommen werden, die von den nun folgenden Ansprüchen ebenfalls abgedeckt sind.
  • 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 62678406 [0001]

Claims (20)

  1. Verfahren zum Betreiben eines Gesprochene-Sprache-Verständnis-(SLU-)Systems, Folgendes umfassend: Empfangen einer Eingangssequenz, die eine Vielzahl von Wörtern in einem Textausdruck umfasst, mit einem Prozessor im SLU-System; Erzeugen einer verschlüsselten Ausgabe, die der Vielzahl von Wörtern entspricht, und einer Vielzahl von Aufmerksamkeitsgewichtungen, die der Vielzahl von Wörtern entsprechen, mit dem Prozessor unter Verwendung eines Rekurrentes-neuronales-Netzwerk-(RNN-)Kodierers, der einen Aufmerksamkeitsmechanismus aufweist, der die Vielzahl von Wörtern als Eingaben für den RNN-Kodierer empfängt; Erzeugen einer ersten Wahrscheinlichkeitsverteilung, die einer Vielzahl von Wörtern in einer erweiterten Slot-Vokabulardatenbank entspricht, die ein Slotwort zu einem Zeitschritt ist, mit dem Prozessor unter Verwendung eines RNN-Dekodierers, der die verschlüsselte Ausgabe aus dem RNN-Kodierer als Eingabe empfängt; Erzeugen einer zweiten Wahrscheinlichkeitsverteilung, die der Vielzahl von Wörtern in der Eingangssequenz entspricht, die ein Slotwort zu dem Zeitschritt ist, mit dem Prozessor unter Verwendung eines Zeigernetzwerks, das die Vielzahl von Aufmerksamkeitsgewichtungen als Eingabe empfängt; Erzeugen einer kombinierten Wahrscheinlichkeitsverteilung mit dem Prozessor basierend auf der ersten Wahrscheinlichkeitsverteilung und der zweiten Wahrscheinlichkeitsverteilung; Identifizieren eines Slotworts, das einem Wort in der erweiterten Slot-Vokabulardatenbank mit einem höchsten Wahrscheinlichkeitswert in der kombinierten Wahrscheinlichkeitsverteilung für den Zeitschritt entspricht, mit dem Prozessor; und Durchführen eines Befehls mit dem Prozessor unter Verwendung des Slotworts als Parameter für den Befehl.
  2. Verfahren nach Anspruch 1, wobei das Erzeugen der kombinierten Wahrscheinlichkeitsverteilung ferner Folgendes umfasst: Erzeugen eines Gewichtungswerts mit dem Prozessor basierend auf einem Zustand des RNN-Dekodierers; und Erzeugen der kombinierten Wahrscheinlichkeitsverteilung als gewichtete Summe der ersten Wahrscheinlichkeitsverteilung und der zweiten Wahrscheinlichkeitsverteilung mit dem Prozessor unter Verwendung des Gewichtungswerts.
  3. Verfahren nach Anspruch 2, ferner Folgendes umfassend: Erzeugen des Gewichtungswerts als pt zum Zeitschritt t mit dem Prozessor basierend auf der folgenden Funktion pt = σ(wcct + wsst + wddt + b) worin ct ein Kontextvektor des Aufmerksamkeitsmechanismus ist, st ein verborgener Zustandswert des RNN-Dekodierers ist, dt eine Eingabe für den RNN-Dekodierer ist, wc, ws, und wd eine Vielzahl von trainierbaren Gewichtungswerten sind, und b ein Biasterm ist.
  4. Verfahren nach Anspruch 3, ferner Folgendes umfassend: Erzeugen der kombinierten Wahrscheinlichkeitsverteilung, die einen Wahrscheinlichkeitswert P(w) umfasst, worin w ein Wort in der Vielzahl von Wörtern in der erweiterten Slot-Vokabulardatenbank ist, mit dem Prozessor, basierend auf der folgenden Funktion: P ( w ) = p t P g e n ( w ) + ( 1 p t ) P p t r ( w ) ,
    Figure DE102019207712A1_0007
    worin Pgen die erste Wahrscheinlichkeitsverteilung ist, und Pptr die zweite Wahrscheinlichkeitsverteilung ist.
  5. Verfahren nach Anspruch 2, wobei der Prozessor den Gewichtungswert erzeugt, um die erste Wahrscheinlichkeitsverteilung, die durch den RNN-Dekodierer als Reaktion darauf erzeugt wurde, dass das erste Wort ein vokabulareigenes Wort ist, zu bevorzugen, und der Prozessor den Gewichtungswert erzeugt, um die zweite Wahrscheinlichkeitsverteilung, die durch das Zeigernetzwerk als Reaktion darauf erzeugt wurde, dass das erste Wort ein vokabularexternes Wort ist, zu bevorzugen.
  6. Verfahren nach Anspruch 1, wobei der RNN-Kodierer ein bidirektionaler RNN-Kodierer ist.
  7. Verfahren nach Anspruch 6, wobei der RNN-Kodierer zumindest zwei rekurrente Gate-Einheiten umfasst.
  8. Verfahren nach Anspruch 7 wobei der RNN-Dekodierer zumindest eine rekurrente Gate-Einheit umfasst.
  9. Verfahren nach Anspruch 6, wobei der RNN-Dekodierer ein unidirektionaler RNN-Dekodierer ist.
  10. Verfahren nach Anspruch 1, ferner Folgendes umfassend: Erzeugen der Vielzahl von Wörtern im Textausdruck mit dem Prozessor unter Verwendung einer Automatische-Spracherkennungs-Engine basierend auf Audiodaten, die unter Verwendung einer Audioeingabevorrichtung empfangen wurden.
  11. System für das Verstehen von gesprochener Sprache, Folgendes umfassend: eine Eingabevorrichtung; eine Ausgabevorrichtung; einen Speicher; und einen Prozessor, der operativ mit der Eingabevorrichtung, der Ausgabevorrichtung und dem Speicher verbunden ist, wobei der Prozessor konfiguriert ist, um: basierend auf einer mit der Eingabevorrichtung empfangenen Eingabe eine Eingangssequenz zu empfangen, die eine Vielzahl von Wörtern in einem Textausdruck umfasst; unter Verwendung eines Rekurrentes-neuronales-Netzwerk-(RNN-)Kodierers, der einen Aufmerksamkeitsmechanismus aufweist, der im Speicher gespeichert ist, der die Vielzahl von Wörtern als Eingaben für den RNN-Kodierer empfängt, eine verschlüsselte Ausgabe, die der Vielzahl von Wörtern entspricht, und eine Vielzahl von Aufmerksamkeitsgewichtungen, die der Vielzahl von Wörtern entsprechen, zu erzeugen; unter Verwendung eines im Speicher gespeicherten RNN-Dekodierers, der die verschlüsselte Ausgabe aus dem RNN-Kodierer als Eingabe empfängt, eine erste Wahrscheinlichkeitsverteilung, die einer Vielzahl von Wörtern in einer im Speicher gespeicherten erweiterten Slot-Vokabulardatenbank entspricht, die ein Slotwort zu einem Zeitschritt ist, zu erzeugen; unter Verwendung eines Zeigernetzwerks, das die Vielzahl von Aufmerksamkeitsgewichtungen als Eingabe empfängt, eine zweite Wahrscheinlichkeitsverteilung, die der Vielzahl von Wörtern in der Eingangssequenz entspricht, die ein Slotwort zum Zeitschritt ist, zu erzeugen; basierend auf der ersten Wahrscheinlichkeitsverteilung und der zweiten Wahrscheinlichkeitsverteilung eine kombinierte Wahrscheinlichkeitsverteilung zu erzeugen; ein Slotwort, das einem Wort in der erweiterten Slot-Vokabulardatenbank mit einem höchsten Wahrscheinlichkeitswert in der kombinierten Wahrscheinlichkeitsverteilung für den Zeitschritt entspricht, zu identifizieren, und einen Befehl unter Verwendung des Slotworts als Parameter für den Befehl durchzuführen, um mit der Ausgabevorrichtung eine Ausgabe zu erzeugen.
  12. System nach Anspruch 11, wobei der Prozessor ferner konfiguriert ist, um: einen Gewichtungswert basierend auf einem Zustand des RNN-Dekodierers zu erzeugen; und unter Verwendung des Gewichtungswerts die kombinierte Wahrscheinlichkeitsverteilung als gewichtete Summe der ersten Wahrscheinlichkeitsverteilung und der zweiten Wahrscheinlichkeitsverteilung zu erzeugen.
  13. System nach Anspruch 12, wobei der Prozessor ferner konfiguriert ist, um: den Gewichtungswert als pt zum Zeitschritt t basierend auf der folgenden Funktion zu erzeugen: pt = σ(wcct + wsst + wddt + b) worin ct ein Kontextvektor des Aufmerksamkeitsmechanismus ist, st ein verborgener Zustandswert des RNN-Dekodierers ist, dt eine Eingabe für den RNN-Dekodierer ist, wc, ws, und wd eine Vielzahl von trainierbaren Gewichtungswerten sind, and b ein Biasterm ist.
  14. System nach Anspruch 13, wobei der Prozessor ferner konfiguriert ist, um: die kombinierte Wahrscheinlichkeitsverteilung, die einen Wahrscheinlichkeitswert P(w) umfasst, zu erzeugen, worin w ein Wort in der Vielzahl von Wörtern in der erweiterten Slot-Vokabulardatenbank ist, basierend auf der folgenden Funktion: P ( w ) = p t P g e n ( w ) + ( 1 p t ) P p t r ( w ) ,
    Figure DE102019207712A1_0008
    worin Pgen die erste Wahrscheinlichkeitsverteilung ist und Pptr die zweite Wahrscheinlichkeitsverteilung ist.
  15. System nach Anspruch 12, wobei der Prozessor ferner konfiguriert ist, um den Gewichtungswert zu erzeugen, um die erste Wahrscheinlichkeitsverteilung, die durch den RNN-Dekodierer als Reaktion darauf erzeugt wurde, dass das erste Wort ein vokabulareigenes Wort ist, zu bevorzugen, und wobei der Prozessor den Gewichtungswert erzeugt, um die zweite Wahrscheinlichkeitsverteilung, die durch das Zeigernetzwerk als Reaktion darauf erzeugt wurde, dass das erste Wort ein vokabularexternes Wort ist, zu bevorzugen.
  16. System nach Anspruch 11, wobei der RNN-Kodierer ein bidirektionaler RNN-Kodierer ist.
  17. System nach Anspruch 16, wobei der RNN-Kodierer zumindest zwei rekurrente Gate-Einheiten umfasst.
  18. System nach Anspruch 17, wobei der RNN-Dekodierer zumindest eine rekurrente Gate-Einheit umfasst.
  19. System nach Anspruch 16, wobei der RNN-Dekodierer ein unidirektionaler RNN-Dekodierer ist.
  20. System nach Anspruch 11, wobei die Eingabevorrichtung ferner Folgendes umfasst: eine Audioeingabevorrichtung; und wobei der Prozessor ferner konfiguriert ist, um unter Verwendung einer Automatische-Spracherkennungs-Engine basierend auf Audiodaten, die unter Verwendung der Audioeingabevorrichtung empfangen wurden, die Vielzahl von Wörtern im Textausdruck zu erzeugen.
DE102019207712.9A 2018-05-31 2019-05-27 Slot-Befüllung beim Gesprochene-Sprache-Verständnis mit einer Kombination aus Zeiger und Aufmerksamkeit Pending DE102019207712A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862678406P 2018-05-31 2018-05-31
US62/678,406 2018-05-31
US16/057,521 US10770066B2 (en) 2018-05-31 2018-08-07 Slot filling in spoken language understanding with joint pointer and attention
US16/057,521 2018-08-07

Publications (1)

Publication Number Publication Date
DE102019207712A1 true DE102019207712A1 (de) 2019-12-05

Family

ID=68576487

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019207712.9A Pending DE102019207712A1 (de) 2018-05-31 2019-05-27 Slot-Befüllung beim Gesprochene-Sprache-Verständnis mit einer Kombination aus Zeiger und Aufmerksamkeit

Country Status (1)

Country Link
DE (1) DE102019207712A1 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538831A (zh) * 2020-06-05 2020-08-14 支付宝(杭州)信息技术有限公司 一种文本生成方法、装置及电子设备
CN111984782A (zh) * 2020-07-01 2020-11-24 中央民族大学 藏文文本摘要生成方法和系统
US20220020362A1 (en) * 2020-07-17 2022-01-20 Samsung Electronics Co., Ltd. Speech signal processing method and apparatus

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538831A (zh) * 2020-06-05 2020-08-14 支付宝(杭州)信息技术有限公司 一种文本生成方法、装置及电子设备
CN111538831B (zh) * 2020-06-05 2023-04-18 支付宝(杭州)信息技术有限公司 一种文本生成方法、装置及电子设备
CN111984782A (zh) * 2020-07-01 2020-11-24 中央民族大学 藏文文本摘要生成方法和系统
US20220020362A1 (en) * 2020-07-17 2022-01-20 Samsung Electronics Co., Ltd. Speech signal processing method and apparatus
US11670290B2 (en) * 2020-07-17 2023-06-06 Samsung Electronics Co., Ltd. Speech signal processing method and apparatus

Similar Documents

Publication Publication Date Title
DE102020205786B4 (de) Spracherkennung unter verwendung von nlu (natural language understanding)-bezogenem wissen über tiefe vorwärtsgerichtete neuronale netze
DE112017004374B4 (de) System und Verfahren zur Spracherkennung
US10770066B2 (en) Slot filling in spoken language understanding with joint pointer and attention
DE112017004397T5 (de) System und Verfahren zur Einstufung von hybriden Spracherkennungsergebnissen mit neuronalen Netzwerken
DE60033733T2 (de) Datenbankabfragesystem basierend auf Spracherkennung
DE102019005851A1 (de) Objektdetektion in Bildern
DE112014002819B4 (de) System und Verfahren zur Erkennung von Sprache
EP1135767B1 (de) Verfahren und anordnung zur klassenbildung für ein sprachmodell basierend auf linguistischen klassen
DE602004012909T2 (de) Verfahren und Vorrichtung zur Modellierung eines Spracherkennungssystems und zur Schätzung einer Wort-Fehlerrate basierend auf einem Text
DE69828141T2 (de) Verfahren und Vorrichtung zur Spracherkennung
DE112013006770B4 (de) Spracherkennungsvorrichtung und Spracherkennungsverfahren
DE102018009243A1 (de) Abstrahierendes Zusammenfassen langer Dokumente unter Nutzung des Deep-Learning strukturierter Dokumente
DE69816676T2 (de) System und verfahren zur bestimmung und minimalisierung eines endlichen transducers zur spracherkennung
DE69818231T2 (de) Verfahren zum diskriminativen training von spracherkennungsmodellen
DE69827988T2 (de) Sprachmodelle für die Spracherkennung
DE102019004300A1 (de) Verwendung eines dynamischen speichernetzwerks zum verfolgen digitaler dialogzustände und erzeugen von antworten
DE102019207712A1 (de) Slot-Befüllung beim Gesprochene-Sprache-Verständnis mit einer Kombination aus Zeiger und Aufmerksamkeit
DE112018002601T5 (de) Verarbeitung natürlicher sprache unter verwendung von kontextspezifischen wortvektoren
DE102018007936A1 (de) Beantworten von Fragen für Datenvisualisierungen
DE102016125594A1 (de) Automatisch augmentierende Nachrichtenaustauschthread basierend auf der Nachrichtenklassifizierung
DE202017106303U1 (de) Bestimmen phonetischer Beziehungen
DE102021004157A1 (de) Maschinell lernendes Modellieren zum Schutz gegen die Online-Offenlegung empfindlicher Daten
DE112018005272T5 (de) Suchen von mehrsprachigen dokumenten auf grundlage einer extraktion der dokumentenstruktur
DE102018008188A1 (de) Erstellen von Inhalt basierend auf einer Mehr-Satz-Komprimierung eines Quellinhalts
DE112016006512T5 (de) Absichtseinschätzungsvorrichtung und Absichtseinschätzungsverfahren

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G10L0015160000

Ipc: G06F0040350000