Sequence Models – eine Einführung

November 1, 2021
7 min
NLP
Credits to Denis Doukhan from pixabay.com

In unserem Themenbereich Machine Learning beschreiben wir neben anderen Algorithmen (z.B. Decision Trees), wie künstliche neuronale Netze aufgebaut sind und wofür man sie verwenden kann. Oftmals führen wir Anwendungsfelder aus der Technik vor, beispielsweise das Klassifizieren eines Ausfalls eines technischen Geräts auf Basis der Betriebsdaten. Dabei lernt der Algorithmus aus den Trainingsbeispielen Muster und trifft auf Basis derer Vorhersagen für andere Betriebsfälle. In anderen Beispielen wie der Bilderkennung wird ein Modell mit vielen Trainingsdaten trainiert und gibt Vorhersagen für bisher unbekannte Bilder. So kann beispielsweise erkannt werden, ob auf verschiedenen Bildern Hunde, Katzen oder Vögel abgebildet sind. Auch beispielsweise die Vorhersage von Mietpreisen auf Basis von Daten über die Immobilie wie dem Stadtteil, der Größe, des Baujahres, etc. ist ein Anwendungsfall von Machine Learning.

Doch was haben all diese Beispiele gemein? Sie ermitteln auf Basis einer großen Anzahl an (Trainigs-)Daten Wahrscheinlichkeiten, die als Grundlage für Vorhersagen bei neuen Daten dienen. Dabei bedingen sich die geprüften Daten untereinander nicht. Wird bei einer Bilderkennung ein Hund erkannt, so wird diese Vorhersage gegeben, unabhängig davon, was bei den 20 Bildern vorher erkannt wurde, denn in diesen Use-Cases wird stets fallspezifisch berechnet.

Bei Sequence Models ist dies anders. Diese werden immer dort eingesetzt, wo sequenzielle Daten betrachtet werden. Beispiele dafür sind Musik, also eine Abfolge von Tönen, Videos, bei denen ein Bild auf das nächste folgt und nicht zuletzt die menschliche Sprache, die aus der Aneinanderreihung verschiedener Worte resultiert. All die genannten Anwendungsfelder haben gemein, dass das vorherzusagende Sequenzglied stark davon abhängt, welches Glied vorher kam. In diesem Blogeintrag möchten wir genauer darauf eingehen und zeigen, welche verschiedenen Use-Cases es für Sequence Models gibt und wie man diese mithilfe von Machine Learning umsetzen kann.

Use-Cases

Grundsätzlich werden Sequence Models überall dort eingesetzt, wo Dinge vorhergesagt oder erkannt werden sollen, die aufeinander folgen, also sequenziell auftreten und sich untereinander bedingen. Dabei unterscheiden sich die Anwendungsfälle teilweise stark in der Methodik und Wirkungsweise. Während bei klassischen Neuronalen Netzen wie in folgender Animation dargestellt ein Testbeispiel betrachtet wird, und eine Vorhersage getroffen wird (Hund/Katze), kann bei Sequence Models eine oder beide Seiten sequenzielle Daten beinhalten.

Bilderkennung mit Trainings- und Testdaten

Use-Cases für Sequence Models unterscheidet man generell zwischen den Arten der Eingangs- und Ausgangsdaten. Man spricht dabei von Many-to-One, One-to-Many und Many-to-Many.

Mit Many-to-One werden Anwendungsfälle beschrieben, die sequenzielle Daten einlesen, und einen für sich stehenden Ausgabewert vorhersagen. Dabei werden die Sequenzen der zu lesenden Daten (z.B. ein Lied) mithilfe des Sequence Models erkannt und verstanden, woraufhin ein Urteil gefällt wird (z.B. das dazugehörige Genre).

Anwendungsfälle mit One-to-Many drehen diesen Spieß um. Es wird ein Wert eingegeben, woraufhin eine Sequenz von Daten ausgegeben wird.

Bei Many-to-Many Use-Cases werden auf beiden Seiten sequenzielle Daten behandelt, z.B. eine maschinelle Übersetzung von einer Sprache in eine andere. Wichtig ist dabei, dass die Sequenzen auf beiden Seiten nicht dieselbe Länge haben müssen. Dies ist gerade bei Übersetzungen extrem wichtig, da Sätze in anderen Sprachen meistens nicht gleich viele Wörter haben.

Im Folgenden möchten wir einige Use-Cases für Sequence Models aus unterschiedlichen Fachbereichen geben, von denen Euch bestimmt schon mal einige in euerm Alltag begegnet sind.

Speech Recognition

Speech Recognition (Spracherkennung) wird überall dort genutzt, wo Informationen aus menschlicher Sprache extrahiert werden sollen, z.B. durch Amazons Alexa oder Apples Siri. Physikalisch ist ein Ton eine Druckwelle, die sich im Medium Luft verbreitet. Durch unsere Ohren können wir die verschiedenen Druckwellen, also beispielsweise Vokale und Konsonanten, voneinander unterscheiden. Durch Mikrophone können diese Schallwellen ebenfalls aufgenommen werden und in elektrische Signale umgewandelt werden. In Computern werden die Druckwellen dann in Form von digitalen Signalen verarbeitet. Visualisiert werden können sie durch Oszillogramme oder Spektrogramme. Sequence Models können die aufeinander folgenden Signale der gesprochenen Laute dann verarbeiten und beispielsweise in Text umwandeln. Deshalb handelt es sich hierbei um einen Many-to-Many-Anwendungsfall, da sowohl auf der Eingangsseite (Sequenz von Lauten) als auch auf der Ausgangsseite (Sequenz von Wörtern) sequenzielle Daten verarbeitet werden, wie in folgendem Bild dargestellt ist.

Machine Translation

Der identifizierte Text kann dann theoretisch direkt in eine andere Sprache übersetzt werden. Auch das ist mit Sequence Models möglich. Dabei werden nicht nur einzelne Wörter übersetzt, da sich der Satzbau in unterschiedlichen Sprachen unterscheidet. Versucht einfach mal, den folgenden englischen Satz Wort für Wort zu übersetzen „I will go to university today.“ Eine Wort-für-Wort-Übersetzung ist also keine gute Option für eine Machine Translation Anwendung. Zudem haben manche Wörter mehrere Bedeutungen. Eine solche Anwendung könnte nicht unterscheiden, welche Begriffe ausgewählt werden sollen, da sie den Kontext der Sätze nicht identifizieren kann. In Übersetzern wie z.B. DeepL wird vielmehr der Sinn eines Satzes extrahiert und dann übersetzt. Wie genau das (in den Grundzügen) funktioniert, möchten wir in diesem Themenbereich detailliert behandeln. In diesem Artikel möchten wir zunächst den Use-Case in den Bereich der Sequence Models einordnen: Da es sich auf beiden Seiten um sequenzielle Daten handelt, befinden wir uns hier ebenso im Many-to-Many-Bereich.

Video Activity Recognition

Doch nicht nur Sprache kann erkannt werden, es können auch Aktionen in Videos erkannt werden, da Videos auch sequenzielle Daten sind – nämlich eine Abfolge von Bildern. Da die Klassifikation in eine erkannte Aktion ein singulärer Wert ist, handelt es sich hierbei um einen Anwendungsfall der Kategorie Many-to-One. Ein Beispiel dafür sind Modelle, die menschliche Aktionen klassifizieren in Gehen, Rennen, Kämpfen oder Springen, wie in folgendem Video zu sehen ist:

Durch diese Technologie können beispielsweise Aktionen von Passanten, die durch Überwachungskameras aufgenommen werden, erkannt und zugeordnet werden. Findet bei der Videoüberwachung wie in China in großem Stil Gesichtserkennung durch Convolutional Neural Networks statt, so können durch eine Kombination beider Technologien Identitäten und Aktionen auf öffentlichen Plätzen automatisiert erkannt und bewertet werden.

Emoji Generation

Ein anderes Beispiel der Kategorie Many-to-One ist das automatisierte Vorschlagen von Emojis in Apps wie beispielsweise WhatsApp. Dabei kann die Stimmung des Satzes mithilfe von Keywords zusammengefasst werden und über der Tastatur vorgeschlagen werden. Dabei ist vor allem interessant, dass Zusammenhänge zwischen Wörtern erkannt werden können. Wenn im System lediglich hinterlegt ist, dass das Wort „glücklich“ ein grinsendes Emoji auslöst, würde bei dem Satz „Ich bin heute nicht besonders glücklich.“ ein falscher Vorschlag gemacht werden. Algorithmen aus dem Bereich der Sequence Models können die Zusammenhänge zwischen einzelnen Satzgliedern erkennen und darauf basierend Ausgänge generieren.

Sentiment Classification

Ganz ähnlich wird bei der automatischen Erkennung von Meinungen oder Bewertungen vorgegangen. So können beispielsweise Bewertungen, die online in Textform abgegeben werden, auf Bewertungen in Sternform gemappt werden.

Music Generation

Ein Beispiel aus dem Bereich One-to-Many ist Music Generation. Es gibt die Möglichkeit, einem Modell ein Genre oder eine Tonlage oder beides vorzugeben, und dieses komponiert eine Melodie, also die Abfolge von Tönen – eine Sequenz.

In komplizierteren Modellen können mithilfe dieser Technologie sogar Sinfonien komponiert werden. Als der Komponist Ludwig van Beethoven 1827 starb, hatte er seine zehnte Sinfonie noch nicht vollendet [1]. Am 09.10.2021 wurde das Stück dann doch in seiner Geburtsstadt Bonn uraufgeführt. Es wurde ein Modell entwickelt, das die Grundlagen der klassischen Musik aus einer Vielzahl von zeitgenössischen Stücken erlernte und sich den Komponierstil van Beethovens aneignete [2]. Wie das Modell entwickelt wurde, wird hier erklärt.

Unterschied zu klassischen neuronalen Netzen

Der zentrale Unterschied zwischen klassischen künstlichen neuronalen Netzen und Sequence Models liegt also im Anwendungsfall. Möchte man auf Basis von Daten Vorhersagen für andere sich untereinander nicht beeinflussende Daten treffen, so eignen sich künstliche neuronale Netze dafür. Möchte man hingegen Daten vorhersagen, die sich gegenseitig beeinflussen oder möchte Daten nutzen, die sich gegenseitig beeinflussen, kann man Sequence Models nutzen. Die wohl bekannteste Implementierung von Sequence Models sind Recurrent Neural Networks. Was es damit auf sich hat und was man dabei beachten muss, erklären wir in unseren nächsten Artikeln.

Referenzen
Portrait of Blogger
Nicolai Maisch
<  Previous
Natural Language Processing – Intro für das heißeste Thema in der KI-Forschung - Einführung in die Unterkategorien und Gründe für die rasante Entwicklung (Teil 2)
Next  >
Rekurrente Neuronale Netze leicht erklärt – Teil 1

Kommentare