Einführung
Systeme für die automatische Spracherkennung (Automatic Speech Recognition, ASR) erstellen Abschriften von Texten. In der Regel sind das Abfolgen von Wörtern. Cisco setzt ASR-Systeme ein, um in Webex Meetings in Echtzeit Untertitel zu erstellen. Ein Problem besteht darin, dass es schwierig sein kann, Untertitel zu lesen, in denen weder Interpunktion noch Groß- und Kleinschreibung verwendet wird. Die Verständlichkeit der Bedeutung eines Textes hängt von der Interpunktion ab. So gibt es bei der englischen Wortfolge:„thank you your donation just helped someone get a job“ zwei unterschiedliche Interpunktionsmöglichkeiten.
Option A: „Thank you! Your donation just helped someone get a job.“ Das bedeutet auf Deutsch: „Vielen Dank! Mit Ihrer Spende haben Sie gerade jemandem geholfen, einen Job zu finden.“
Option B: „Thank you! Your donation just helped someone. Get a job.“ Das hat auf Deutsch allerdings eine ganz andere Bedeutung, nämlich: „Vielen Dank! Mit Ihrer Spende haben Sie gerade jemandem geholfen. Suchen Sie sich einen Job.“
Ein einziges Satzzeichen macht einen gewaltigen Unterschied.
Wir stellen einige Überlegungen an, die bei der Entwicklung eines Systems für die Nachbearbeitung berücksichtigt werden müssen:- Hochgradig präzise Modelle für die Wiederherstellung von Satzzeichen und Groß-/Kleinschreibung aus Rohtexten. Schnelle Schlussfolgerungen anhand von Zwischenergebnissen, um mit den Untertiteln in Echtzeit Schritt zu halten.
- Geringe Ressourcennutzung: Spracherkennung benötigt viel Rechenleistung. Deswegen dürfen die Interpunktionsmodelle nicht auch noch rechenintensiv sein.
- Fähigkeit, Wörter zu verarbeiten, die nicht im Vokabular enthalten sind: Manchmal muss die Groß- und Kleinschreibung oder Interpunktion für Wörter festgelegt werden, die das Modell noch nicht kennt.
TruncBiRNN
Intuition und Experimente zeigen, dass es unabdingbar ist, den zukünftigen Kontext zu kennen, wenn man ein Interpunktionsmodell entwickelt, weil es schwieriger ist, die Interpunktion an einer bestimmten Position zu bestimmen, wenn man die folgenden Wörter nicht kennt. Damit wir Informationen über die nächsten Token nutzen können und nicht alle verborgenen Zustände aller Token rückwärts aktualisieren müssen, haben wir beschlossen, die Bearbeitung in Rückwärtsrichtung zu beschränken und auf ein festes Fenster zu kürzen. In Vorwärtsrichtung handelt es sich lediglich um ein normales RNN. In Rückwärtsrichtung berücksichtigen wir bei jedem Token nur ein festes Fenster und wenden das RNN auf dieses Fenster an (Abbildung 2). Mithilfe dieses Fensters können wir eine konstante Zeitinferenz für neue Eingabetoken erhalten (wir müssen einen verborgenen Zustand in Vorwärtsrichtung berechnen und n+1 in Rückwärtsrichtung). Wir erhalten nun für jedes Token verborgene Zustände für die Vorwärts- und Rückwärtsrichtung. Nennen wir diese Ebene einmal TruncBiRNN oder TruncBiGRU (weil wir GRU verwenden). Diese verborgenen Zustände können innerhalb von konstanten Zeiträumen berechnet werden, die nicht von der Länge der Eingabe abhängen. Der Vorgang muss innerhalb einer konstanten Zeit ablaufen, damit er mit den Untertiteln in Echtzeit Schritt halten kann.Architektur
Die Architektur besteht aus Einbettungsebene, TruncBiGRU- und unidirektionaler GRU-Ebene und vollständig vernetzter Ebene. Für die Ausgabe verwenden wir zwei Softmax-Ebenen, je eine für die Interpunktion und die Groß- und Kleinschreibung (Abbildung 3). Das Modell sagt die Groß- und Kleinschreibung für jedes Wort sowie die darauf folgende Interpunktion vorher. Um die beiden Ausgaben besser synchronisieren und die Groß- und Kleinschreibung vorhersagen zu können, müssen wir auch die Einbettung des vorherigen Token kennen (um das Satzzeichen aus dem vorherigen Schritt wiederherzustellen). Zusammen mit einer benutzerdefinierten Verlustfunktion (siehe nächster Abschnitt) können wir so verhindern, dass Sätze mit klein geschriebenen Wörtern beginnen. Für die Vorhersage der Interpunktion ist es auch hilfreich, die Vorhersage der Groß- und Kleinschreibung des nächsten Wortes hinzuzuziehen. Deswegen verknüpfen wir die aktuelle Einbettung mit der folgenden. Eine Ausgabeebene für die Interpunktion sagt die Verteilung über alle Satzzeichen hinweg voraus. In unserem Modell ist es eine Folge:Punkt – Punkt in der Mitte eines Satzes, der nicht zwangsläufig darauf hinweist, dass das nächste Wort groß geschrieben werden sollte („z. B., „d. h.“ usw.)
Komma
Fragezeichen
Auslassungszeichen
Doppelpunkt
Bindestrich
abschließender Punkt – Punkt am Satzende
Für die Groß- und Kleinschreibung verwenden wir vier Klassen:Kleinbuchstaben
Großbuchstaben – alle Buchstaben werden groß geschrieben („IEEE“, „NASA“, usw.)
Großbuchstabe am Wortanfang
Mischform – Wörter wie „iPhone“
Großbuchstabe am Satzanfang – Wörter, die einen Satz einleiten
Die zusätzlichen Klassen „Großbuchstabe am Satzanfang“ (leading capitalized) und „abschließender Punkt“ (terminal period) mögen zunächst überflüssig erscheinen, sie leisten jedoch einen Beitrag zu konsistenteren Antworten im Hinblick auf Groß- und Kleinschreibung sowie Interpunktion. Der „abschließende Punkt“ deutet darauf hin, dass die Antwort bei der nächsten Frage der Groß- und Kleinschreibung nicht „Kleinbuchstaben“ sein kann, wohingegen „Großbuchstabe am Satzanfang“ bedeutet, dass das vorhergehende Satzzeichen ein „abschließender Punkt“ oder ein Fragezeichen sein muss. Diese Klassen spielen eine wichtige Rolle für die Verlustfunktion. Verlustfunktion: Wir müssen die Groß- und Kleinschreibung und die Interpunktion optimieren. Dazu verwenden wir die Summe aus einer logarithmischen Verlustfunktion mit einem Koeffizienten: Wie jedoch bereits erwähnt, korrelieren die Ausgaben neuronaler Netze nicht immer optimal miteinander. Ein Beispiel dafür wäre, wenn die für das Setzen von Satzzeichen zuständige Funktion „abschließender Punkt“ für das aktuelle Wort vorhersagt, die für die Groß- und Kleinschreibung zuständige Funktion jedoch nicht „Großbuchstabe am Satzanfang“ für den folgenden Token. Diese Art von Fehler ist zwar selten, sie kann aber sehr auffällig sein. Deswegen verwenden wir eine zusätzliche Abzugsbedingung in der Verlustfunktion, die bei dieser Art von Fehler zu einem Abzug führt: Die erste Bedingung entspricht der Wahrscheinlichkeit, dass ein „Großbuchstabe am Satzanfang“ nach einem Token mit einem anderen Wert als „abschließender Punkt“ steht, und die zweite für die Wahrscheinlichkeit, dass „Großbuchstabe am Satzanfang“ nicht nach „abschließender Punkt“ steht. Dieser Abzug summiert sich, wenn der Fehler bei mehreren Token auftritt. Außerdem übertragen wir zwei aufeinanderfolgende Tensoren von der vorherigen Ebene auf die Softmax-Ebenen. So können wir Abzugsbedingungen effizient reduzieren. Und schließlich ist da noch die Verlustfunktion: