-
HINTERGRUND
-
In den letzten Jahren gab es signifikante Verbesserungen bei Hardware- und Softwareplattformen, die eine künstliche Intelligenz zum Erleichtern eines Dialogs zwischen einer Vorrichtung und einem Nutzer einsetzen. Beispielsweise stellen viele moderne Vorrichtungen einen virtuellen Assistenten bereit, mit dem ein Nutzer zum Fragen oder Durchführen von Suchanfragen interagieren kann. Viele dieser Dialogplattformen nutzen Systeme zum intelligenten Verfolgen des Zustands eines Dialogs bei jedwedem gegebenen Punkt zum Bestimmen einer Antwort, die für ein bestimmtes Dialogsegment (z.B. eine Aussage oder eine Frage) im Hinblick auf einen umgebenden Kontext relevant ist. Beispielsweise kann ein Dialogzustand-Verfolgungssystem einen gegenwärtigen Dialogzustand im Hinblick auf ein gegenwärtiges Dialogsegment und dessen umgebenden Kontext bestimmen. Das System kann dann den gegenwärtigen Dialogzustand zum Bereitstellen einer Antwort auf das gegenwärtige Dialogsegment nutzen.
-
Obwohl diese herkömmlichen Systeme digitale Dialogzustände zum Bereitstellen von digitalen Antworten verfolgen können, weisen solche Systeme mehrere technologische Mängel auf, die zu einem unflexiblen, ungenauen und ineffizienten Betrieb führen. Beispielsweise sind herkömmliche Dialogzustand-Verfolgungssysteme häufig dahingehend unflexibel, dass sie starr den gegenwärtigen Zustand eines Dialogs bestimmen, der einem gegenwärtigen Dialogsegment entspricht, ohne relevante Dialogsegmente zu berücksichtigen, die für den gegenwärtigen Zustand relevant sein könnten. Insbesondere nutzen viele herkömmliche Systeme Dialogzustand-Verfolgungsmodelle (z.B. neuronale Netzwerkarchitekturen, wie z.B. LSTMs und GRUs), die relevante Informationen bezüglich vorhergehender Segmente eines Dialogs nicht bewahren können. Beispielsweise wenn die Modelle neue Segmente eines Dialogs verarbeiten, können sie ihre Datenspeicher kontinuierlich mit den neuen Daten aktualisieren, die jedem Segment entsprechen. Folglich neigen die Modelle dazu, die alten, früher gespeicherten Daten herauszuschieben (d.h., zu „vergessen“), selbst wenn die Daten nach wie vor relevant sind. Daher können, wenn ein Nutzer ein neues Segment eines Dialogs mit einem Kontext bereitstellt, der durch vorhergehende Segmente eines Dialogs informiert wird, die dem neuen Segment signifikant vorangingen, die Modelle diese vorhergehenden Segmente gegebenenfalls nicht berücksichtigen.
-
Zusätzlich zu Flexibilitätsbedenken sind herkömmliche Dialogzustand-Verfolgungssysteme auch ungenau. Beispielsweise haben herkömmliche Systeme typischerweise Schwierigkeiten, digitale Dialogzustände genau zu bestimmen. Insbesondere da herkömmliche Systeme häufig Modelle nutzen, die beim Bewahren von relevanten Informationen bezüglich alter Dialogsegmente Schwierigkeiten haben - selbst wenn diese für den gegenwärtigen Zustand des Dialogs relevant sind - versagen solche Systeme häufig beim Erzeugen von digitalen Dialogzuständen, die auf allen relevanten Informationen basieren. Folglich können die herkömmlichen Systeme eine digitale Dialogzustandvorhersage erzeugen, die nicht genau den wahren gegenwärtigen Zustand des Dialogs wiedergibt.
-
Zusätzlich zu Problemen bezüglich der Flexibilität und der Genauigkeit sind herkömmliche Dialogzustand-Verfolgungssysteme auch ineffizient. Insbesondere da die herkömmlichen Systeme häufig den digitalen Dialogzustand ungenau bestimmen, stellen solche Systeme im Allgemeinen nicht hilfreiche Dialogsegmente bereit, die zusätzliche Nutzerinteraktionen erfordern, um die korrekte Antwort zu erhalten. Beispielsweise kann ein herkömmliches System erfordern, dass ein Nutzer eine Aussage umformuliert oder eine andere Frage stellt (häufig mehrfach), bevor die richtige Antwort gegeben wird. Aufgrund der erhöhten Interaktionen erfordern solche herkömmlichen Systeme häufig zusätzliche Rechenressourcen (z.B. Verarbeitungsleistung und Speicher), um eine geeignete Antwort zu geben.
-
Diese Probleme und Themen existieren einhergehend mit zusätzlichen Problemen und Themen bezüglich herkömmlicher Dialogzustand-Verfolgungssysteme.
-
ZUSAMMENFASSUNG
-
Eine oder mehrere Ausführungsform(en), die hier beschrieben ist oder sind, stellt oder stellen einen Nutzen bereit und/oder löst oder lösen eines oder mehrere der vorstehend genannten oder weitere Probleme im Stand der Technik mit Systemen, Verfahren und nicht-flüchtigen computerlesbaren Speichermedien, die Antworten auf der Basis von digitalen Dialogzuständen erzeugen, die durch ein neuronales Netzwerk mit einer dynamischen Speichernetzwerkarchitektur erzeugt werden. Beispielsweise stellen die offenbarten Systeme in einer oder mehrere Ausführungsform(en) einen digitalen Dialog mit einem oder mehreren Segment(en) (z.B. Aussagen, Fragen, usw.) für ein Dialogzustand-verfolgendes neuronales Netzwerk bereit, das zum Erzeugen digitaler Dialogzustände trainiert wird bzw. ist. Insbesondere kann das Dialogzustand-verfolgende neuronale Netzwerk eine dynamische Speichernetzwerkarchitektur mit einer Mehrzahl von Speicherplätzen umfassen, wobei jeder davon eine latente Darstellung kodiert, die einem wichtigen Gegenstand des Dialogs (z.B. Thema, durchzuführende Aktion, usw.) entspricht. In einer oder mehreren Ausführungsform(en) verarbeitet das Dialogzustand-verfolgende neuronale Netzwerk jedes Dialogsegment zum Modifizieren der Werte eines Speicherplatzes oder mehrerer Speicherplätze unter Verwendung eines Gatterverarbeitungsmechanismus (z.B. eines Rücksetzgatters und eines Aktualisierungsgatters). In einigen Ausführungsformen modifiziert der Gatterverarbeitungsmechanismus die Werte eines Speicherplatzes auf der Basis von platzübergreifenden („cross-slot“-) Interaktionen zwischen dem Speicherplatz und weiteren Speicherplätzen unter Verwendung des Rücksetzgatters und des Aktualisierungsgatters. Nach dem Verarbeiten jedes Segments eines digitalen Dialogs bestimmt das Dialogzustand-verfolgende neuronale Netzwerk einen digitalen Dialogzustand auf der Basis der letzten Platzwerte und die offenbarten Systeme erzeugten eine digitale Antwort auf das Segment auf der Basis des bestimmten Zustands. Auf diese Weise können die offenbarten Systeme flexibel, genau und effizient digitale Antworten erzeugen, die auf allen relevanten Informationen basieren.
-
Zur Veranschaulichung kann in einer oder mehreren Ausführungsform(en) ein System einen digitalen Dialog identifizieren, der ein erstes Segment und ein zweites Segment (z.B. zwei Abschnitte einer Unterhaltung) umfasst. Anschließend kann das System den digitalen Dialog für ein Dialogzustand-verfolgendes neuronales Netzwerk bereitstellen, das ein dynamisches Speichernetzwerk mit einer Mehrzahl von Speicherplätzen und einer Mehrzahl von entsprechenden Rücksetzgattern umfasst. Das System kann das Dialogzustand-verfolgende neuronale Netzwerk zum Erzeugen eines Werts für einen Speicherplatz auf der Basis des ersten Segments nutzen und dann ein Rücksetzgatter, das mit dem Speicherplatz zusammenhängt, zum Erzeugen eines neuen Werts für den Speicherplatz auf der Basis des zweiten Segments nutzen. In einigen Ausführungsformen nutzt das System auch ein Aktualisierungsgatter, das mit dem Speicherplatz zusammenhängt, zum Erzeugen des neuen Werts. In weiteren Ausführungsformen sind das Rücksetzgatter und das Aktualisierungsgatter des Systems platzübergreifende Interaktion-Gatter, die auf der Basis von platzübergreifenden Interaktionen arbeiten, die zwischen Speicherplätzen in dem dynamischen Speichernetzwerk identifiziert werden. Nach dem Erzeugen des neuen Werts kann das System einen digitalen Dialogzustand, der dem zweiten Segment entspricht, auf der Basis des neuen Werts des Speicherplatzes erzeugen. Das System kann dann eine digitale Antwort auf das zweite Segment auf der Basis des digitalen Dialogzustands erzeugen.
-
Zusätzliche Merkmale und Vorteile einer oder mehrerer Ausführungsform(en) der vorliegenden Offenbarung sind in der nachstehenden Beschreibung angegeben und ergeben sich teilweise aus der Beschreibung oder aus der praktischen Durchführung solcher beispielhaften Ausführungsformen.
-
Figurenliste
-
Die detaillierte Beschreibung zeigt eine oder mehrere Ausführungsform(en) durch die Verwendung der beigefügten Zeichnungen, die nachstehend kurz beschrieben sind, genauer und detaillierter.
- 1 zeigt ein Blockdiagramm des Dialogzustand-Verfolgungssystems, das Antworten für Segmente eines digitalen Dialogs erzeugt, gemäß einer oder mehrerer Ausführungsform(en);
- 2 zeigt ein Beispiel für einen Austausch von Dialogsegmenten und Antworten gemäß einer oder mehrerer Ausführungsform(en);
- 3 zeigt ein schematisches Diagramm einer dynamischen Speichernetzwerkarchitektur eines Dialogzustand-verfolgenden neuronalen Netzwerks, das zum Erzeugen digitaler Dialogzustände gemäß einer oder mehrerer Ausführungsform(en) trainiert wird;
- 4A bis 4C zeigen ein schematisches Diagramm einer dynamischen Speichereinheit mit einem einzelnen Aktualisierungsgatter gemäß einer oder mehrerer Ausführungsform(en);
- 5A bis 5D zeigen ein schematisches Diagramm einer dynamischen Speichereinheit mit einem Aktualisierungsgatter und einem Rücksetzgatter gemäß einer oder mehrerer Ausführungsform(en);
- 6 zeigt ein schematisches Diagramm einer dynamischen Speichereinheit mit platzübergreifende Interaktion-Gattern gemäß einer oder mehrerer Ausführungsform(en);
- 7 zeigt ein Blockdiagramm des Dialogzustand-Verfolgungssystems zum Erzeugen einer Antwort auf der Basis eines digitalen Dialogzustands gemäß einer oder mehrerer Ausführungsform(en);
- 8 zeigt ein Blockdiagramm des Trainierens eines Dialogzustand-verfolgenden neuronalen Netzwerks zum Erzeugen digitaler Dialogzustände gemäß einer oder mehrerer Ausführungsform(en);
- 9 zeigt eine Tabelle, die experimentelle Ergebnisse bezüglich der Effektivität des Dialogzustand-Verfolgungssystems gemäß einer oder mehrerer Ausführungsform(en) wiedergibt;
- 10 zeigt eine beispielhafte Umgebung, in der ein Dialogzustand-Verfolgungssystem betrieben werden kann, gemäß einer oder mehrerer Ausführungsform(en);
- 11 zeigt ein beispielhaftes schematisches Diagramm eines Dialogzustand-Verfolgungssystems gemäß einer oder mehrerer Ausführungsform(en);
- 12 zeigt ein Flussdiagramm einer Reihe von Vorgängen zum Erzeugen einer Antwort auf ein Segment eines digitalen Dialogs auf der Basis des digitalen Dialogzustands gemäß einer oder mehrerer Ausführungsform(en); und
- 13 zeigt ein Blockdiagramm einer beispielhaften Rechenvorrichtung gemäß einer oder mehrerer Ausführungsform(en).
-
DETAILLIERTE BESCHREIBUNG
-
Eine oder mehrere Ausführungsform(en), die hier beschrieben ist oder sind, umfasst oder umfassen ein Dialogzustand-Verfolgungssystem, das Antworten auf der Basis digitaler Dialogzustände erzeugt, die durch ein neuronales Netzwerk mit einer dynamischen Speichernetzwerkarchitektur erzeugt werden. Beispielsweise kann das Dialogzustand-Verfolgungssystem ein Dialogzustand-verfolgendes neuronales Netzwerk nutzen, das digitale Dialogzustände auf der Basis von Werten erzeugt, die in einer Mehrzahl von Speicherplätzen gespeichert sind, die jeweils eine latente Darstellung kodieren, die einem wichtigen Thema des Dialogs entspricht. Das Dialogzustand-verfolgende neuronale Netzwerk kann die Speicherplatzwerte durch Verarbeiten von Segmenten des digitalen Dialogs erzeugen. In einigen Ausführungsformen erzeugt das Dialogzustand-verfolgende neuronale Netzwerk die Speicherplatzwerte unter Verwendung von Gatterverarbeitungsmechanismen (z.B. von Rücksetzgattern und Aktualisierungsgattern), die den Einfluss eines gegenwärtigen Dialogsegments oder von vorhergehenden Dialogsegmenten bestimmen. In einigen Ausführungsformen erzeugen die Gatterverarbeitungsmechanismen ferner die Werte auf der Basis von Korrelationen zwischen Speicherplätzen. Das Dialogzustand-verfolgende neuronale Netzwerk nutzt die Speicherplatzwerte zum Erzeugen digitaler Dialogzustände und das Dialogzustand-Verfolgungssystem nutzt dann diese Zustände zum Erzeugen digitaler Antworten auf die Dialogsegmente.
-
Als Beispiel stellt das Dialogzustand-Verfolgungssystem in einer oder mehreren Ausführungsform(en) einen digitalen Dialog für ein Dialogzustand-verfolgendes neuronales Netzwerk mit einer dynamischen Speicherarchitektur bereit, die eine Mehrzahl von Speicherplätzen und Rücksetzgattern umfasst. Das Dialogzustand-Verfolgungssystem nutzt das neuronale Netzwerk zum Erzeugen eines ersten Werts eines Speicherplatzes auf der Basis eines ersten Segments des digitalen Dialogs. Anschließend nutzt das Dialogzustand-verfolgende neuronale Netzwerk ein Rücksetzgatter, das mit dem Speicherplatz zusammenhängt, zum Erzeugen eines zweiten Werts für den Speicherplatz auf der Basis eines zweiten Segments des digitalen Dialogs. In einigen Ausführungsformen erzeugt das Dialogzustand-verfolgende neuronale Netzwerk den zweiten Wert des Speicherplatzes ferner durch Verwenden eines Aktualisierungsgatters im Zusammenhang mit dem ersten Speicherplatz. In einigen Ausführungsformen nutzt das Dialogzustand-verfolgende neuronale Netzwerk das Rücksetzgatter und das Aktualisierungsgatter zum Erzeugen des zweiten Werts auf der Basis von platzübergreifenden Interaktionen zwischen dem Speicherplatz und weiteren Speicherplätzen in der dynamischen Speicherarchitektur. Das Dialogzustand-verfolgende neuronale Netzwerk erzeugt einen digitalen Dialogzustand, der dem zweiten Segment des digitalen Dialogs entspricht, auf der Basis des zweiten Werts des Speicherplatzes. Unter Verwendung des digitalen Dialogzustands kann das Dialogzustand-Verfolgungssystem eine digitale Antwort auf das zweite Segment erzeugen.
-
Wie es vorstehend erwähnt worden ist, nutzt das Dialogzustand-Verfolgungssystem in einer oder mehreren Ausführungsform(en) ein Dialogzustand-verfolgendes neuronales Netzwerk mit einer dynamischen Speichernetzwerkarchitektur zum Erzeugen digitaler Dialogzustände. Insbesondere stellt die dynamische Speichernetzwerkarchitektur eine Mehrzahl von Speicherplätzen bereit, wobei jeder Speicherplatz Werte speichert, die einen charakteristischen digitalen Dialogzustand angeben (d.h., er kodiert eine latente Darstellung eines wichtigen Gegenstands des Dialogs). Das Dialogzustand-verfolgende neuronale Netzwerk nutzt die Werte der Mehrzahl von Speicherplätzen zum Erzeugen digitaler Dialogzustände. Wenn das Dialogzustand-verfolgende neuronale Netzwerk ein Segment eines digitalen Dialogs verarbeitet, erzeugt das Dialogzustand-verfolgende neuronale Netzwerk neue Werte für einen oder mehrere der Speicherplätze zum Erzeugen eines neuen digitalen Dialogzustands, der dem Segment entspricht.
-
Zusätzlich nutzt, wie es vorstehend erwähnt worden ist, das Dialogzustand-verfolgende neuronale Netzwerk eine Mehrzahl von Rücksetzgattern, die mit der Mehrzahl von Speicherplätzen zusammenhängen, zum Erzeugen von Werten für diese Speicherplätze. In einer oder mehreren Ausführungsform(en) nutzt das Dialogzustand-verfolgende neuronale Netzwerk ein Rücksetzgatter, das mit einem Speicherplatz zusammenhängt, zum Modifizieren eines Einflusses von vorhergehenden Segmenten eines digitalen Dialogs auf die gegenwärtigen Werte, die für diesen Speicherplatz erzeugt worden sind. Beispielsweise kann das Dialogzustand-verfolgende neuronale Netzwerk ein Rücksetzgatter zum Ignorieren eines vorhergehenden Segments eines digitalen Dialogs bei der Bestimmung eines Speicherplatzwerts für ein nachfolgendes Segment des digitalen Dialogs nutzen. In einigen Ausführungsformen nutzt das Dialogzustand-verfolgende neuronale Netzwerk das Rücksetzgatter durch Bestimmen eines Rücksetzwerts und dann Anwenden des Rücksetzwerts zum Modifizieren des Einflusses der vorhergehenden Dialogsegmente.
-
In einer oder mehreren Ausführungsform(en) umfasst das Dialogzustand-verfolgende neuronale Netzwerk ferner eine Mehrzahl von Aktualisierungsgattem, die mit der Mehrzahl von Speicherplätzen und der Mehrzahl von Rücksetzgattern zusammenhängen. Insbesondere kann das Dialogzustand-verfolgende neuronale Netzwerk die Mehrzahl von Aktualisierungsgattern zum Erzeugen von Werten für die entsprechenden Speicherplätze nutzen. Beispielsweise kann das Dialogzustand-verfolgende neuronale Netzwerk ein Aktualisierungsgatter nutzen, das mit einem Speicherplatz zum Modifizieren des Einflusses eines gegenwärtigen Segments eines digitalen Dialogs auf die gegenwärtigen Werte, die für den Speicherplatz erzeugt werden, zusammenhängt. In einigen Ausführungsformen nutzt das Dialogzustand-verfolgende neuronale Netzwerk das Aktualisierungsgatter durch Bestimmen eines Aktualisierungswerts und Anwenden des Aktualisierungswerts zum Modifizieren des Einflusses des gegenwärtigen Segments eines digitalen Dialogs.
-
Wie es ferner vorstehend erwähnt worden ist, werden die Gatter, die mit jedem Speicherplatz zusammenhängen, derart betrieben, dass der Einfluss von Segmenten eines digitalen Dialogs (gegenwärtig oder vorhergehend bzw. früher) ferner auf der Basis von platzübergreifenden Interaktionen bestimmt wird. Insbesondere kann eine platzübergreifende Interaktion eine Korrelation zwischen einem Speicherplatz und einem weiteren Speicherplatz umfassen (z.B. wenn ein Speicherplatz wechselt, wechselt auch ein weiterer Speicherplatz). Das Dialogzustand-Verfolgungssystem kann platzübergreifende Interaktionen beim Trainieren des Dialogzustand-verfolgenden neuronalen Netzwerks lernen und dann Werte für einen Speicherplatz auf der Basis der Interaktionen zwischen diesem Speicherplatz und jedem weiteren verfügbaren Speicherplatz erzeugen. Beispielsweise kann ein Rücksetzgatter ein platzübergreifende Interaktion-Rücksetzgatter umfassen, das zum Anwenden eines platzübergreifende Interaktion-Rücksetzwerts zum Modifizieren des Einflusses von vorhergehenden Segmenten eines digitalen Dialogs auf die gegenwärtigen Werte, die für den Speicherplatz erzeugt werden, verwendet wird. Ferner kann ein Aktualisierungsgatter ein platzübergreifende Interaktion-Aktualisierungsgatter umfassen, das zum Anwenden eines platzübergreifende Interaktion-Aktualisierungswerts zum Modifizieren des Einflusses des gegenwärtigen Segments eines digitalen Dialogs auf die gegenwärtigen Werte, die für den Speicherplatz erzeugt werden, verwendet wird.
-
Das Dialogzustand-Verfolgungssystem stellt im Hinblick auf herkömmliche Systeme mehrere Vorteile bereit. Beispielsweise verbessert das Dialogzustand-Verfolgungssystem die Flexibilität, mit der relevante Daten berücksichtigt werden, wenn digitale Dialogzustände erzeugt werden. Insbesondere kann durch Implementieren eines Dialogzustand-verfolgenden neuronalen Netzwerks mit einer dynamischen Speichernetzwerkarchitektur mit einer Mehrzahl von Speicherplätzen das Dialogzustand-Verfolgungssystem digitale Dialogzustände auf der Basis aller relevanten vorhergehenden Dialogsegmente erzeugen. Insbesondere ermöglicht die dynamische Speichernetzwerkarchitektur das Beibehalten von relevanten Daten, die in den Speicherplätzen gespeichert sind, für lange Zeiträume, während auch relevante, neu erfasste Daten eines digitalen Dialogs betont werden. Daher kann das Dialogzustand-Verfolgungssystem einen gegenwärtigen digitalen Dialogzustand auf der Basis von vorhergehenden Segmenten eines digitalen Dialogs erzeugen, die dem gegenwärtigen Segment signifikant vorausgegangen sind, wenn diese vorhergehenden Segmente für den gegenwärtigen Zustand relevant sind. Zur Veranschaulichung kann ein virtueller Assistent, der einem Nutzer hilft, eine Reise zu einem bestimmten Ort zu planen, Daten speichern, die für den Namen des Orts relevant sind, der zu Beginn des Dialogs erwähnt worden ist, um zu erkennen, dass dann, wenn der Nutzer mehrere Minuten später nach Hotelempfehlungen fragt, der Nutzer spezifisch Empfehlungen erhalten will, die zu diesem Ort gehören. Ferner kann das Dialogzustand-Verfolgungssystem unter Verwendung einer platzübergreifende-Interaktion-Aktüalisierung und eines Rücksetzgatters flexibel Korrelationen zwischen Speicherplätzen berücksichtigen, so dass relevante Änderungen der Daten eines Speicherplatzes die neuen Werte beeinflussen können, die für einen weiteren Speicherplatz erzeugt werden.
-
Ferner verbessert das Dialogzustand-Verfolgungssystem die Genauigkeit. Insbesondere kann das Dialogzustand-Verfolgungssystem durch Nutzen eines Dialogzustand-verfolgenden neuronalen Netzwerks mit einer dynamischen Speicherarchitektur mit einer Mehrzahl von Speicherplätzen, die relevante Daten für lange Zeiträume speichern können, alle relevanten Informationen berücksichtigen, wenn ein digitaler Dialogzustand bestimmt wird. Zusätzlich kann das Dialogzustand-Verfolgungssystem durch Nutzen von Aktualisierungsgattern und Rücksetzgattern und Erzeugen von neuen Werten auf der Basis von platzübergreifenden Interaktionen zwischen Speicherplätzen Dialogzustände genauer bestimmen und Antworten erzeugen. Als Veranschaulichung kann ein virtueller Assistent einer Unterhaltung mit einem Nutzer genauer folgen (z.B. um was sich die Unterhaltung gegenwärtig dreht), da sich der virtuelle Assistent an Informationen „erinnern“ kann, die er bestimmt hat und die nach wie vor relevant sind, und Informationen „vergessen“ kann, die er bestimmt hat und die irrelevant sind. Folglich berücksichtigt der virtuelle Assistent nur relevante Informationen, wenn der Dialogzustand bestimmt wird.
-
Zusätzlich arbeitet das Dialogzustand-Verfolgungssystem durch genaueres Erzeugen digitaler Dialogzustände effizienter. Insbesondere da das Dialogzustand-Verfolgungssystem digitale Dialogzustände genauer bestimmt, kann das System ferner digitale Antworten erzeugen, die auf ein Segment eines digitalen Dialogs genauer antworten. Dies vermindert den Bedarf für zusätzliche Interaktionen zwischen dem Dialogzustand-Verfolgungssystem und einem Nutzer, bevor das System eine geeignete Antwort liefern kann. Aufgrund dieses verminderten Bedarfs für zusätzliche Interaktionen verbessert das Dialogzustand-Verfolgungssystem die Effizienz des Implementierens von Computersystemen dadurch, dass sie während des Betriebs weniger Leistung und Speicher erfordern. Als Beispiel kann ein virtueller Assistent genauer erkennen, dass eine Anfrage für Hotelempfehlungen einen bestimmten Ort betrifft, der früher in dem Dialog erwähnt worden ist. Folglich kann der virtuelle Assistent den Nutzer mit Empfehlungen für den bestimmten Ort versorgen, ohne dass der Nutzer die Anfrage erneut stellen muss oder die Anfrage umformulieren muss, so dass der Name des bestimmten Orts einbezogen wird. Folglich vermeidet der virtuelle Assistent durch Liefern einer genauen Antwort beim ersten Mal die Nutzung einer Verarbeitungsleistung, die zur Durchführung einer anschließenden Arbeit erforderlich wäre.
-
Wie es durch die vorstehende Diskussion gezeigt worden ist, nutzt die vorliegende Offenbarung verschiedene Begriffe zum Beschreiben von Merkmalen und Vorteilen des Dialogzustand-Verfolgungssystems. Nachstehend werden zusätzliche Details bezüglich der Bedeutung dieser Begriffe angegeben. Beispielsweise bezieht sich der Begriff „digitaler Dialog“, wie er hier verwendet wird, auf digitale Daten, die eine Kommunikation wiedergeben. Insbesondere kann ein digitaler Dialog digitale Daten umfassen, die eine Kommunikation zwischen zwei oder mehr Systemen oder Einheiten darstellen. Zur Veranschaulichung kann ein digitaler Dialog eine Kommunikation zwischen einem Nutzer (z.B. einer Person) und einer Vorrichtung oder eine Kommunikation zwischen zwei Vorrichtungen darstellen. Insbesondere kann ein digitaler Dialog eine Audiounterhaltung (z.B. eine Unterhaltung zwischen einem Menschen unter Verwendung einer Telefonvorrichtung und einem künstliche Intelligenz-Antwortsystem), eine Textunterhaltung (z.B. eine Chat- oder Textnachrichtenübertragung zwischen einer Client-Vorrichtung und einem künstliche Intelligenz-Antwortsystem) oder eine andere Unterhaltung wiedergeben. Zusätzlich bezieht sich der Begriff bzw. Ausdruck „Segment“, „Dialogsegment“, „digitales Dialogsegment“ oder „Segment eines digitalen Dialogs“ auf einen Abschnitt eines digitalen Dialogs. Insbesondere kann sich ein Segment auf einen Teilsatz eines digitalen Dialogs beziehen, der sich auf die Gesamtheit des digitalen Dialogs oder weniger als die Gesamtheit des digitalen Dialogs bezieht. Als Veranschaulichung kann ein Segment eine Aussage oder eine Frage von einer Unterhaltung umfassen.
-
Ferner bezieht sich der Ausdruck „digitaler Dialogzustand“ oder „Dialogzustand“ auf eine Beschreibung eines Dialogs. Insbesondere kann sich ein digitaler Dialogzustand auf eine Beschreibung der Eigenschaften eines Dialogs bei einem gegebenen Zeitpunkt beziehen. Beispielsweise kann ein digitaler Dialogzustand ein gegenwärtiges Thema des Dialogs, eine Art des Dialogs (z.B. eine Art einer Anfrage), einen Gegenstand oder ein Ziel (z.B. ein Ziel einer Anfrage), bestimmte Aktionen, die per Anweisungen ausgeführt werden sollen, die durch den Dialog gegeben werden, oder einen Ort (z.B. ein Ort für eine Anfrage) oder eine Einheit, die durch den Dialog beschrieben wird, beschreiben.
-
Zusätzlich bezieht sich der hier verwendete Ausdruck „neuronales Netzwerk“ auf ein Maschinenlernmodell, das auf der Basis von Eingaben abgestimmt (z.B. trainiert) werden kann, um unbekannte Funktionen zu nähern. Insbesondere kann der Ausdruck neuronales Netzwerk ein Modell von verbundenen Neuronen umfassen, die zum Nähern von komplexen Funktionen kommunizieren und lernen und Ausgaben auf der Basis einer Mehrzahl von Eingaben erzeugen, die für das Modell bereitgestellt worden sind. Beispielsweise umfasst der Ausdruck neuronales Netzwerk einen Maschinenlernalgorithmus oder mehrere Maschinenlernalgorithmen. Zusätzlich ist ein neuronales Netzwerk ein Algorithmus (oder ein Satz von Algorithmen), der tiefes Lernen-Techniken implementiert, die einen Satz von Algorithmen zum Modellieren von Datenabstraktionen auf einem hohen Niveau nutzen. Der Ausdruck neuronales Netzwerk kann dynamische Speichernetzwerke umfassen. Wie hier verwendet, bezieht sich der Ausdruck „dynamisches Speichemetzwerk“ auf eine rekurrente neuronales Netzwerk-Architektur, die eine Mehrzahl von dynamischen Speichereinheiten und Aufmerksamkeitsmechanismen bei der Analyse einer bestimmten Stufe einer Sequenz nutzt. Wie es nachstehend detaillierter beschrieben ist, kann eine dynamische Speichereinheit einen Gatterverarbeitungsmechanismus (z.B. ein Rücksetzgatter und/oder ein Aktualisierungsgatter), einen Speicherplatz und einen Algorithmus (z.B. einen Inhalt-basierten Vorgang) zum Aktualisieren von Werten für den Speicherplatz auf der Basis von Eingabedaten bei verschiedenen Stufen einer Sequenz von Ereignissen umfassen.
-
Der Begriff „Speicherplatz“, wie er hier verwendet wird, bezieht sich auf eine latente Darstellung eines Gegenstands, Themas und/oder einer Eigenschaft des digitalen Dialogs. Insbesondere umfasst der Begriff Speicherplatz einen Speichermechanismus innerhalb eines dynamischen Speichemetzwerks, der einen Gegenstand wiedergibt (z.B. mittels eines latenten Merkmalsvektors). Eine Mehrzahl von Speicherplätzen innerhalb eines dynamischen Speichernetzwerks kann zusammen einen latenten Dialogzustand darstellen. Ein Speicherplatz kann sich auf einen bestimmten Ort im Speicher (z.B. einen Ort im Hardwarespeicher) oder eine bestimmte Bezeichnung eines Werts, der im Speicher gespeichert ist (z.B. jedweden Speicherort, der Werte für eine bestimmte Dialogeigenschaft bezeichnet), beziehen.
-
Ferner bezieht sich der Begriff „Rücksetzgatter“ oder „Aktualisierungsgatter“, wie er hier verwendet wird, auf einen Gatterverarbeitungsmechanismus zum Erzeugen von Werten für einen Speicherplatz. Insbesondere kann sich der Begriff Rücksetzgatter auf einen Gatterverarbeitungsmechanismus beziehen, der den Einfluss von vorhergehenden Daten (z.B. vorhergehenden Speicherplatzwerten) auf die Erzeugung von neuen Daten (z.B. gegenwärtigen Speicherplatzwerten für ein gegenwärtiges Dialogsegment) modifiziert. Zur Veranschaulichung kann ein Rücksetzgatter einen Gatterverarbeitungsmechanismus umfassen, der einem Speicherplatz entspricht, der den Einfluss von früheren Eingaben auf einen gegenwärtigen Wert, der in dem Speicherplatz gespeichert werden soll, modifiziert. Entsprechend kann sich der Begriff „Aktualisierungsgatter“, wie er hier verwendet wird, auf einen Gatterverarbeitungsmechanismus beziehen, der den Einfluss von neuen Daten auf die Erzeugung von neuen Werten modifiziert. Zur Veranschaulichung kann ein Aktualisierungsgatter einen Gatterverarbeitungsmechanismus umfassen, der einem Speicherplatz entspricht, der den Einfluss einer gegenwärtigen Eingabe (z.B. einer gegenwärtigen Dialogmerkmalsdarstellung) auf einen gegenwärtigen Wert, der in diesem Platz gespeichert werden soll, modifiziert.
-
Ferner bezieht sich der Begriff „platzübergreifende Interaktionen“, wie er hier verwendet wird, auf einen Mechanismus zum Modifizieren von Speicherplatzwerten auf der Basis von weiteren Speicherplatzwerten (z.B. in demselben Zeitschritt oder Gegenstand einer Sequenz). Insbesondere umfasst eine platzübergreifende Interaktion eine Korrelation zwischen einem Speicherplatz und einem weiteren Speicherplatz, der ein Teil des dynamischen Speichernetzwerks ist. Beispielsweise modifiziert ein platzübergreifende Interaktion-Rücksetzgatter den Einfluss von vorhergehenden Eingaben auf die gegenwärtigen Werte, die für einen Speicherplatz erzeugt werden, auf der Basis der Korrelationen zwischen diesem Speicherplatz und jedem anderen Speicherplatz. Entsprechend modifiziert ein platzübergreifende Interaktion-Aktualisierungsgatter den Einfluss der gegenwärtigen Eingabe auf die gegenwärtigen Werte, die für einen Speicherplatz auf der Basis solcher Korrelationen erzeugt werden.
-
Zusätzlich bezieht sich der Ausdruck „Dialogmerkmaldarstellung“, wie er hier verwendet wird, auf einen Satz von Zahlenwerten, die einen digitalen Dialog oder ein digitales Dialogsegment darstellen. Insbesondere umfasst der Begriff Dialogmerkmaldarstellung einen Merkmalsvektor, der unter Verwendung eines neuronalen Faltungsnetzwerks erzeugt wird, das latent und/oder offenkundig Merkmale eines Dialogs oder Dialogsegments wiedergibt. In einer oder mehrere Ausführungsform(en) ist eine Dialogmerkmaldarstellung ein mehrdimensionaler Datensatz (z.B. eine Matrix oder ein Vektor), der Dialogeigenschaften darstellt. In einer oder mehreren Ausführungsform(en) umfasst eine Dialogmerkmaldarstellung einen Satz von numerischen Metriken, die durch einen Maschinenlernalgorithmus gelernt werden, wie z.B. Faltungsschichten eines Dialogzustand-verfolgenden neuronalen Netzwerks.
-
Ferner bezieht sich der Begriff bzw. Ausdruck „Antwort“ oder „digitale Antwort“ auf eine Reaktion auf ein Segment eines digitalen Dialogs. Insbesondere umfasst der Begriff Antwort eine kommunikative Antwort oder eine Aktion, die nach dem Empfangen eines Segments eines digitalen Dialogs ausgeführt wird. Zur Veranschaulichung kann eine Antwort eine Antwort auf eine Frage, eine Aussage, die als Antwort auf eine weitere Aussage gemacht wird, oder eine Aktion, die per Anfrage oder Anweisungen vorgenommen wird, die durch ein oder mehrere Segment(e) eines digitalen Dialogs bereitgestellt wird oder werden, umfassen. Eine Antwort kann die Form eines digitalen Texts, eines digitalen Audiosignals oder einer durchgeführten Aktion (z.B. das Beschneiden eines Bilds) aufweisen.
-
Zusätzliche Details bezüglich des Dialogzustand-Verfolgungssystems werden nachstehend unter Bezugnahme auf die Figuren angegeben. Beispielsweise zeigt die 1 ein Blockdiagramm zum Erzeugen digitaler Antworten auf Segmente eines digitalen Dialogs gemäß einer oder mehreren Ausführungsform(en). Wie es in der 1 gezeigt ist, nutzt das Dialogzustand-Verfolgungssystem 102 einen digitalen Dialog 104, der ein oder mehrere Segment(e) zum Erzeugen einer Mehrzahl von digitalen Antworten 108 umfasst. Es sollte beachtet werden, dass der digitale Dialog 104 jedwede Anzahl von Segmenten umfassen kann und das Dialogzustand-Verfolgungssystem 102 jedwede geeignete Anzahl von entsprechenden digitalen Antworten als Teil der Mehrzahl von digitalen Antworten 108 erzeugen kann. In einer oder mehreren Ausführungsform(en) erzeugt das Dialogzustand-Verfolgungssystem eine digitale Antwort für jedes Segment des digitalen Dialogs 104 (oder aller Segmente, die von einer bestimmten Person oder Quelle stammen).
-
Als Veranschaulichung zeigt die 1 das Dialogzustand-Verfolgungssystem 102, das ein Segment 106 des digitalen Dialogs 104 erhält. In einer oder mehreren Ausführungsform(en) wird das Segment 106 für das Dialogzustand-Verfolgungssystem 102 hörbar bereitgestellt (z.B. spricht ein Nutzer das Segment 106 oder eine Vorrichtung präsentiert eine Tondarstellung der Segmente 106). In einigen Ausführungsformen wird das Segment 106 durch eine geschriebene Eingabe dargestellt (z.B. gibt ein Nutzer eine getippte Darstellung der Segmente 106 unter Verwendung einer Rechenvorrichtung ein, die das Dialogzustand-Verfolgungssystem 102 implementiert). In weiteren Ausführungsformen identifiziert das Dialogzustand-Verfolgungssystem 102 in sonstiger Weise den digitalen Dialog 104 und die einbezogenen Segmente (greift z.B. auf eine Aufzeichnung oder eine Kopie zu, die in einer Datenbank gespeichert ist). Wie es in der 1 gezeigt ist, stellt das Segment 106 eine Frage, die nach einer Empfehlung für einen zu besichtigenden Ort während einer Reise nach Singapur fragt.
-
Wie es in der 1 gezeigt ist, nutzt das Dialogzustand-Verfolgungssystem 102 ein Segment 106 des digitalen Dialogs 104 zum Erzeugen einer digitalen Antwort 110 auf das Segment 106. Insbesondere zeigt die 1, dass das Dialogzustand-Verfolgungssystem 102 ein Dialogzustand-verfolgendes neuronales Netzwerk 112 zum Erzeugen der digitalen Antwort 110 einsetzt. Insbesondere erzeugt das Dialogzustand-verfolgende neuronale Netzwerk 112 digitale Dialogzustände, die durch das Dialogzustand-Verfolgungssystem 102 zum Erzeugen digitaler Antworten genutzt werden, wie es nachstehend detaillierter diskutiert wird. Wie es durch die 1 gezeigt ist, ist die digitale Antwort 110 eine Antwort auf die Frage, die durch das Segment 106 des digitalen Dialogs 104 gestellt wird, und gibt wie angefragt eine Ortsempfehlung.
-
Die 2 zeigt einen beispielhaften Austausch von Dialogsegmenten und digitalen Antworten sowie entsprechende digitale Dialogzustände gemäß einer oder mehrerer Ausführungsform(en). Insbesondere zeigt die Figur einen Dialog zwischen einem Nutzer (z.B. einer Person), der als „Nutzer“ bezeichnet ist, und dem Dialogzustand-Verfolgungssystem, das hier als „Assistent“ bezeichnet ist. Insbesondere umfasst der Dialog eine Anfrage durch den Nutzer bezüglich eines Fotos, das bearbeitet und in einem soziale Medien-Account gepostet werden soll.
-
Wie es in der 2 gezeigt ist, arbeitet das Dialogzustand-Verfolgungssystem in einer oder mehreren Ausführungsform(en) zusammen mit einem weiteren System zur Durchführung einer Nutzeranfrage, zum Finden einer Antwort auf eine Nutzerfrage, usw. Beispielsweise kann das Dialogzustand-Verfolgungssystem, wie es in der 2 gezeigt ist, mit einem Fotobearbeitungssystem zusammenarbeiten, um ein Foto gemäß der Anfrage durch den Nutzer zu bearbeiten. Zur Veranschaulichung kann der Nutzer ein Dialogsegment bereitstellen, das verlangt, dass das Fotobearbeitungssystem ein ausgewähltes Foto beschneidet. Das Dialogzustand-Verfolgungssystem kann das Dialogsegment empfangen und den gegenwärtigen digitalen Dialogzustand bestimmen. Das Fotobearbeitungssystem kann dann das ausgewählte Foto auf der Basis des digitalen Dialogzustands beschneiden und das Dialogzustand-Verfolgungssystem kann anschließend eine digitale Antwort erzeugen, die den Nutzer informiert, dass die Aktion durchgeführt worden ist.
-
Wie es in der 2 ersichtlich ist, bestimmt das Dialogzustand-Verfolgungssystem mit fortschreitendem digitalen Dialog (d.h., wenn der Nutzer aufeinanderfolgende Dialogsegmente bereitstellt) kontinuierlich den gegenwärtigen digitalen Dialogzustand. Beispielsweise wenn der Nutzer verlangt, dass der obere Teil eines Fotos beschnitten werden soll, bestimmt das Dialogzustand-Verfolgungssystem, dass der digitale Dialogzustand 202 ein Thema („Beschneiden“) und einen Ort („oben“) umfasst. Anschließend bestimmt, wenn der Nutzer verlangt, dass das Foto zu einer Schwarz-Weiß-Version geändert werden soll, das Dialogzustand-Verfolgungssystem, dass der digitale Dialogzustand 204 ein neues Thema („Einstellung“) und einen Typ (.Schwarz-Weiß“) umfasst.
-
Wie es in der 2 gezeigt ist, bleibt in einigen Ausführungsformen ein bestimmter digitaler Dialogzustand selbst nach dem Empfangen eines neuen Segments eines digitalen Dialogs gültig (z.B. erzeugt das Dialogzustand-Verfolgungssystem einen digitalen Dialogzustand, der mit dem früheren digitalen Dialogzustand identisch ist). Beispielsweise behält das Dialogzustand-Verfolgungssystem die digitalen Dialogzustände 202, 206 und 208 über eine Mehrzahl von Segmenten eines digitalen Dialogs, die von dem Nutzer empfangen worden sind, bei. Das Dialogzustand-Verfolgungssystem kann jedoch je nach Erfordernis den digitalen Dialogzustand mit jedem neuen Segment eines digitalen Dialogs ändern. Beispielsweise ändert das Dialogzustand-Verfolgungssystem den digitalen Dialogzustand von dem digitalen Dialogzustand 204 zu dem digitalen Dialogzustand 206, sobald der Nutzer das nächste Segment bereitstellt, das eine Änderung des Kontrasts des Fotos verlangt.
-
Wie es vorstehend erwähnt worden ist, nutzt das Dialogzustand-Verfolgungssystem in einigen Ausführungsformen ein Dialogzustand-verfolgendes neuronales Netzwerk zum Erzeugen digitaler Dialogzustände, die zum Erzeugen digitaler Antworten verwendet werden. Insbesondere umfasst das Dialogzustand-verfolgende neuronale Netzwerk in einer oder mehreren Ausführungsform(en) eine dynamische Speichernetzwerkarchitektur. Die 3 zeigt ein Schema der dynamischen Speichernetzwerkarchitektur eines Dialogzustand-verfolgenden neuronalen Netzwerks 300, das durch eine oder mehrere Ausführungsform(en) des Dialogzustand-Verfolgungssystems zum Erzeugen digitaler Dialogzustände genutzt wird. Während die 3 einen breiten Überblick über das Dialogzustand-verfolgende neuronale Netzwerk 300 zeigt, werden mehr Details bezüglich des Netzwerks und dessen Architektur nachstehend unter Bezugnahme auf die 4A bis 6 angegeben.
-
Wie es in der 3 gezeigt ist, kann das Dialogzustand-verfolgende neuronale Netzwerk 300 eine Sequenz von digitalen Dialogsegmenten (z.B. Äußerungen) von ut-w+1 bis ut als Eingabe 302 bei dem Zeitschritt t verwenden, wobei wein Historiefenster darstellt. Mit anderen Worten, ut stellt ein gegenwärtiges Segment eines digitalen Dialogs dar und die Sequenz von ut-w+1 bis ut-1 stellt vorhergehende Segmente eines digitalen Dialogs innerhalb eines ausgewählten Zeitfensters dar, die das dynamische Speichernetzwerk bei der Bestimmung des gegenwärtigen digitalen Dialogzustands nutzt (d.h., des digitalen Dialogzustands bei der Zeit t). In einer oder mehreren Ausführungsform(en) umfasst das Einbeziehen der Sequenz von Segmenten ut-w+1 bis ut-1 als Teil der Eingabe 302 das Verarbeiten des Segments und das Speichern der resultierenden Werte in einem oder mehreren der Speicherplätze vor der Zeit t(z.B. Verarbeiten des Segments ut-1 bei der Zeit t- 1 und Speichern der resultierenden Werte in den entsprechenden Speicherplätzen, usw.). Wie es in der 3 ersichtlich ist und wie es nachstehend detaillierter diskutiert wird, können die Werte eines Speicherplatzes bei der Zeit t- 1 zum Erzeugen der neuen Werte für den Speicherplatz bei der Zeit t verwendet werden. Mit anderen Worten, die Werte, die durch Verarbeiten vorhergehender Segmente des digitalen Dialogs erzeugt werden, können die gegenwärtigen Werte beeinflussen, die durch Verarbeiten des gegenwärtigen Segments eines digitalen Dialogs erhalten worden sind. Folglich wird die Sequenz von Segmenten (z.B. Äußerungen) ut-w+1 bis ut-1 ein Teil der Eingabe 302 zum Erzeugen von Werten für die Speicherplätze (und folglich zum Erzeugen eines digitalen Dialogzustands) bei der Zeit t.
-
Insbesondere nutzt das Dialogzustand-verfolgende neuronale Netzwerk 300 ein eingebettetes neuronales Faltungsnetzwerk zum Erzeugen einer Dialogmerkmaldarstellung für ein gegenwärtiges Dialogsegment. In einer oder mehreren Ausführungsform(en) nutzt das Dialogzustand-verfolgende neuronale Netzwerk 300 das eingebettete neuronale Faltungsnetzwerk zum Erzeugen von Dialogmerkmaldarstellungen, wie es von Y. Kim, „Convolutional Neural Networks for Sentence Classification“ in EMNLP, 2014, beschrieben worden ist, das in dessen Gesamtheit hierin einbezogen ist. Das Dialogzustand-verfolgende neuronale Netzwerk 300 analysiert dann die Dialogmerkmaldarstellung zusammen mit Werten (d.h., latenten Merkmalsvektoren) von den vorhergehenden Speicherplätzen zum Erzeugen neuer Werte für die Speicherplätze. Die Speicherplätze werden dann zum Erzeugen von Zustandsvorhersagen für das gegenwärtige Dialogsegment verwendet.
-
Insbesondere stellt in Bezug auf die Ausführungsform von
3 das Dialogzustand-verfolgende neuronale Netzwerk
300 ein Segment eines digitalen Dialogs mit n Worten als n x k-Eingabematrix durch verknüpfende Vektoren dar, wobei jeder davon eine k-dimensionale Worteinbettung
darstellt, die das i-te Wort in dem Segment darstellt. Unter Verwendung von Faltungsschichten (z.B. der Faltungsschichten
304) wendet das Dialogzustand-verfolgende neuronale Netzwerk
300 auf die Eingabematrix einen Filter
mit derselben Breite k wie die Eingabematrix und einer gegebenen Höhe m zum Erzeugen des folgenden Faltungsmerkmals an der i-ten Position an:
-
In der Gleichung 1 stellt
den Teilbereich von der i-ten Zeile zur j-ten Zeile in der Eingabematrix dar, b ∈ ℝ ist ein Tendenzterm und σ stellt eine nicht-lineare Aktivierungsfunktion (z.B. berichtigte lineare Einheiten) dar. Eine Reihe von Faltungsvorgängen unter Verwendung der Gleichung 1, während von der ersten Zeile der Eingabematrix zu der (n- m + 1)-ten Zeile vorgegangen wird, erzeugt eine Faltungsmerkmalskarte
für den Filter
Dann wird das maximale Element c' = max (c) aus jeder Faltungsmerkmalskarte ausgewählt und als das wichtigste Merkmal für den bestimmten Filter in den Max-Pooling-Schichten (z.B. den Max-Pooling-Schichten
306) ausgewählt.
-
Unter Verwendung der Max-Pooling-Schichten (z.B. der Max-Pooling-Schichten
306) erzeugt das Dialogzustand-verfolgende neuronale Netzwerk
300 eine Dialogmerkmaldarstellung (z.B. den Merkmalsvektor)
der eine I-dimensionale Vektordarstellung des jeweiligen Segments eines digitalen Dialogs ist, wobei /die Gesamtzahl von Filtern ist, die in den Faltungsschichten verwendet werden. Das Dialogzustand-verfolgende neuronale Netzwerk
300 stellt dann die Dialogmerkmaldarstellung
für die dynamische Speicherschicht (z.B. die dynamische Speicherschicht
308) bereit, die eine oder mehrere dynamische Speichereinheit(en) zum Erzeugen eines latenten Merkmalsvektors h
i für jeden Speicherplatz/nutzt. Die dynamischen Speichereinheiten werden nachstehend unter Bezugnahme auf die
4A bis
6 detaillierter diskutiert. Jeder Speicherplatz j speichert den latenten Merkmalsvektor h
i als einen oder mehrere Werte, der oder die eine latente Darstellung kodiert oder kodieren, die einem wichtigen Gegenstand des digitalen Dialogs entspricht. Beispielsweise kann ein erster Speicherplatz Werte speichern, die einem Thema eines digitalen Dialogs entsprechen, und ein zweiter Speicherplatz kann Werte speichern, die einer Aktion entsprechen, die gemäß Anweisungen vorgenommen werden soll, die durch den digitalen Dialog bereitgestellt werden.
-
Wenn ein gegenwärtiges Segment eines digitalen Dialogs verarbeitet wird, weist das Dialogzustand-verfolgende neuronale Netzwerk
300 die Werte, die bisher in jedem Speicherplatz
vorliegen, einer entsprechenden dynamischen Speichereinheit zu, welche die bisher vorliegenden Werte dieses Speicherplatzes (zusammen mit der Dialogmerkmaldarstellung
die aus dem gegenwärtigen Segment eines digitalen Dialogs und einem entsprechenden Schlüsselvektor w
i erzeugt wird) zum Erzeugen des gegenwärtigen latenten Merkmalsvektors
der in diesem Speicherplatz gespeichert werden soll, nutzen kann. Durch Zuweisen der bisher vorliegenden Werte jedes Speicherplatzes zu der entsprechenden dynamischen Speichereinheit zum Erzeugen der gegenwärtigen Werte ermöglicht das Dialogzustand-Verfolgungssystem
300 den vorhergehenden Segmenten des digitalen Dialogs, den gegenwärtigen digitalen Dialogzustand zu beeinflussen. Mit anderen Worten, der Einfluss der vorhergehenden Segmente des digitalen Dialogs
ut-w+1 bis
ut-1 auf den gegenwärtigen digitalen Dialogzustand, die als die vorhergehenden Werte bereitgestellt werden, die durch die Speicherplätze gespeichert sind, werden bei der Bestimmung der gegenwärtigen Werte für die Speicherplätze verwendet. In einer oder mehreren Ausführungsform(en) umfasst das Erzeugen gegenwärtiger Werte für einen Speicherplatz das Überschreiben der vorhergehenden Werte des Speicherplatzes in einem Speicherort, der für diesen Speicherplatz vorgesehen ist. In einigen Ausführungsformen umfasst das Erzeugen der gegenwärtigen Werte das Speichern der gegenwärtigen Werte in einem anderen Speicherort und das Vorsehen dieses neuen Speicherorts als Speicherplatz.
-
Wie es aus der
3 ersichtlich ist, nutzt das Dialogzustand-verfolgende neuronale Netzwerk
300 nach dem Erzeugen der gegenwärtigen Werte für jeden Speicherplatz eine Vorhersageschicht
310 zum Erzeugen eines gegenwärtigen digitalen Dialogzustands. Insbesondere stellt das Dialogzustand-verfolgende neuronale Netzwerk
300 die gegenwärtigen Werte jedes Speicherplatzes, die gegenwärtige Dialogmerkmaldarstellung
(erzeugt durch Verarbeiten des gegenwärtigen Segments eines digitalen Dialogs u
t mittels der Faltungsschichten
304) und die vorhergehende Dialogmerkmaldarstellung
(erzeugt durch Verarbeiten des vorhergehenden Segments eines digitalen Dialogs
ut-1 mittels der Faltungsschichten
304) für die Vorhersageschicht
310 zum Erzeugen des digitalen Dialogzustands bereit. In einer oder mehreren Ausführungsform(en) umfasst die Vorhersageschicht
310 einen Softmax-Klassifikator.
-
Wie es erwähnt worden ist, nutzt das Dialogzustand-verfolgende neuronale Netzwerk 300 eine dynamische Speichereinheit, die jedem Speicherplatz zum Erzeugen der gegenwärtigen Werte (d.h., des latenten Merkmalsvektors) für diesen Speicherplatz entspricht. Die 4A bis 6 zeigen mehr Details bezüglich der dynamischen Speichereinheiten, die durch die eine oder die mehreren Ausführungsform(en) genutzt werden. Insbesondere ist in den 4A bis 6 ersichtlich, dass das Dialogzustand-verfolgende neuronale Netzwerk 300 Speichereinheiten nutzt, die einen Gatterverarbeitungsmechanismus umfassen, um zu bestimmen, welche Daten beim Erzeugen der latenten Merkmalsvektoren verwendet werden, die als Werte in den entsprechenden Speicherplätzen gespeichert werden sollen.
-
Die
4A zeigt eine dynamische Speichereinheit
400 mit einem Aktualisierungsgatter
402 gemäß einer oder mehreren Ausführungsform(en). Insbesondere zeigt die
4A die Eingaben und Funktionen, die durch die dynamische Speichereinheit
400 beim Erzeugen von Werten für den j-ten Speicherplatz bei dem i-ten Zeitschritt genutzt werden. Insbesondere stellt θ eine oder mehrere (Aktualisierungs-) Funktion(en)
404 mit trainierbaren Parametern dar, welche die Kollektion von Eingaben als Teil der dynamischen Speichereinheit
400 analysiert oder analysieren. Beispielsweise kann in Bezug auf die
4 θ die Gleichung 2 und/oder trainierbare Parameter zum Erzeugen von Aktualisierungswerten, wie z.B.
darstellen. In einer oder mehreren Ausführungsform(en), erzeugt das Dialogzustand-Verfolgungssystem
102 Aktualisierungswerte (oder Rücksetzwerte) unter Verwendung einer Aktualisierungsfunktion (oder Rücksetzfunktion), wie sie von M. Henaff, J. Weston, A. Szlam, A. Bordes und Y. LeCun in Tracking the World State With Recurrent Entity Networks, ICLR 2017, CoRR abs/1612.03969. http://arxiv.org/abs/1612.03969, beschrieben worden ist, das in dessen Gesamtheit hierin einbezogen ist.
-
Es sollte beachtet werden, dass der Pfeil
406 darstellt, dass h
j als Teil der Kollektion von Eingaben bereitgestellt wird, wenn Werte für den Speicherplatz in dem nächsten Zeitschritt erzeugt werden (d.h., nach dem Empfangen des nächsten Segments eines digitalen Dialogs). Mit anderen Worten, wenn Werte für den j-ten Speicherplatz bei dem i-ten Zeitschritt erzeugt werden, stellt der Pfeil
406 dar, dass die vorhergehenden Werte
als Eingabe für die Funktion
404 bereitgestellt werden.
-
Die dynamische Speichereinheit
400 erzeugt die Werte
für den j-ten Speicherplatz bei dem i-ten Zeitschritt unter Verwendung des Folgenden:
-
In den vorstehenden Gleichungen stellt
einen Aktualisierungswert dar, w
j ist ein trainierbarer Schlüsselvektor,
stellt potenzielle Werte dar und die Parameter U, V, W sind allen Speicherplätzen gemeinsam. Es sollte beachtet werden, dass, wie es in der Gleichung 2 gezeigt ist, der Aktualisierungswert
von zwei Termen
abhängt, die darstellen, dass der Aktualisierungswert
durch eine Entsprechung zwischen der Dialogmerkmaldarstellung
und dem Schlüsselvektor w
j bzw. den vorhergehenden Werten
des Speicherplatzes eingestellt wird. Mit anderen Worten, die vorhergehenden Werte
und der Schlüsselvektor w
j wirken als Aktivierungssignal, das einstellt, ob das Dialogsegment den j-ten Speicherplatz „aktiviert“ (d.h., bestimmt, ob der Speicherplatz aktualisiert wird, oder den Grad bestimmt, zu dem der Speicherplatz mit den neuen Informationen aktualisiert wird).
-
Nach dem Erzeugen des Aktualisierungswerts
unter Verwendung der Gleichung 2 wendet die dynamische Speichereinheit
400 den Aktualisierungswert auf das Aktualisierungsgatter
402 an. Insbesondere stellt das Aktualisierungsgatter
402 den Grad ein, zu dem die potenziellen Werte
die gegenwärtigen Werte
beeinflussen, wie es aus der Gleichung 4 ersichtlich ist. Da die potenziellen Werte
die Dialogmerkmaldarstellung
einbeziehen, die durch Verarbeiten des gegenwärtigen Segments eines digitalen Dialogs erzeugt wird, wie es in der Gleichung 3 gezeigt ist, stellt das Aktualisierungsgatter
402 den Grad ein, zu dem das gegenwärtige Segment eines digitalen Dialogs die gegenwärtigen Werte
beeinflusst. Mit anderen Worten, das Anwenden des Aktualisierungswerts
modifiziert den Einfluss des gegenwärtigen Segments eines digitalen Dialogs auf die gegenwärtigen Werte
-
Die
4B bis
4C zeigen jeweils ein Schema einer dynamischen Speichereinheit, die der dynamischen Speichereinheit
400 entspricht, wenn das Aktualisierungsgatter
402 gemäß dem Aktualisierungswert
positioniert wird. Beispielsweise zeigt die
4B die Speichereinheit
410, die dem Aktualisierungsgatter
402 entspricht, wenn der Aktualisierungswert
ist. Wie es in der
4B gezeigt ist und aus der Gleichung 4 ersichtlich ist, erzeugt dann, wenn
ist, die Speichereinheit
410 die gegenwärtigen Werte
vollständig auf der Basis der vorhergehenden Werte
des Speicherplatzes. Mit anderen Worten, wenn
ist, aktualisiert die vereinfachte Speichereinheit
410 die Werte des Speicherplatzes nicht mit neuen Informationen, die von dem gegenwärtigen Segment eines digitalen Dialogs erhalten werden.
-
Entsprechend zeigt die
4C die vereinfachte Speichereinheit
420, die einem Positionieren des Aktualisierungsgatters
402 entspricht, wenn der Aktualisierungswert
ist. Wie es in der
4C und aus der Gleichung 4 ersichtlich ist, erzeugt dann, wenn
ist, die vereinfachte Speichereinheit
420 die gegenwärtigen Werte
vollständig auf der Basis der potenziellen Werte
Da die potenziellen Werte
die Kollektion von Eingaben
422 umfassen, aktualisiert die vereinfachte Speichereinheit
420 die Werte des Speicherplatzes auf der Basis der vorhergehenden Werte
des Speicherplatzes, des Schlüsselvektors w
j, der dem Speicherplatz entspricht, und der Dialogmerkmaldarstellung
die durch Verarbeiten des gegenwärtigen Segments eines digitalen Dialogs erzeugt wird.
-
Es sollte beachtet werden, dass die
4B bis
4C eine Position des Aktualisierungsgatters
402 zeigen, die den Extremwerten entspricht, die für den Aktualisierungswert
verfügbar sind. Wie es durch die Gleichung 2 gezeigt ist, kann
jedoch jedweden Wert zwischen 0 und 1 aufweisen. Folglich wendet das Dialogzustand-Verfolgungssystem
102 das Aktualisierungsgatter
402 so an, dass die gegenwärtigen Werte für einen Speicherplatz
teilweise auf der Basis sowohl der vorhergehenden Werte des Speicherplatzes
als auch der potenziellen Werte
erzeugt werden können.
-
Wie es vorstehend erwähnt worden ist, kann das Dialogzustand-Verfolgungssystem 102 auch eine dynamische Speichereinheit mit einem Rücksetzgatter nutzen. Die 5A zeigt eine dynamische Speichereinheit 500 mit einem Aktualisierungsgatter 502 und einem Rücksetzgatter 504 gemäß einer oder mehrerer Ausführungsform(en). Insbesondere zeigt die 5A die Eingaben und Funktionen, die durch die dynamische Speichereinheit 500 zum Erzeugen von Werten für den j-ten Speicherplatz bei dem i-ten Zeitschritt verwendet werden. Wie es erwähnt worden ist, stellt θ eine oder mehrere Aktualisierungs/Rücksetzfunktion(en) 506 mit trainierbaren Parametern bereit, welche die Kollektion von Eingaben 506 als Teil der dynamischen Speichereinheit 500 analysieren (z.B. die vorstehend diskutierte Gleichung 2 und/oder die nachstehend diskutierte Gleichung 5).
-
Es sollte beachtet werden, dass wie bei dem Pfeil
406 der dynamischen Speichereinheit
400, die in der
4A gezeigt ist, der Pfeil
508 zeigt, dass die vorhergehenden Werte
als Teil der Kollektion von Eingaben
506 bereitgestellt werden können, wenn Werte für den j-ten Speicherplatz bei dem i-ten Zeitschritt erzeugt werden; es gibt jedoch einen entscheidenden Unterschied - das Rücksetzgatter
504 steuert, ob (und zu welchem Grad) die vorhergehenden Werte
als Teil der Kollektion von Eingaben
506 genutzt werden.
-
Die dynamische Speichereinheit
500 erzeugt die Werte
für den j-ten Speicherplatz bei dem i-ten Zeitschritt mit den folgenden zusätzlichen Gleichungen:
-
Im Vorstehenden stellt
einen Rücksetzwert dar und die Gleichung 6 modifiziert die Gleichung 3, so dass der Rücksetzwert in die potenziellen Werte
einbezogen wird. Wie bei dem Aktualisierungswert
in der Gleichung 2 hängt der Rücksetzwert
von zwei Termen
die darstellen, dass der Rücksetzwert
durch eine Entsprechung zwischen der Dialogmerkmaldarstellung
und dem Schlüsselvektor w
j bzw. den vorhergehenden Werten
des Speicherplatzes gesteuert wird. Ferner sind W
r und U
r trainierbare Umwandlungsparameter.
-
Nach der Erzeugung des Aktualisierungswerts
unter Verwendung der Gleichung 2 und des Rücksetzwerts
unter Verwendung der Gleichung 5 wendet die dynamische Speichereinheit
500 den Aktualisierungswert
bei dem Aktualisierungsgatter
502 an und wendet den Rücksetzwert
bei dem Rücksetzgatter
504 an. Insbesondere steuert das Rücksetzgatter
504 den Grad, zu dem die vorhergehenden Werte
eines Speicherplatzes die potenziellen Werte
beeinflussen, wie es in der Gleichung 6 ersichtlich ist. Da die vorhergehenden Werte
Daten umfassen, die von vorhergehenden Segmenten eines digitalen Dialogs erhalten werden, und die potenziellen Werte
die gegenwärtigen Werte
beeinflussen können (abhängig von dem Aktualisierungswert
wie es in der Gleichung 5 gezeigt ist), steuert die Position des Rücksetzgatters
504 den Grad, zu dem vorhergehende Segmente des digitalen Dialogs die gegenwärtigen Werte
beeinflussen. Mit anderen Worten, die Anwendung des Rücksetzwerts
modifiziert den Einfluss der vorhergehenden Segmente des digitalen Dialogs auf die gegenwärtigen Werte
(d.h., das Rücksetzgatter
504 kann den Speicherplatz durch Ignorieren der vorhergehenden Werte dieses Speicherplatzes „zurücksetzen“).
-
Die
5B bis
5D zeigen jeweils ein Schema einer dynamischen Speichereinheit, die der dynamischen Speichereinheit
500 entspricht, wenn das Aktualisierungsgatter
502 gemäß dem Aktualisierungswert
angewandt wird und das Rücksetzgatter
504 gemäß dem Rücksetzwert
angewandt wird. Beispielsweise zeigt die
5B die vereinfachte Speichereinheit
510, die dem Aktualisierungsgatter
502 entspricht, wenn der Aktualisierungswert
ist. Wie es in der
5B gezeigt ist und aus der Gleichung 4 ersichtlich ist, erzeugt dann, wenn
ist, die vereinfachte Speichereinheit
510 die gegenwärtigen Werte
vollständig auf der Basis der vorhergehenden Werte
des Speicherplatzes. Mit anderen Worten, wenn
ist, aktualisiert die vereinfachte Speichereinheit
510 die Werte des Speicherplatzes nicht mit neuen Informationen, die von dem gegenwärtigen Segment eines digitalen Dialogs erhalten worden sind.
-
Die
5C zeigt die vereinfachte Speichereinheit
520 für das Aktualisierungsgatter
502, wenn der Aktualisierungswert
ist, und für das Rücksetzgatter
504, wenn der Rücksetzwert
ist. Wie es aus der
5C und aus der Gleichung 6 ersichtlich ist, umfassen, wenn
ist, die potenziellen Werte
die vorhergehenden Werte
nicht. Demgemäß umfasst die Kollektion von Eingaben
522, die zum Erzeugen der potenziellen Werte
verwendet werden, den Schlüsselvektor w
j, der dem Speicherplatz entspricht, und die Dialogmerkmaldarstellung
die durch Verarbeiten des gegenwärtigen Segments eines digitalen Dialogs erzeugt wird. Mit anderen Worten, der Speicherplatz wird „zurückgesetzt“ (z.B. berücksichtigt er nicht die vorhergehenden Werte
).
-
Die
5D zeigt die vereinfachte Speichereinheit
530, die einer Positionierung des Aktualisierungsgatters entspricht, wenn der Aktualisierungswert
ist, und einer Positionierung des Rücksetzgatters
504 entspricht, wenn der Rücksetzwert
ist. Wie es in der
5D und aus der Gleichung 6 ersichtlich ist, umfassen, wenn
ist, die potenziellen Werte
die vorhergehenden Werte
Demgemäß umfasst die Kollektion von Eingaben
532, die zum Erzeugen der potenziellen Werte
verwendet wird, die vorhergehenden Werte
des Speicherplatzes, den Schlüsselvektor w
j, der dem Speicherplatz entspricht, und die Dialogmerkmaldarstellung
die durch Verarbeiten des gegenwärtigen Segments eines digitalen Dialogs erzeugt wird.
-
Es sollte beachtet werden, dass die
5B bis
5D das Aktualisierungsgatter
502 und das Rücksetzgatter
504 in Bezug auf Extremwerte für den Aktualisierungswert
bzw. den Rücksetzwert
zeigen. Wie es durch die Gleichungen gezeigt ist, können
jedoch jedweden Wert zwischen 0 und 1 aufweisen. Folglich können das Aktualisierungsgatter
502 und das Rücksetzgatter
504 so positioniert werden, dass die gegenwärtigen Werte für einen Speicherplatz
teilweise auf der Basis sowohl der vorhergehenden Werte des Speicherplatzes
als auch der potenziellen Werte
erzeugt werden können.
-
Wie es vorstehend diskutiert worden ist, kann das digitale Zustandsverfolgungssystem
102 auch dynamische Speichereinheiten nutzen, die platzübergreifende Interaktionen nutzen. Beispielsweise kann das digitale Zustandsverfolgungssystem
102 platzübergreifende Interaktion-Rücksetzgatter und platzübergreifende Interaktion-Aktualisierungsgatter nutzen, die Interaktionen zwischen Speicherplätzen beim Anwenden der jeweiligen Gatterverarbeitungsmechanismen berücksichtigen. Die
6 zeigt eine dynamische Speichereinheit
600 mit einem platzübergreifende Interaktion-Aktualisierungsgatter
602 und einem platzübergreifende Interaktion-Rücksetzgatter
604 gemäß einer oder mehrerer Ausführungsform(en). Insbesondere zeigt die
6 die Eingaben und Funktionen, die durch die dynamische Speichereinheit
600 beim Erzeugen von Werten für den j-en Speicherplatz bei dem i-ten Zeitschritt verwendet werden, wobei
θ eine oder mehrere (Aktualisierungs/Rücksetz-) Funktion(en)
606 mit trainierbaren Parametern darstellt, welche die Kollektion von Eingaben als Teil der dynamischen Speichereinheit
600 analysieren. Die dynamische Speichereinheit
600 arbeitet entsprechend wie die dynamische Speichereinheit
500 von
5A, mit der Ausnahme, dass die Gleichung 2 bzw. die Gleichung 5 in der nachstehenden Weise modifiziert sind.
-
Wie es in der Gleichung 7 gezeigt ist, stellt
einen platzübergreifende Interaktion-Aktualisierungswert dar, der das platzübergreifende Interaktion-Aktualisierungsgatter
602 steuert. Entsprechend stellt, wie es in der Gleichung 8 gezeigt ist,
einen platzübergreifenden Interaktion-Rücksetzwert dar, der das platzübergreifende Interaktion-Rücksetzgatter
604 steuert. Die Koeffizienten
sind Parameter, die zum Bereitstellen der Korrelationen zwischen den j-ten und den k-ten Speicherplätzen trainiert sind. Wie es durch die Gleichungen 7 und 8 und die
6 gezeigt ist, tragen die Schlüsselvektoren [w
1 ... w
m] und die verborgenen Zustände [h
1 ... h
m] jedes Speicherplatzes zur Erzeugung der gegenwärtigen Werte
für den j-ten Speicherplatz bei.
-
Wie es vorstehend diskutiert worden ist, erzeugt das Dialogzustand-verfolgende neuronale Netzwerk nach dem Erzeugen gegenwärtiger Werte für jeden Speicherplatz einen digitalen Dialogzustand. Folglich kann das Dialogzustand-Verfolgungssystem ein Dialogzustand-verfolgendes neuronales Netzwerk zum Erzeugen digitaler Dialogzustände nutzen, die Segmenten von digitalen Dialogen entsprechen. Die Algorithmen und Vorgänge, die in Bezug auf die 3 bis 6 beschrieben sind, können die entsprechende Struktur zum Durchführen eines Schritts zum Nutzen des Dialogzustand-verfolgenden neuronalen Netzwerks umfassen, welches das dynamische Speichernetzwerk zum Erzeugen eines digitalen Dialogzustands für das Dialogsegment umfasst. Zusätzlich können die neuronale Netzwerkarchitektur und die dynamische Speichereinheit-Architekturen, die in Bezug auf die 3 bis 6 beschrieben sind, die entsprechende Struktur zum Durchführen eines Schritts zum Nutzen des Dialogzustand-verfolgenden neuronalen Netzwerks umfassen, welches das dynamische Speichernetzwerk zum Erzeugen eines digitalen Dialogzustands für das Dialogsegment umfasst.
-
Unter Verwendung des erzeugten digitalen Dialogzustands kann das Dialogzustand-Verfolgungssystem eine digitale Antwort auf ein gegenwärtiges Segment eines digitalen Dialogs erzeugen. Die 7 zeigt ein Blockdiagramm des Dialogzustand-Verfolgungssystems zum Erzeugen einer digitalen Antwort auf ein gegenwärtiges Segment eines digitalen Dialogs. Wie es in der 7 gezeigt ist, stellt das Dialogzustand-Verfolgungssystem ein Segment eines digitalen Dialogs 702 für ein trainiertes Dialogzustand-verfolgendes neuronales Netzwerk 704 bereit. Insbesondere umfasst das Segment eines digitalen Dialogs 702 eine Aussage gefolgt von einer Aktionsanfrage. Nach dem Empfangen des Segments eines digitalen Dialogs 702 erzeugt das trainierte Dialogzustand-verfolgende neuronale Netzwerk 704 einen digitalen Dialogzustand 706. Insbesondere charakterisiert der digitale Dialogzustand 706, der in der 7 gezeigt ist, das gegenwärtige Thema, den gegenwärtigen Typ und das gegenwärtige Ziel des digitalen Dialogs. Das Dialogzustand-Verfolgungssystem stellt dann den digitalen Dialogzustand 706 für einen digitale Antwort-Generator 708 bereit, der die digitale Antwort 710 bereitstellt. Beispielsweise kann der digitale Antwort-Generator 708 eine natürliche Spracherzeugung (z.B. einen Daten-zu-Text-Generator) zum Bestimmen des Inhalts, der Organisation und der lexikalischen Darstellung der digitalen Antwort 710 nutzen. Ferner kann der digitale Antwort-Generator 708 eine Text-zu-Sprache-Synthese (z.B. eine Verknüpfungssynthese oder eine Formantsynthese) zum Erzeugen einer Tondarstellung der digitalen Antwort 710 nutzen. Insbesondere umfasst die digitale Antwort 710 eine Aussage, dass die Aktion, die durch das Segment eines digitalen Dialogs angefragt worden ist, durchgeführt worden ist. In einer oder mehreren Ausführungsform(en) umfasst die digitale Antwort eine Tonantwort.
-
Wie es vorstehend erwähnt worden ist, nutzt das Dialogzustand-Verfolgungssystem ein trainiertes Dialogzustand-verfolgendes neuronales Netzwerk beim Erzeugen digitaler Dialogzustände. Die 8 zeigt ein Blockdiagramm des Dialogzustand-Verfolgungssystems, das ein Dialogzustand-verfolgendes neuronales Netzwerk gemäß einer oder mehrerer Ausführungsform(en) trainiert. Wie es in der 8 gezeigt ist, trainiert das Dialogzustand-Verfolgungssystem das Dialogzustand-verfolgende neuronale Netzwerk 804 unter Verwendung von digitalen Trainingsdialogen 802. Insbesondere umfasst jeder Dialog der digitalen Trainingsdialoge 802 einen Satz von Trainingssegmenten. Beispielsweise kann ein digitaler Trainingsdialog ein erstes Trainingssegment und ein zweites Trainingssegment umfassen.
-
Ferner umfasst, wie es in der 8 gezeigt ist, das Dialogzustand-verfolgende neuronale Netzwerk 804 eine dynamische Speichernetzwerkarchitektur wie z.B. die dynamische Speichemetzwerkarchitektur, die in Bezug auf die 3 bis 6 beschrieben ist. Das Dialogzustand-Verfolgungssystem stellt die digitalen Trainingsdialoge 802 für das Dialogzustand-verfolgende neuronale Netzwerk 804 bereit und das Dialogzustand-verfolgende neuronale Netzwerk 804 erzeugt einen vorhergesagten Dialogzustand 806. Insbesondere stellt das Dialogzustand-Verfolgungssystem ein Trainingssegment eines digitalen Trainingsdialogs bereit und das Dialogzustand-verfolgende neuronale Netzwerk erzeugt einen vorhergesagten Dialogzustand, der diesem bestimmten Trainingssegment entspricht. Beispielsweise kann das Dialogzustand-Verfolgungssystem ein erstes Trainingssegment bereitstellen und das Dialogzustand-verfolgende neuronale Netzwerk 804 kann einen ersten vorhergesagten Dialogzustand erzeugen, der dem ersten Trainingssegment entspricht. Anschließend kann das Dialogzustand-Verfolgungssegment ein zweites Trainingssegment bereitstellen und das Dialogzustand-verfolgende neuronale Netzwerk 804 kann einen zweiten vorhergesagten Dialogzustand erzeugen, der dem zweiten Trainingssegment entspricht. Beim Erzeugen des vorhergesagten Dialogzustands 806 verarbeitet das Dialogzustand-verfolgende neuronale Netzwerk 804 jedes Trainingssegment gemäß den Vorgängen, die vorstehend in Bezug auf die 3 bis 6 diskutiert worden sind.
-
Wie es in der 8 gezeigt ist, vergleicht das Dialogzustand-Verfolgungssystem dann den vorhergesagten Dialogzustand 806 mit einem Basiswahrheit-Dialogzustand 808. Insbesondere stellt der Basiswahrheit-Dialogzustand 808 den wahren Dialogzustand für den bestimmten digitalen Trainingsdialog nach dem bestimmten Trainingssegment bereit, das als letztes durch das Dialogzustand-verfolgende neuronale Netzwerk 804 verarbeitet worden ist. Beispielsweise kann der Basiswahrheit-Dialogzustand 808 eine Anmerkung umfassen, die einen vorgegebenen Zustand des digitalen Trainingsdialogs nach dem bestimmten Trainingssegment bereitstellt (d.h., eine Anmerkung durch einen Administrator des Dialogzustand-Verfolgungssystems).
-
Wie es in der 8 gezeigt ist, vergleicht das Dialogzustand-Verfolgungssystem den vorhergesagten Dialogzustand 806 mit dem Basiswahrheit-Dialogzustand 808 durch Anwenden einer Verlustfunktion 810. Die Verlustfunktion 810 bestimmt die Kosten (d.h., den Fehler), die sich aus dem Dialogzustand-verfolgenden neuronalen Netzwerk 804 ergeben, auf der Basis der Differenz zwischen einem abgeschätzten Wert (d.h., dem vorhergesagten Dialogzustand 806) und dem wahren Wert (d.h., dem Basiswahrheit-Dialogzustand 808). Das Dialogzustand-Verfolgungssystem kann verschiedene Verlustfunktionen nutzen, einschließlich eine quadratische Fehlerverlustfunktion, eine 0-1-Indikatorfunktion, eine Kreuzentropie-Verlustfunktion oder eine L2-Verlustfunktion.
-
Das Dialogzustand-Verfolgungssystem kann das Dialogzustand-verfolgende neuronale Netzwerk
804 auf der Basis des bestimmten Verlusts trainieren. Beispielsweise führt das Dialogzustand-Verfolgungssystem in einer oder mehreren Ausführungsform(en) den bestimmten Verlust zu dem Dialogzustand-verfolgenden neuronalen Netzwerk zum Modifizieren von dessen Parametern zurück (wie es durch die gestrichelte Linie
812 angegeben ist). In einer oder mehreren Ausführungsform(en) modifiziert das Dialogzustand-Verfolgungssystem die Parameter jeder Schicht des Dialogzustand-verfolgenden neuronalen Netzwerks
804 (z.B. trainierbare Parameter, die den Aktualisierungsgattern und/oder Rücksetzgattern entsprechen, wie z.B.
). Folglich erhöht das Bild-Neubeleuchtungssystem („image relighting system“) nach und nach die Genauigkeit des Dialogzustand-verfolgenden neuronalen Netzwerks
804 (z.B. durch einen Gradientenanstieg oder Gradientenabfall). Wie es gezeigt ist, kann das Dialogzustand-Verfolgungssystem auf diese Weise das trainierte Dialogzustand-verfolgende neuronale Netzwerk
814 erzeugen.
-
In einer oder mehreren Ausführungsform(en) kann das Dialogzustand-Verfolgungssystem das eingebettete neuronale Faltungsnetzwerk separat trainieren. Insbesondere kann das Dialogzustand-Verfolgungssystem das eingebettete neuronale Faltungsnetzwerk vor dem Trainieren des Dialogzustand-verfolgenden neuronalen Netzwerks 804 in einer überwachten oder nicht-überwachten Weise trainieren. Zur Veranschaulichung kann das Dialogzustand-Verfolgungssystem das neuronale Faltungsnetzwerk zum Kodieren von digitalen Dialogen auf der Basis von Basiswahrheit-Daten oder durch Nutzen eines nicht-überwachten Trainingsansatzes (z.B. eines Autokodierers oder eines nachteiligen neuronalen Netzwerks) trainieren.
-
Folglich kann das Dialogzustand-Verfolgungssystem ein Dialogzustand-verfolgendes neuronales Netzwerk zum Erzeugen digitaler Dialogzustände entsprechend Segmenten eines digitalen Dialogs trainieren. Die Algorithmen und Vorgänge, die in Bezug auf die 3 bis 6 und die 8 beschrieben sind, können die entsprechende Struktur zum Durchführen eines Schritts zum Trainieren eines Dialogzustand-verfolgenden neuronalen Netzwerks umfassen, das ein dynamisches Speichernetzwerk zum Erzeugen digitaler Dialogzustände umfasst. Zusätzlich können die neuronales Netzwerk-Architektur und die dynamische Speichereinheit-Architekturen, die in Bezug auf die 3 bis 6 beschrieben sind, die entsprechende Struktur zum Trainieren eines Dialogzustand-verfolgenden neuronalen Netzwerks umfassen, das ein dynamisches Speichernetzwerk zum Erzeugen digitaler Dialogzustände umfasst.
-
Wie es vorstehend erwähnt worden ist, erzeugt das Dialogzustand-Verfolgungssystem unter Verwendung eines Dialogzustand-verfolgenden neuronalen Netzwerks mit einer dynamischen Speichernetzwerkarchitektur genaue und effiziente digitale Dialogzustände, was zu besseren digitalen Antworten auf Dialogsegmente führt. Forscher haben eine Untersuchung zum Bestimmen der Genauigkeit und Effektivität von einer oder mehreren Ausführungsform(en) des Dialogzustand-Verfolgungssystems durchgeführt.
-
Die Forscher haben sechs neuronales Netzwerk-Modelle bewertet. Insbesondere haben die Forscher drei verschiedene Ausführungsformen des Dialogzustand-Verfolgungssystems (d.h., eine Ausführungsform mit dynamischen Speichereinheiten mit einem einzelnen Gatter, eine Ausführungsform mit dynamischen Speichereinheiten mit sowohl einem Rücksetz- als auch einem Aktualisierungsgatter, und eine Ausführungsform mit dynamischen Speichereinheiten mit platzübergreifende Interaktion-Gattern) und drei neuronales Netzwerk-Modelle unter Verwendung anderer neuronales Netzwerk-Architekturen (d.h., CNN, RCNN und RCNN mit GRUs) bewertet. Die Ausführungsform des Dialogzustand-Verfolgungssystems mit dem einzelnen Gatter und die Ausführungsform mit sowohl dem Rücksetz- als auch dem Aktualisierungsgatter wurden so trainiert, dass sie jeweils fünf Speicherplätze aufweisen. Die Ausführungsform mit den platzübergreifende Interaktion-Gattern wurde so trainiert, dass sie zehn Speicherplätze aufwies.
-
Die 9 zeigt eine Tabelle, welche die Ergebnisse der Untersuchung wiedergibt. Höhere Genauigkeit (P)-, Wiederaufruf (R)- und F-Maß-Bewertungen zeigen eine bessere Themavorhersage, während niedrigere Pk- und WindowDiff-Werte genauere Segmentierungen angeben. Die beste Bewertung für jedes Maß ist im Fettdruck hervorgehoben. Wie es in der 9 gezeigt ist, übertrafen die verschiedenen Ausführungsformen des Dialogzustand-Verfolgungssystems die anderen neuronales Netzwerk-Modelle sowohl bei der Thema-Vorhersage als auch bei der Thema-Segmentierung. Insbesondere war jede der Verbesserungen der F-Maß-Metrik durch die verschiedenen Ausführungsformen des Dialogzustand-Verfolgungssystems statistisch signifikant (p < 0,001). Zusätzlich waren auch die Verbesserungen bei der Segmentierung statistisch signifikant (p < 0,05), ausgenommen die Verbesserung in Bezug auf das CNN-Modell.
-
Wie es aus der Tabelle von 9 ersichtlich ist, führten alle getesteten Ausführungsformen des Dialogzustand-Verfolgungssystems zu Verbesserungen in Bezug auf die Thema-Vorhersage und die Segmentierungsgenauigkeit. Insbesondere führte die Ausführungsform des Dialogzustand-Verfolgungssystems mit den platzübergreifende Interaktion-Gattern zu den am meisten verbesserten Bewertungen. Diese Ausführungsform wies bei jedem Maß mit Ausnahme des Wiederaufrufens eine bessere Leistung auf als die anderen getesteten Modelle. Insbesondere bestanden die Verbesserungen des F-Maßes die statistischen Signifikanztests bei p = 0,05 von den anderen Ausführungsformen des Dialogzustand-Verfolgungssystems und p = 0,001 von den CNN- und RCNN-Basiswerten. Die Differenzen bei den Segmentierungsleistungen waren ebenfalls bei beiden Metriken signifikant (p < 0,001). Folglich zeigt die Tabelle von 9 die verbesserte Genauigkeit des Dialogzustand-Verfolgungssystems.
-
Unter Bezugnahme auf die 10 werden weitere Informationen bezüglich der Implementierung des Dialogzustand-Verfolgungssystems angegeben. Insbesondere zeigt die 10 ein schematisches Diagramm einer beispielhaften Systemumgebung („Umgebung“) 1000, in der ein Dialogzustand-Verfolgungssystem 102 implementiert werden kann. Wie es in der 10 gezeigt ist, kann die Umgebung 1000 (einen) Server 1002, ein Netzwerk 1008, Client-Vorrichtungen 1010a bis 1010n und Nutzer 1014a bis 1014n umfassen.
-
Obwohl die 10 eine bestimmte Anzahl von Client-Vorrichtungen zeigt, sollte beachtet werden, dass die Umgebung 1000 jedwede Anzahl von Rechenvorrichtungen (weniger oder mehr als gezeigt) umfassen kann. Entsprechend sind, obwohl die 10 eine bestimmte Anordnung des oder der Server(s) 1002, des Netzwerks 1008, der Client-Vorrichtungen 1010a bis 1010n und der Nutzer 1014a bis 1014n zeigt, verschiedene zusätzliche Anordnungen möglich.
-
Der oder die Server 1002, das Netzwerk 1008, die Client-Vorrichtungen 1010a bis 1010n und die Nutzer 1014a bis 1014n können entweder direkt oder indirekt kommunikativ miteinander gekoppelt sein (z.B. durch das Netzwerk 1008, das nachstehend in Bezug auf die 13 detaillierter diskutiert wird). Darüber hinaus kann oder können der oder die Server 1002 und die Client-Vorrichtungen 1010a bis 1010n jedwede Art von Rechenvorrichtung umfassen (einschließlich eine oder mehrere Rechenvorrichtung(en), die nachstehend in Bezug auf die 13 detaillierter diskutiert wird oder werden).
-
Wie es vorstehend erwähnt worden ist, umfasst die Umgebung 1000 den oder die Server 1002. Der oder die Server 1002 kann oder können jedwede Art von Daten, einschließlich die digitalen Dialoge und digitalen Antworten, erzeugen, speichern, empfangen und/oder senden bzw. übertragen. Beispielsweise kann oder können der oder die Server 1002 ein Segment eines digitalen Dialogs von der Client-Vorrichtung 1010a empfangen und eine digitale Antwort zurück zu der Client-Vorrichtung 1010a senden. In einer oder mehreren Ausführungsform(en), umfasst oder umfassen der oder die Server 1002 einen Datenserver. Der oder die Server 1002 kann oder können auch einen Kommunikationsserver oder einen Webhosting-Server umfassen.
-
Wie es in der 10 gezeigt ist, kann oder können der oder die Server 1002 das künstliche Intelligenz-Kommunikationssystem 1004 umfassen. Insbesondere kann das künstliche Intelligenz-Kommunikationssystem 1004 digitale Kommunikationsfunktionen durchführen. Beispielsweise kann das künstliche Intelligenz-Kommunikationssystem ein Segment eines digitalen Dialogs von dem Nutzer 1014a mittels der Client-Vorrichtung 1010a empfangen. Das künstliche Intelligenz-Kommunikationssystem 1004 kann anschließend das Segment eines digitalen Dialogs dem Dialogzustand-Verfolgungssystem 102 bereitstellen und die resultierende digitale Antwort für eine Kommunikation zurück zu dem Nutzer 1014a bereitstellen. Insbesondere kann das künstliche Intelligenz-Kommunikationssystem 1004 bei der Erzeugung der digitalen Antwort für eine Kommunikation eine natürliche Spracherzeugung und eine Text-zu-Sprache-Synthesefunktionalität bei der Erzeugung der digitalen Antwort für eine Kommunikation einsetzen.
-
Zusätzlich kann oder können der oder die Server 1002 das Dialogzustand-Verfolgungssystem 102 umfassen. Insbesondere nutzt das Dialogzustand-Verfolgungssystem 102 in einer oder mehreren Ausführungsform(en) den oder die Server 1002 zum Erzeugen digitaler Antworten auf Segmente eines digitalen Dialogs. Beispielsweise kann das Dialogzustand-Verfolgungssystem 102 den oder die Server 1002 zum Empfangen eines Segments eines digitalen Dialogs und dann Erzeugen einer digitalen Antwort nutzen.
-
Beispielsweise kann oder können der oder die Server in einer oder mehreren Ausführungsform(en) einen digitalen Dialog empfangen, der verschiedene Segmente eines digitalen Dialogs umfasst. Der oder die Server 1002 kann oder können ein erstes Segment eines digitalen Dialogs zum Erzeugen eines ersten digitalen Dialogzustands verarbeiten und dann eine digitale Antwort auf das erste Segment auf der Basis des ersten digitalen Dialogzustands erzeugen. Der oder die Server 1002 kann oder können ein zweites Segment eines digitalen Dialogs zum Erzeugen eines zweiten digitalen Dialogzustands verarbeiten und dann eine digitale Antwort auf das zweite Segment auf der Basis des zweiten digitalen Dialogzustands erzeugen. Insbesondere kann oder können der oder die Server 1002 jedes Segment eines digitalen Dialogs zum Erzeugen eines entsprechenden digitalen Dialogzustands verarbeiten, und zwar unter Verwendung eines Dialogzustand-verfolgenden neuronalen Netzwerks mit einer dynamischen Speichernetzwerkarchitektur mit einer Mehrzahl von Speicherplätzen und entsprechenden Aktualisierungs- und Rücksetzgattern.
-
Wie es durch die vorhergehenden beispielhaften Ausführungsformen gezeigt worden ist, kann das Dialogzustand-Verfolgungssystem 102 als Ganzes oder teilweise durch die einzelnen Elemente der Umgebung 1000 implementiert werden. Obwohl die 10 das Dialogzustand-Verfolgungssystem 102 zeigt, das bezüglich des oder der Server(s) implementiert ist, sollte beachtet werden, dass Komponenten des Dialogzustand-Verfolgungssystems 102 in jedweder der Komponenten der Umgebung 1000 implementiert werden können. Die Komponenten des Dialogzustand-Verfolgungssystems 102 werden nachstehend bezüglich der 11 detaillierter diskutiert.
-
In einer oder mehreren Ausführungsform(en) umfassen die Client-Vorrichtungen 1010a bis 1010n Computervorrichtungen, die es den Nutzern der Vorrichtungen (z.B. den Nutzern 1014a bis 1014n) ermöglichen, eine digitale Kommunikation zu senden und zu empfangen. Beispielsweise können die Client-Vorrichtungen 1010a bis 1010n Smartphones, Tablets, Desktopcomputer, Laptopcomputer oder andere elektronische Vorrichtungen umfassen. Die Client-Vorrichtungen 1010a bis 1010n können eine oder mehrere Anwendung(en) (z.B. die Dialogzustand-Verfolgungsanwendung 1012) umfassen, die es den Nutzern 1014a bis 1014n ermöglicht oder ermöglichen, eine digitale Kommunikation zu senden und zu empfangen. Beispielsweise kann die Dialogzustand-Verfolgungsanwendung 1012 eine Software-Anwendung umfassen, die auf den Client-Vorrichtungen 1010a bis 1010n installiert ist. Zusätzlich oder alternativ kann die Dialogzustand-Verfolgungsanwendung 1012 eine Software-Anwendung umfassen, die auf dem oder den Server(n) 1002 gehostet ist, auf den oder die durch die Client-Vorrichtungen 1010a bis 1010n durch eine andere Anwendung, wie z.B. einen Webbrowser, zugegriffen werden kann.
-
Unter Bezugnahme auf die 11 werden zusätzliche Details bezüglich verschiedener Komponenten und Fähigkeiten des Dialogzustand-Verfolgungssystems 102 angegeben. Insbesondere zeigt die 11 das Dialogzustand-Verfolgungssystem 102, das durch die Rechenvorrichtung 1102 implementiert wird (z.B. den oder die Server 1002 und/oder die Client-Vorrichtungen 1010a bis 1010n, die vorstehend unter Bezugnahme auf die 10 diskutiert worden sind). Zusätzlich ist das Dialogzustand-Verfolgungssystem 102 auch Teil des künstliche Intelligenz-Kommunikationssystems 1004. Wie es gezeigt ist, kann das Dialogzustand-Verfolgungssystem 102 ein neuronales Netzwerk-Trainingsmodul 1104, eine neuronales Netzwerk-Anwendungsverwaltungseinrichtung 1106, einen digitale Antwort-Generator 1108 und einen Datenspeicher 1110 (der die digitalen Trainingsdialoge 1112 und das neuronale Netzwerk 1114 umfasst) umfassen, ist jedoch nicht darauf beschränkt.
-
Wie es vorstehend erwähnt und in der 11 gezeigt ist, umfasst das Dialogzustand-Verfolgungssystem 102 das neuronales Netzwerk-Trainingsmodul 1104. Insbesondere trainiert das neuronales Netzwerk-Trainingsmodul 1104 ein Dialogzustand-verfolgendes neuronales Netzwerk zum Erzeugen von digitalen Dialogzuständen, die zum Erzeugen von digitalen Antworten auf Segmente eines digitalen Dialogs verwendet werden. Beispielsweise trainiert das neuronales Netzwerk-Trainingsmodul 1104 das Dialogzustand-verfolgende neuronale Netzwerk 804 unter Verwendung der digitalen Trainingsdialoge 802, wie es vorstehend in Bezug auf die 8 diskutiert worden ist.
-
Wie es in der 11 gezeigt ist, umfasst das Dialogzustand-Verfolgungssystem 102 auch die neuronales Netzwerk-Anwendungsverwaltungseinrichtung 1106. Insbesondere nutzt die neuronales Netzwerk-Anwendungsverwaltungseinrichtung 1106 das Dialogzustand-verfolgende neuronale Netzwerk, das durch das neuronales Netzwerk-Trainingsmodul 1104 trainiert wird. Beispielsweise wendet die neuronales Netzwerk-Anwendungsverwaltungseinrichtung 1106 einen digitalen Dialog für das trainierte Dialogzustand-verfolgende neuronale Netzwerk zum Erzeugen digitaler Dialogzustände für jedes Segment des digitalen Dialogs an, die zum weiteren Erzeugen von digitalen Antworten auf diese Segmente verwendet werden.
-
Zusätzlich umfasst, wie es in der 11 gezeigt ist, das Dialogzustand-Verfolgungssystem 102 den digitale Antwort-Generator 1108. Insbesondere erzeugt der digitale Antwort-Generator 1108 digitale Antworten, die auf Segmente eines digitalen Dialogs antworten. Beispielsweise kann der digitale Antwort-Generator 1108 die digitalen Dialogzustände, die durch die neuronales Netzwerk-Anwendungsverwaltungseinrichtung 1106 erzeugt werden, zum Erzeugen der digitalen Antworten für jedes Segment der entsprechenden digitalen Dialoge nutzen. Beispielsweise kann der digitale Antwort-Generator 1108 einen ersten digitalen Dialogzustand, der durch Verarbeiten eines ersten Segments eines digitalen Dialogs erzeugt wird, zum Erzeugen einer ersten digitalen Antwort nutzen. Der digitale Antwort-Generator 1108 kann dann einen zweiten digitalen Dialogzustand, der durch Verarbeiten eines zweiten Segments des digitalen Dialogs erzeugt wird, zum Erzeugen einer zweiten digitalen Antwort nutzen.
-
Ferner umfasst, wie es in der 11 gezeigt ist, das Dialogzustand-Verfolgungssystem 102 den Datenspeicher 1110. Insbesondere umfasst der Datenspeicher 1110 digitale Trainingsdialoge 1112 und das neuronale Netzwerk 1114. Die digitalen Trainingsdialoge 1112 speichern eine Mehrzahl von digitalen Trainingsdialogen, die den Satz von Trainingssegmenten umfassen. Das neuronales Netzwerk-Trainingsmodul 1104 kann die Mehrzahl von digitalen Trainingsdialogen von digitalen Trainingsdialogen 1112 erhalten, wenn das Dialogzustand-verfolgende neuronale Netzwerk trainiert wird. Das neuronale Netzwerk 1114 speichert das Dialogzustand-verfolgende neuronale Netzwerk, das durch das neuronales Netzwerk-Trainingsmodul 1104 trainiert wird und durch die neuronales Netzwerk-Anwendungsverwaltungseinrichtung 1106 zum Erzeugen digitaler Dialogzustände durch Verarbeiten von Segmenten eines digitalen Dialogs angewandt wird.
-
Die Komponenten 1104 bis 1114 und deren entsprechenden Elemente können Software, Hardware oder beides umfassen. Beispielsweise können die Komponenten 1104 bis 1114 und deren entsprechenden Elemente eine oder mehrere Anweisung(en) umfassen, die auf einem computerlesbaren Speichermedium gespeichert sind und durch Prozessoren von einer oder mehreren Rechenvorrichtung(en) ausführbar sind. Die Komponenten 1104 bis 1114 und deren entsprechenden Elemente können Hardware umfassen, wie z.B. eine spezielle Verarbeitungsvorrichtung zum Ausführen einer bestimmten Funktion oder Gruppe von Funktionen. Zusätzlich oder alternativ können die Komponenten 1104 bis 1114 und deren entsprechenden Elemente eine Kombination von computerausführbaren Anweisungen und Hardware umfassen.
-
Ferner können die Komponenten 1104 bis 1114 des Dialogzustand-Verfolgungssystems 102 beispielsweise als eine oder mehrere eigenständige Anwendung(en), als ein oder mehrere Modul(e) einer Anwendung, als ein oder mehrere Plug-in(s), als eine oder mehrere Bibliotheksfunktion(en) oder Funktionen, die durch andere Anwendungen aufgerufen werden können, und/oder als Cloud-Computingmodell implementiert werden. Folglich können die Komponenten 1104 bis 1114 des Dialogzustand-Verfolgungssystems 102 als eigenständige Anwendung implementiert werden, wie z.B. eine Desktop-Anwendung oder mobile Anwendung. Ferner können die Komponenten 1104 bis 1114 des Dialogzustand-Verfolgungssystems 102 als eine oder mehrere webbasierte Anwendung(en), die auf einem Remoteserver gehostet ist oder sind, implementiert werden. Alternativ oder zusätzlich können die Komponenten 1104 bis 1114 des Dialogzustand-Verfolgungssystems 102 in einer Sammlung von mobile Vorrichtung-Anwendungen oder „Apps“ implementiert werden. Beispielsweise kann das Dialogzustand-Verfolgungssystem 102 in einer oder mehreren Ausführungsform(en) digitale Software-Anwendungen, wie z.B. ADOBE® SENSEI® oder ADOBE® PHOTOSHOP®, umfassen oder im Zusammenhang mit diesen arbeiten. „ADOBE“, „SENSEI“ und „PHOTOSHOP“ sind entweder eingetragene Marken oder Marken von Adobe Systems Incorporated in den Vereinigten Staaten und/oder anderen Ländern.
-
Die 1 bis 11, der entsprechende Text und die Beispiele zeigen eine Anzahl von verschiedenen Verfahren, Systemen, Vorrichtungen und nicht-flüchtigen computerlesbaren Medien des Dialogzustand-Verfolgungssystems. Zusätzlich zu dem Vorstehenden kann oder können eine oder mehrere Ausführungsform(en) auch in Bezug auf Flussdiagramme beschrieben werden, die Vorgänge zum Erreichen eines bestimmten Ergebnisses umfassen, wie es in der 12 gezeigt ist. Die 12 kann mit mehr oder weniger Vorgängen ausgeführt werden. Ferner können die Vorgänge in unterschiedlichen Reihenfolgen durchgeführt werden. Zusätzlich können die hier beschriebenen Vorgänge parallel zueinander oder parallel mit verschiedenen Fällen derselben oder ähnlicher Vorgänge durchgeführt werden.
-
Wie es erwähnt worden ist, zeigt die 12 ein Flussdiagramm einer Reihe von Vorgängen 1200 zum Erzeugen einer digitalen Antwort auf ein Segment eines digitalen Dialogs auf der Basis des digitalen Dialogzustands gemäß einer oder mehreren Ausführungsform(en). Während die 12 Vorgänge gemäß einer Ausführungsform zeigt, können alternative Ausführungsformen jedweden der Vorgänge, die in der 12 gezeigt sind, weglassen, hinzufügen, umordnen und/oder modifizieren. Die Vorgänge der 12 können als Teil eines Verfahrens durchgeführt werden. Alternativ kann ein nicht-flüchtiges computerlesbares Medium Anweisungen umfassen, die, wenn sie durch einen oder mehrere Prozessor(en) ausgeführt werden, bewirken, dass eine Rechenvorrichtung die Vorgänge von 12 ausführt. In einigen Ausführungsformen kann ein System die Vorgänge von 12 ausführen.
-
Die Reihe von Vorgängen 1200 umfasst einen Vorgang 1202 des Bereitstellens eines Segments eines digitalen Dialogs für ein Dialogzustand-verfolgendes neuronales Netzwerk. Beispielsweise umfasst der Vorgang 1202 das Bereitstellen eines Segments eines digitalen Dialogs für ein Dialogzustand-verfolgendes neuronales Netzwerk, das ein dynamisches Speichernetzwerk mit einer Mehrzahl von Speicherplätzen und einer Mehrzahl von Rücksetzgattern umfasst. In einer oder mehreren Ausführungsform(en) umfasst das dynamische Speichernetzwerk ferner eine Mehrzahl von Aktualisierungsgattem, die der Mehrzahl von Rücksetzgattern und der Mehrzahl von Speicherplätzen entsprechen. Eine oder mehrere Ausführungsform(en) umfasst oder umfassen ferner das vorhergehende Identifizieren des Segments eines digitalen Dialogs durch Empfangen einer Tondarstellung des Segments eines digitalen Dialogs.
-
Die Reihe von Vorgängen 1200 umfasst auch einen Vorgang 1204 des Nutzens eines Rücksetzgatters zum Erzeugen eines Werts eines ersten Speicherplatzes. Beispielsweise umfasst der Vorgang 1204 das Nutzen des Dialogzustand-verfolgenden neuronalen Netzwerks zum Erzeugen eines digitalen Dialogzustands, der dem Segment eines digitalen Dialogs entspricht, durch Nutzen eines Rücksetzgatters, das mit einem ersten Speicherplatz des dynamischen Speichernetzwerks zusammenhängt, zum Erzeugen eines Werts für den ersten Speicherplatz auf der Basis eines Segments eines digitalen Dialogs, wobei der Wert einen vorhergehenden Wert ersetzt, der für den ersten Speicherplatz auf der Basis eines vorhergehenden Segments eines digitalen Dialogs erzeugt worden ist. in einer oder mehreren Ausführungsform(en) umfasst das Nutzen des Rücksetzgatters, das mit dem ersten Speicherplatz zum Erzeugen des Werts zusammenhängt, das Bestimmen eines Rücksetzwerts und das Anwenden des Rücksetzwerts zum Modifizieren eines Einflusses des vorhergehenden Segments eines digitalen Dialogs auf den Wert. In einer oder mehreren Ausführungsform(en) umfasst das Rücksetzgatter ein platzübergreifende Interaktion-Rücksetzgatter (d.h., das Dialogzustand-verfolgende neuronale Netzwerk umfasst eine Mehrzahl von platzübergreifende Interaktion-Rücksetzgattem). In solchen Ausführungsformen nutzt das Dialogzustand-Verfolgungssystem das Rücksetzgatter, das mit dem ersten Speicherplatz zusammenhängt, zum Erzeugen des zweiten Werts durch Vergleichen der Werte der Mehrzahl von Speicherplätzen zum Bestimmen eines platzübergreifende Interaktion-Rücksetzwerts, der dem ersten Speicherplatz entspricht, und Anwenden des platzübergreifende Interaktion-Rücksetzwerts zum Modifizieren des Einflusses des vorhergehenden Segments eines digitalen Dialogs auf den Wert.
-
Einige Ausführungsformen umfassen ferner ein Aktualisierungsgatter, das mit dem ersten Speicherplatz zusammenhängt, zum Bestimmen eines Aktualisierungswerts und Anwenden des Aktualisierungswerts zum Modifizieren des Einflusses des Segments eines digitalen Dialogs auf den Wert. Ferner umfasst in einigen Ausführungsformen das Aktualisierungsgatter ein platzübergreifende Interaktion-Aktualisierungsgatter (d.h., das Dialogzustand-verfolgende neuronale Netzwerk umfasst ferner eine Mehrzahl von platzübergreifende Interaktion-Aktualisierungsgattern). In solchen Ausführungsformen nutzt das Dialogzustand-Verfolgungssystem das Aktualisierungsgatter, das mit dem ersten Speicherplatz zusammenhängt, zum Erzeugen des Werts durch Vergleichen der Werte der Mehrzahl von Speicherplätzen zum Bestimmen eines platzübergreifende Interaktion-Aktualisierungswerts, der dem ersten Speicherplatz entspricht, und Anwenden des platzübergreifende Interaktion-Aktualisierungswerts zum Modifizieren eines Einflusses des Segments eines digitalen Dialogs auf den Wert.
-
Die Reihe von Vorgängen 1200 umfasst ferner einen Vorgang 1206 des Erzeugens eines digitalen Dialogzustands. Beispielsweise umfasst der Vorgang 1208 das Nutzen des Dialogzustand-verfolgenden neuronalen Netzwerks zum Erzeugen des digitalen Dialogzustands, der dem Segment eines digitalen Dialogs entspricht, durch Erzeugen des digitalen Dialogzustands auf der Basis des Werts des ersten Speicherplatzes. In einigen Ausführungsformen umfasst der digitale Dialogzustand mindestens eines von einem Dialogthema, einem Ort, einem Objekt oder einer Aktion.
-
In einer oder mehreren Ausführungsform(en) umfasst das Erzeugen des digitalen Dialogzustands, der dem Segment eines digitalen Dialogs entspricht, das Bestimmen, dass das Segment eines digitalen Dialogs einem Schlüsselvektor entspricht, der mit dem ersten Speicherplatz zusammenhängt. In solchen Ausführungsformen umfasst das Nutzen des Rücksetzgatters, das mit dem ersten Speicherplatz zum Erzeugen des Werts zusammenhängt, das Nutzen des Rücksetzgatters zum Erzeugen des Werts des ersten Speicherplatzes ferner auf der Basis der Bestimmung, dass das Segment eines digitalen Dialogs dem Schlüsselvektor entspricht, der mit dem ersten Speicherplatz zusammenhängt.
-
In einigen Ausführungsformen umfasst das Erzeugen des digitalen Dialogzustands, der dem Segment eines digitalen Dialogs entspricht, das Erzeugen einer ersten Dialogmerkmalsdarstellung durch Verarbeiten des vorhergehenden Segments eines digitalen Dialogs unter Verwendung einer oder mehrerer Faltungsschicht(en) des Dialogzustand-verfolgenden neuronalen Netzwerks und das Erzeugen einer zweiten Dialogmerkmalsdarstellung durch Verarbeiten des Segments eines digitalen Dialogs unter Verwendung einer oder mehrerer Faltungsschicht(en) des Dialogzustand-verfolgenden neuronalen Netzwerks. In solchen Ausführungsformen umfasst das Erzeugen des digitalen Dialogzustands das Erzeugen des digitalen Dialogzustands auf der Basis der ersten Dialogmerkmalsdarstellung, der zweiten Dialogmerkmalsdarstellung und des Werts des ersten Speicherplatzes. In weiteren Ausführungsformen nutzt das Dialogzustand-Verfolgungssystem das Dialogzustand-verfolgende neuronale Netzwerk zum Erzeugen des digitalen Dialogzustands, der dem Segment eines digitalen Dialogs entspricht, durch Nutzen der zweiten Dialogmerkmalsdarstellung zum Erzeugen eines latenten Merkmalsvektors, der dem ersten Speicherplatz entspricht, und Erzeugen des Werts des ersten Speicherplatzes ferner auf der Basis des latenten Merkmalsvektors.
-
Zusätzlich umfasst die Reihe von Vorgängen 1200 einen Vorgang 1208 des Erzeugens einer digitalen Antwort. Beispielsweise umfasst der Vorgang 1208 das Erzeugen einer digitalen Antwort auf das Segment eines digitalen Dialogs auf der Basis des digitalen Dialogzustands. In einer oder mehreren Ausführungsformen umfasst die digitale Antwort auf das Segment eines digitalen Dialogs eine Tonantwort.
-
In einer oder mehreren Ausführungsform(en) umfasst die Reihe von Vorgängen 1200 ferner Vorgänge zum Trainieren eines Dialogzustand-verfolgenden neuronalen Netzwerks zum Erzeugen digitaler Dialogzustände, die zum Erzeugen von digitalen Antworten auf Segmente in digitalen Dialogen verwendet werden. Beispielsweise trainiert das Dialogzustand-Verfolgungssystem in einer oder mehreren Ausführungsform(en) ein Dialogzustand-verfolgendes neuronales Netzwerk, das ein dynamisches Speichernetzwerk mit einem Satz von Speicherplätzen und einem entsprechenden Satz von platzübergreifende Interaktion-Rücksetzgattern zum Erzeugen digitaler Dialogzustände umfasst, die zum Erzeugen digitaler Antworten auf Segmente in digitalen Dialogen verwendet werden, durch: Erzeugen eines ersten Satzes von Werten für den Satz von Speicherplätzen auf der Basis eines ersten Trainingssegments eines digitalen Trainingsdialogs; Anwenden eines platzübergreifende Interaktion-Rücksetzgatters auf der Basis eines Vergleichs des ersten Satzes von Werten für den Satz von Speicherplätzen zum Erzeugen eines zweiten Satzes von Werten für den Satz von Speicherplätzen; und Erzeugen eines vorhergesagten Dialogzustands zum Vergleichen mit einem Basiswahrheit-Dialogzustand auf der Basis des zweiten Satzes von Werten für den Satz von Speicherplätzen.
-
Ausführungsformen der vorliegenden Offenbarung können einen speziellen oder allgemeinen Computer umfassen oder nutzen, der eine Computerhardware umfasst, wie z.B. einen oder mehrere Prozessor(en) und Systemspeicher, wie es nachstehend detaillierter diskutiert wird. Ausführungsformen innerhalb des Umfangs der vorliegenden Offenbarung umfassen auch physikalische und andere computerlesbare Medien zum Aufweisen oder Speichern von computerausführbaren Anweisungen und/oder Datenstrukturen. Insbesondere kann einer oder können mehrere der hier beschriebenen Vorgänge mindestens teilweise als Anweisungen implementiert werden, die in einem nicht-flüchtigen computerlesbaren Medium verkörpert sind und durch eine oder mehrere Rechenvorrichtung(en) (z.B. jedwede der hier beschriebenen Medieninhaltzugriffsvorrichtungen) ausführbar sind. Im Allgemeinen erhält ein Prozessor (z.B. ein Mikroprozessor) Anweisungen von einem nicht-flüchtigen computerlesbaren Medium (z.B. einem Speicher, usw.) und führt diese Anweisungen aus, wodurch ein Vorgang oder mehrere Vorgänge, einschließlich einer oder mehrere der hier beschriebenen Vorgänge, ausgeführt wird oder werden.
-
Computerlesbare Medien können jedwede verfügbaren Medien sein, auf die durch ein allgemeines oder spezielles Computersystem zugegriffen werden kann. Computerlesbare Medien, die computerausführbare Anweisungen speichern, sind nicht-flüchtige computerlesbare Speichermedien (Vorrichtungen). Computerlesbare Medien, die computerausführbare Anweisungen aufweisen, sind Übertragungsmedien. Folglich können beispielhaft und ohne Beschränkung Ausführungsformen der Offenbarung mindestens zwei unterscheidbar verschiedene Arten von computerlesbaren Medien umfassen: nicht-flüchtige computerlesbare Speichermedien (Vorrichtungen) und Übertragungsmedien.
-
Nicht-flüchtige computerlesbare Speichermedien (Vorrichtungen) umfassen RAM, ROM, EEPROM, CD-ROM, Festkörperlaufwerke („SSDs“) (z.B. auf der Basis eines RAM), einen Flashspeicher, einen Phasenänderungsspeicher („PCM“), andere Arten von Speicher, einen anderen optischen Plattenspeicher, Magnetplattenspeicher oder andere Magnetspeichervorrichtungen, oder jedwedes andere Medium, das zum Speichern von gewünschten Programmkodemitteln in der Form von computerausführbaren Anweisungen oder Datenstrukturen verwendet werden kann und auf das durch einen allgemeinen oder speziellen Computer zugegriffen werden kann.
-
Ein „Netzwerk“ ist als eine oder mehrere Datenverknüpfung(en) definiert, die den Transport von elektronischen Daten zwischen Computersystemen und/oder Modulen und/oder anderen elektronischen Vorrichtungen ermöglicht oder ermöglichen. Wenn Informationen über ein Netzwerk oder andere Kommunikationsverbindungen (entweder drahtgebunden, drahtlos oder durch eine Kombination von drahtgebunden oder drahtlos) auf einen Computer übertragen oder für diesen bereitgestellt werden, betrachtet der Computer die Verbindung in einer geeigneten Weise als Übertragungsmedium. Übertragungsmedien können ein Netzwerk und/oder Datenverknüpfungen umfassen, das oder die zum Aufweisen von gewünschten Programmcodemitteln in der Form von computerausführbaren Anweisungen oder Datenstrukturen verwendet werden kann oder können und auf das oder die durch einen allgemeinen oder speziellen Computer zugegriffen werden kann. Kombinationen des Vorstehenden sollten auch in den Umfang von computerlesbaren Medien einbezogen werden.
-
Ferner können beim Erreichen von verschiedenen Computersystemkomponenten Programmkodemittel in der Form von computerausführbaren Anweisungen oder Datenstrukturen automatisch von Übertragungsmedien auf nicht-flüchtige computerlesbare Speichermedien (Vorrichtungen) (oder umgekehrt) übertragen werden. Beispielsweise können computerausführbare Anweisungen oder Datenstrukturen, die über ein Netzwerk oder eine Datenverknüpfung empfangen werden, in einem RAM innerhalb eines Netzwerkschnittstellenmoduls (z.B. eines „NIC“) gepuffert werden und dann schließlich auf einen Computersystem-RAM und/oder weniger flüchtige Computerspeichermedien (Vorrichtungen) auf einem Computersystem übertragen werden. Folglich sollte beachtet werden, dass nicht-flüchtige computerlesbare Speichermedien (Vorrichtungen) in Computersystemkomponenten einbezogen werden können, die auch (oder sogar in erster Linie) Übertragungsmedien nutzen.
-
Computerausführbare Anweisungen umfassen beispielsweise Anweisungen und Daten, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass ein allgemeiner Computer, ein spezieller Computer oder eine spezielle Verarbeitungsvorrichtung eine bestimmte Funktion oder Gruppe von Funktionen ausführt. In einigen Ausführungsformen werden computerausführbare Anweisungen auf einem allgemeinen Computer ausgeführt, um den allgemeinen Computer in einen speziellen Computer umzuwandeln, der Elemente der Offenbarung implementiert. Die computerausführbaren Anweisungen können beispielsweise binäre Zwischenformatanweisungen, wie z.B. Assemblysprache, oder sogar Quellcode sein. Obwohl der Gegenstand in einer Sprache beschrieben worden ist, die für strukturelle Merkmale und/oder methodologische Vorgänge spezifisch ist, sollte beachtet werden, dass der in den beigefügten Ansprüchen festgelegte Gegenstand nicht notwendigerweise auf die vorstehend beschriebenen Merkmale oder Vorgänge beschränkt ist. Vielmehr sind die beschriebenen Merkmale und Vorgänge als Beispielformen des Implementierens der Ansprüche offenbart.
-
Einem Fachmann ist klar, dass die Offenbarung in Netzwerkrechenumgebungen mit vielen Arten von Computersystemkonfigurationen durchgeführt werden kann, einschließlich Personalcomputern, Desktopcomputem, Laptopcomputem, Nachrichtenprozessoren, handgehaltenen Vorrichtungen, Mehrfachprozessorsystemen, Mikroprozessor-basierter oder programmierbarer Verbraucherelektronik, Netzwerk-PCs, Minicomputern, Großrechnern, Mobiltelefonen, PDAs, Tablets, Funkrufempfängern, Routern, Umschalteinrichtungen und dergleichen. Die Offenbarung kann auch in verteilten Systemumgebungen durchgeführt werden, bei denen sowohl lokale als auch entfernt vorliegende Computersysteme, die durch ein Netzwerk verknüpft sind (entweder durch drahtgebundene Datenverknüpfungen, drahtlose Datenverknüpfungen oder durch eine Kombination aus drahtgebundenen und drahtlosen Datenverknüpfungen), Aufgaben ausführen. In einer verteilten Systemumgebung können sich Programmmodule sowohl in lokalen als auch entfernt vorliegenden Speichervorrichtungen befinden.
-
Ausführungsformen der vorliegenden Offenbarung können auch in Cloudcomputing-Umgebungen implementiert werden. In dieser Beschreibung ist „Cloudcomputing“ als ein Modell zum Ermöglichen eines bedarfsgemäßen Netzwerkzugangs zu einem gemeinsamen Pool von konfigurierbaren Rechenresourcen definiert. Beispielsweise kann ein Cloudcomputing auf dem Markt zum Anbieten eines universellen und bequemen Zugangs zu dem gemeinsamen Pool von konfigurierbaren Rechenresourcen eingesetzt werden. Der gemeinsame Pool von konfigurierbaren Rechenresourcen kann mittels einer Virtualisierung schnell bereitgestellt werden und mit einem geringen Verwaltungsaufwand oder einer geringen Serviceproviderinteraktion freigegeben werden und dann entsprechend skaliert werden.
-
Ein Cloudcomputing-Modell kann aus verschiedenen Eigenschaften, wie z.B. einer bedarfsgemäßen Selbstbedienung, einem breiten Netzwerkzugang, einer Ressourcenvereinigung, einer schnellen Elastizität, einem richtig bemessenen Dienst, usw., zusammengesetzt sein. Ein Cloudcomputing-Modell kann auch verschiedene Dienstmodelle bereitstellen, wie z.B. Software als Dienst („SaaS“), Plattform als Dient („PaaS“) und Infrastruktur als Dienst („IaaS“). Ein Cloudcomputing-Modell kann auch unter Verwendung von verschiedenen Verbreitungsmodellen, wie z.B. einer Privatcloud, einer Gemeinschaftscloud, einer öffentlichen Cloud, einer Hybridcloud, usw., verbreitet werden. In dieser Beschreibung und in den Ansprüchen ist eine „Cloudcomputingumgebung“ eine Umgebung, in der ein Cloudcomputing eingesetzt wird.
-
Die 13 zeigt ein Blockdiagramm einer beispielhaften Rechenvorrichtung 1300, die so konfiguriert werden kann, dass sie einen oder mehrere der vorstehend beschriebenen Vorgang oder Vorgänge durchführt. Es sollte beachtet werden, dass eine oder mehrere Rechenvorrichtung(en), wie z.B. die Rechenvorrichtung 1300, die vorstehend beschriebenen Rechenvorrichtungen darstellen kann oder können (z.B. die Rechenvorrichtung 1102, der oder die Server 1002 und die Client-Vorrichtungen 1010a bis 1010n). In einer oder mehreren Ausführungsformen kann die Rechenvorrichtung 1300 eine mobile Vorrichtung sein (z.B. ein Mobiltelefon, ein Smartphone, ein PDA, ein Tablet, ein Laptop, eine Kamera, ein Tracker, eine Uhr, eine anziehbare Vorrichtung, usw.). In einigen Ausführungsformen kann die Rechenvorrichtung 1300 eine nicht-mobile Vorrichtung sein (z.B. ein Desktopcomputer oder eine andere Art von Client-Vorrichtung). Ferner kann die Rechenvorrichtung 1300 eine Servervorrichtung sein, die cloudbasierte Verarbeitungs- und Speicherfähigkeiten umfasst.
-
Wie es in der 13 gezeigt ist, kann die Rechenvorrichtung einen oder mehrere Prozessoren) 1302, einen Speicher 1304, eine Speichervorrichtung 1306, Eingabe/Ausgabe-Schnittstellen 1308 (oder „I/O-Schnittstellen 1308“) und eine Kommunikationsschnittstelle 1310 umfassen, die mittels einer Kommunikationsinfrastruktur (z.B. eines Bus 1312) kommunikativ gekoppelt sein können. Während die Rechenvorrichtung 1300 in der 13 gezeigt ist, sollen die in der 13 gezeigten Komponenten nicht beschränkend sein. Zusätzliche oder alternative Komponenten können in weiteren Ausführungsformen verwendet werden. Ferner umfasst die Rechenvorrichtung 1300 in bestimmten Ausführungsformen weniger Komponenten als diejenigen, die in der 13 gezeigt sind. Komponenten der Rechenvorrichtung 1300, die in der 13 gezeigt sind, werden nachstehend detaillierter beschrieben.
-
In bestimmten Ausführungsformen umfasst der Prozessor oder umfassen die Prozessoren 1302 Hardware zum Ausführen von Anweisungen, wie z.B. solchen, die ein Computerprogramm bilden. Als Beispiel und nicht beschränkend kann der Prozessor oder können die Prozessoren 1302 die Anweisungen von einem internen Register, einem internen Zwischenspeicher, dem Speicher 1304 oder einer Speichervorrichtung 1306 abfragen (oder abrufen) und diese dekodieren und ausführen.
-
Die Rechenvorrichtung 1300 umfasst den Speicher 1304, der mit dem oder den Prozessor(en) 1302 gekoppelt ist. Der Speicher 1304 kann zum Speichern von Daten, Metadaten und Programmen zur Ausführung durch den oder die Prozessor(en) verwendet werden. Der Speicher 1304 kann einen oder mehrere von flüchtigen und nicht-flüchtigen Speichern, wie z.B. einen Direktzugriffsspeicher („RAM“), einen Festwertspeicher („ROM“), einen Festkörperspeicher („SSD“), einen Flashspeicher, einen Phasenänderungsspeicher („PCM“) oder andere Arten eines Datenspeichers umfassen. Der Speicher 1304 kann ein interner oder verteilter Speicher sein.
-
Die Rechenvorrichtung 1300 umfasst eine Speichervorrichtung 1306, die einen Speicher zum Speichern von Daten oder Anweisungen umfasst. Als Beispiel und nicht beschränkend kann die Speichervorrichtung 1306 ein vorstehend beschriebenes nicht-flüchtiges Speichermedium umfassen. Die Speichervorrichtung 1306 kann eine Festplatte (HDD), einen Flashspeicher, ein „Universal Serial Bus“ (USB)-Laufwerk oder eine Kombination dieser oder anderer Speichervorrichtungen umfassen.
-
Wie es gezeigt ist, umfasst die Rechenvorrichtung 1300 eine oder mehrere I/O-Schnittstelle(n) 1308, die bereitgestellt ist oder sind, um es einem Nutzer zu ermöglichen, für die Rechenvorrichtung 1300 eine Eingabe (wie z.B. Nutzeranschläge) zu dieser bereitzustellen, eine Ausgabe von dieser zu empfangen und in sonstiger Weise Daten zu und von dieser zu übertragen. Diese I/O-Schnittstellen 1308 können eine Maus, ein Tastenfeld oder eine Tastatur, einen Berührungsbildschirm, eine Kamera, einen optischen Scanner, eine Netzwerkschnittstelle, ein Modem, andere bekannte I/O-Vorrichtungen oder eine Kombination solcher I/O-Schnittstellen 1308 umfassen. Der Berührungsbildschirm kann mit einem Stift oder einem Finger aktiviert werden.
-
Die I/O-Schnittstellen 1308 können eine oder mehrere Vorrichtung(en) zum Darstellen einer Ausgabe für einen Nutzer umfassen, einschließlich, jedoch nicht beschränkt auf, ein Grafikmodul, eine Anzeige (z.B. einen Anzeigebildschirm), einen oder mehrere Ausgabetreiber (z.B. Anzeigetreiber), einen oder mehrere Lautsprecher und einen oder mehrere Audiotreiber. In bestimmten Ausführungsformen sind die I/O-Schnittstellen 1308 so ausgebildet, dass sie grafische Daten für eine Anzeige zur Darstellung für einen Nutzer bereitstellen. Die grafischen Daten können eine oder mehrere grafische Nutzerschnittstelle(n) und/oder einen anderen grafischen Inhalt, der einer bestimmten Implementierung dienen kann, darstellen.
-
Die Rechenvorrichtung 1300 kann ferner eine Kommunikationsschnittstelle 1310 umfassen. Die Kommunikationsschnittstelle 1310 kann Hardware, Software oder beides umfassen. Die Kommunikationsschnittstelle 1310 kann eine oder mehrere Schnittstelle(n) für eine Kommunikation (wie z.B. eine paketbasierte Kommunikation) zwischen der Rechenvorrichtung und einer oder mehreren der anderen Rechenvorrichtungen 800 oder einem oder mehreren Netzwerk(en) bereitstellen. Als Beispiel und nicht beschränkend kann die Kommunikationsschnittstelle 1310 einen Netzwerkschnittstellencontroller (NIC) oder einen Netzwerkadapter zum Kommunizieren mit einem Ethernet oder einem anderen drahtgebundenen Netzwerk oder einem drahtlosen NIC (WNIC) oder einem drahtlosen Adapter zum Kommunizieren mit einem drahtlosen Netzwerk, wie z.B. einem Wl-Fl, umfassen. Die Rechenvorrichtung 1300 kann ferner einen Bus 1312 umfassen. Der Bus 1312 kann Hardware, Software oder beides umfassen, die Komponenten der Rechenvorrichtung 1300 miteinander koppelt bzw. koppeln.
-
In der vorstehenden Beschreibung wurde die Erfindung in Bezug auf spezifische Beispielausführungsformen davon beschrieben. Verschiedene Ausführungsformen und Aspekte der Erfindung sind in Bezug auf Details beschrieben, die hier diskutiert worden sind, und die beigefügten Zeichnungen zeigen die verschiedenen Ausführungsformen. Die vorstehende Beschreibung und die Zeichnungen zeigen die Erfindung und sollen nicht so aufgefasst werden, dass sie die Erfindung beschränken. Zahlreiche spezifische Details sind angegeben, um ein gründliches Verständnis von verschiedenen Ausführungsformen der vorliegenden Erfindung bereitzustellen.
-
Die vorliegende Erfindung kann in anderen spezifischen Formen ausgeführt werden, ohne von deren Wesen oder wesentlichen Eigenschaften abzuweichen. Die beschriebenen Ausführungsformen sollen in allen Aspekten nur als veranschaulichend und nicht beschränkend aufgefasst werden. Beispielsweise können die hier beschriebenen Verfahren mit weniger oder mehr Schritten/Vorgängen durchgeführt werden oder die Schritte/Vorgänge können in verschiedenen Reihenfolgen durchgeführt werden. Zusätzlich können die hier beschriebenen Schritte/Vorgänge wiederholt oder parallel zueinander oder parallel mit verschiedenen Instanzen derselben oder ähnlichen Schritte/Vorgänge beschrieben werden. Der Umfang der Erfindung wird daher durch die beigefügten Ansprüche und nicht durch die vorstehende Beschreibung angegeben. Alle Änderungen, die von der Bedeutung und dem Äquivalenzbereich der Ansprüche umfasst sind, sollen innerhalb von deren Umfang liegen.