Titelbild Kekse AI

Praktische Deep Learning Anwendung – Mit künstlicher Intelligenz Plätzchen-Rezepte und Weihnachtslieder generieren

Jonas Braun Blog, Data Science

Der Anfang der Adventszeit brachte dieses Jahr nicht nur den ersten Schnee in der Rhein-Main Region (Abb. 1), sondern leitete auch bei vielen nach einem Jahr voller turbulenter Ereignisse und endlosen Stunden im Homeoffice die alljährliche Zeit der Besinnlichkeit ein. Obgleich sich die angesprochene Besinnung bei vielen eher euphemistisch äußert, in Form von Geschenk- und Planungsstress oder der alljährlichen Jahresendrallye bei STATWORX, dürfen gerne auch Erinnerungen an gutes Essen, kitschige Musik und gemütliche Abende heraufbeschworen werden.

Abb. 1: Schnee in Rhein-Main
Abb. 1: Für einen kurzen Moment scheint der Weltenbrand durch unsere Lieblingsniederschlagsform erloschen, und die Welt wirkt restlos in unschuldiges und reines Weiß getaucht.
Anm. der Redaktion: Der Autor hatte eine schwierige Woche. Nichtsdestotrotz gestehen wir ein, dass seine Worte ein positives Stimmungsbild inspirieren könnten.

Mit dem Advent bricht bekanntlich auch die Zeit der Weihnachtsplätzchen an. Eine exzellente Gelegenheit, bei meinen STATWORX-Kolleg*innen unter dem Vorwand der Nächstenliebe Sympathie und professionelles Ansehen durch unschuldig wirkende, zuckerhaltige Kalorienbomben inklusive Deep-Learning-Kniff zu erlangen. In Ergänzung zu meinem vorangegangenen Artikel zum Thema Kochen mit Deep Learning, möchte ich in diesem Beitrag eine kleine Web-App vorstellen, mit der sich alternative Zutaten für Rezepte vorschlagen lassen, untermalt von KI-generierten Weihnachtsliedern. Ziel dieser Artikel (und anderer, wie zum Beispiel unsere Super Mario spielende KI) ist es, die Grundlagen hinter den oftmals etwas mystisch wirkenden Deep Learning Methoden anschaulich zu vermitteln. In vielen Gesprächen entstand bei uns der Eindruck, dass durch solch einen Überblick spannende Anwendungs- und Geschäftsfälle wesentlich besser erschlossen werden können, indem man sich zunächst bewusst macht, welche grundsätzlichen Anwendungen mittels Deep Learning erschlossen werden können.

Alternative Zutaten für Rezepte finden mittels Word Embeddings

Schon länger dominieren Anwendungen und Publikationen zum Thema Natural Language Processing die Deep Learning Forschung. Regelmäßig ermöglichen bahnbrechende Ergebnisse neue Anwendungsfälle. Eines der Schlagworte war hier zunächst Word Embeddings mittels Word2Vec und nun brandaktuell Transformer-Modelle und ihr Attention-Mechanismus, wie beispielsweise BERT oder GPT-3.

Zur genaueren Veranschaulichung dieser Methode werden im Folgenden zunächst die Grundlagen von Word Embeddings erläutert. Anschließend wird aufgezeigt, wie diese Methode genutzt wurde, um Zutaten in Rezepten durch andere, möglichst ähnlich-verwendete Lebensmittel auszutauschen. Dabei werden nicht einfach „blind“ Vorschläge gemacht sondern aus ähnlichen, kontextuell verwandten Rezepten Vorschläge erkannt und abgeleitet. Somit kann (hoffentlich) sichergestellt werden, dass das alternative Rezept zur kulinarischen Freude wird und nicht unmittelbar im Mülleimer landet.

Grundlagen von Word Embeddings

Word2Vec ist ein ausgezeichnetes Beispiel, um eine der zentralen Konzepte des Deep Learnings zu veranschaulichen: das Representation Learning. Sehr vereinfacht dem Gehirn nachempfunden, durchlaufen Daten auch in künstlichen neuronalen Netzen mehrere Schichten. Jede Schicht verändert und kombiniert die Daten vorhergehender Schichten dahingehend, dass eine dichtere und abstraktere Repräsentation der Daten entsteht. Diese Ansammlungen an Zahlen, die aus menschlicher Sicht keine intuitive Bedeutung mehr haben, enthalten nicht mehr alle Informationen der Ursprungsdaten sondern nur noch jene, die für das Modell zur Lösung der jeweiligen Aufgabe als relevant eingestuft werden. Beim Training der Modelle wird die Repräsentationen also dahingehend optimiert, die Fehler der Modell-Vorhersage zu minimieren.

Möchte man also Word Embeddings nutzen, um Worte hinsichtlich ihrer Bedeutung zu vergleichen oder Ähnlichkeiten zu erkennen, wird ein Deep Learning Modell zum allgemeinen Sprachverständnis trainiert. Dies beinhaltet meistens Aufgaben, wie die Vorhersage benachbarter Worte oder des nächsten Satzes. Um diese Aufgaben lösen zu können, muss das Modell also die grundsätzliche Verwendung von Worten, insb. im Kontext von anderen Worten erlernen. Da man im Falle unserer Word Embeddings aber nur an den internen Repräsentierung der einzelnen Worte interessiert ist, ist dieses Vorgehen (Abb. 2) eigentlich nur Mittel zum Zweck.

Abb.2: Word2Vec Verfahren zur Vorhersage von benachbarten Worten

Beim Word2Vec Verfahren wird im Training versucht, ausgehend vom mittleren Wort die links und rechts benachbarten Worte vorherzusagen. Wichtig ist, dass die Repräsentierung des mittleren Wortes durch das Umfeld bzw. den Kontext geprägt wird. Treten Worte in ähnlichen Kontexten auf, ähnelt sich ihre numerische Repräsentierung. Daraus erwarten wir beispielsweise, dass die Embeddings von Feldsalat und Radicchio sich wesentlich näher sind (häufiger Kontext: Öl, Zwiebeln, Essig, Schüssel…), als die von Feldsalat und Dosenananas (seltener Kontext: trauriger verkaterter Sonntag im Studium).

Anwendung auf ein konkretes Beispiel: Pätzchen-Rezepte mit Bake2Vec

Wie auch im vorangegangenen Artikel zu diesem Beitrag wurden die Embeddings auf einer großen Ansammlung an Texten, genannt Corpus, trainiert. In diesem Fall ca. eine Million Rezepte aus Büchern und vor allem bekannten (englischen) Rezept-Webseiten, wie von der BBC oder Epicurious.

Hierbei prägen zwei verschiedene Kontexte die Embeddings:

  1. Die Auflistung aller Zutaten eines Gerichts
  2. Die Fließtext-Anleitung zur Zubereitung, also die angeleiteten Schritte im Kochrezept selbst

Nach dem Training entsteht eine Datenbank an Wort- und Embedding-Paaren, die mittels bestimmter Metriken verglichen werden können. Für gewöhnlich wird die Kosinus-Ähnlichkeit zwischen den Embeddings berechnet, womit man einen normierten Wert zwischen 0 und 1 enthält, der sozusagen die Güte einer Zutat als Ersatz einer anderen abbildet.  (Abb. 3)

Abb.3: Screenshot Web-App
Abb. 3: Screenshot aus der Web-App zur Recherche von Alternativzutaten

Für jede Zutat lassen sich Alternativen anzeigen. Beurteilen Sie die Vorschläge im Vergleich zu Ihren eigenen Ideen! Auch können Sie die Zutaten im Textfeld ändern/überschreiben, und sich Vorschläge für diese anzeigen lassen. Hier gehts zur Web-App.

Mit Generativen Modellen Weihnachtslieder generieren

Generative Modelle beweisen schon länger, zu welchen eindrucksvollen Resultaten Deep Learning abseits klassischer Machine Learning Anwendungen, wie Klassifikation und Regression, fähig sind. Anwendungsfälle wie das Generieren von fehlenden Datenpunkten oder das Ausfüllen von verdeckten Flächen in Bildern finden in der Geschäftswelt Anwendung. Künstler*innen und Enthusiasten erstellen dagegen Kunstwerke, Gedichte oder Fotos von nicht-existierenden Gesichtern. Vor 2 Jahren erzielte sogar das erste KI-generierte Porträtgemälde über $400.000 bei einer Auktion.

Neben der bildenden Kunst haben generative Modelle auch in der Musikszene ersten Anklang gefunden. Im folgenden Abschnitt betrachten wir die Generierung von Weihnachtsliedern am Beispiel einfacher Jingles und Ausschnitte wie „Oh Tannenbaum oder „Alle Jahre wieder. Damit schaffen wir zum Wohle der Lesenden und Hörenden einen Mariah Carey- und Michael Bublé-freien Safe Space, dem aber leider auch die George Michaels, Crosbys und Sinatras zum Opfer fallen.

Tensorflow Magenta

Das Magenta Projekt möchte „die Rolle von Machine Learning in kreativen Prozessen“ erforschen und bietet dabei eine Vielzahl an Veröffentlichungen, Programmier-Bibliotheken und Tools zur Generierung von Musik. Die Dance-Punk Band YACHT arbeitete daraufhin mit Google zusammen und erstellte einen Katalog aus den MIDI Tonspuren ihrer bisherigen Lieder, die dann einzeln oder gepaart (z.B. Gitarren- und Bass-Riff zusammen) verwendet wurden, um neue Musik im Stil des bisherigen Songs der Band zu generieren. Ähnlich wurde auch mit den Liedtexten verfahren. Selbst das Album Cover und die Videos im Hintergrund der Konzerte wurden mit Deep Learning Modellen generiert und verfeinert.

Die im nächsten Abschnitt beschriebenen Rekurrenten Neuronale Netze bieten eine etablierte Methode im Umgang mit einspurigen Riffs oder Jingles. Verschiedene Ausführungen und Varianten davon sind im „Magenta-Werkzeugkasten“ als MelodyRNN enthalten.

Rekurrente Modelle

Vor der Einführung von Transformer-Modellen wurden im Bereich NLP größtenteils Rekurrente Neuronale Netze (RNNs) verwendet, die von Natur aus besonders geeignet sind, sequenziellen Daten zu verarbeiten. Dies bedeutet, dass Rekurrente Netze es ermöglichen, Entscheidungen oder Vorhersagen bezüglich aufeinander folgender, abhängiger Datenpunkte zu treffen. Hierzu zählen bspw. aufeinanderfolgende Worte in einem Satz, Werte aus Sensoren im Zeitverlauf, oder eben Noten einer Partitur, die im Zeitverlauf betrachtet eine Melodie ergeben. Am Beispiel einer Wortsequenz ist es also wichtig, dass ein Machine Learning Modell einordnen kann, welche Worte in welcher Abfolge im Text erscheinen.

Um diese Informationen aus den Daten ableiten zu können, pflegen RNNs einen internen Zustand, der zusätzlich zur oben beschriebenen Repräsentation nicht nur vom aktuell betrachteten Wort, sondern auch vom internen Zustand des RNNs bei vorherigen Worten abhängt. (Abb. 4)

Abb. 4: RNN
Abb. 4: RNN Beispiel

Das RNN pflegt einen internen Zustand vorangegangener Inputs. Der neue Zustand ergibt sich aus einer Gewichtung des alten Zustands und des aktuellen Inputs.

Als Output wird in diesem Fall versucht, das folgende Wort vorherzusagen. Das RNN sollte erkennen, dass im Kontext des Wortes Weihnachten eher das Wort „backen“ vorhergesagt werden muss, und nicht etwa „kaufen“.

Um ein generatives Modell zu entwickeln, trainiert man das RNN darauf, für eine gegebene Sequenz an Worten stets das nächste, passende Wort vorherzusagen. Wendet man das Modell anschließend an, präsentiert man eben eine solche Sequenz an Worten als vorgegebenen Input, nimmt den vorhergesagten Output des Modells hinzu, füttert diesen als folgenden Input wieder in das Modell und wiederholt diesen Vorgang beliebig oft. So macht das Modell Vorhersagen auf dessen eigene Vorhersagen und generiert somit einen Text.

Musik generieren

Da es sich bei Noten von Volks- und Weihnachtsliedern auch um eine sequenzielle Abfolge von Daten handelt, lässt sich die zuvor beschriebene Methodik anschaulich auf musikalische Daten übertragen.

Möchte man ein Lied in einem bestimmten Stil oder Genre eines anderen Liedes weiterführen oder generieren, kann man im einfachsten Falle ein von Magenta publiziertes (und vortrainiertes) MelodyRNN verwenden. Dort gibt man die gewünschte Anfangsmelodie als MIDI Datei vor und definiert ggf. noch weitere Parameter wie Länge oder Freiheitsgrade in der Generierung. Anschließend wird das Lied, analog zum Text-Beispiel, Ton für Ton synthetisiert.

Abb. 5: Generierte Musik "oh Tannenbaum"
Abb.5: Kein Vivaldi, dafür aber eine Flasche Primitivo; der musikalisch gänzlich untalentierte Autor schafft es eines Nachts, Noten in einspurige MIDI Dateien ohne Taktwechsel zu exportieren, um sie mit Magenta verarbeiten zu können.

Für den interessierten Lesenden gibt es an dieser Stelle noch einiges zu entdecken! Um den Bogen zum Thema Representation Learning zu schlagen, empfehlen wir einen Blick auf MusicVAE [https://magenta.tensorflow.org/music-vae]. Mit einem Variational Autoencoder lassen sich Embeddings (merke: nicht nur auf Worte beschränkt, sondern auch ganze Texte, Bilder, Lieder,…) erlernen, welche einfach und strukturiert manipulierbar sind. Somit lässt sich beispielsweise eine Komponente eines Embeddings ändern, die das Musikgenre darstellt, aber nicht die Melodie. (Re)konstruiert man anschließend das Embedding, erhält man ein Lied mit der gleichen Melodie, jedoch im Stil einer anderen Musikrichtung.

Beispiele für State-of-the-Art Musikgenerierung finden sich auch in der OpenAI Jukebox, welche sich auch eines VAE-Modells bedient.

Fazit

Bei den in diesem Artikel beschriebenen Methoden muss natürlich meist etwas Auslese oder Feinabstimmung betrieben werden, um die gewünschten Ergebnissen zu erzielen. Im Falle der kreativen Anwendung, wie bei der Band YACHT, wurden tausende, wenn nicht zehntausend Melodien generiert und durchsucht, um zufriedenstellende Resultate zu erhalten. Bei den Plätzchenzutaten hingegen ging es eher um die Exploration von Modell-Varianten und -Parametern, welche dann zu beständig guten Ergebnissen führen.

Der Autor hofft, dass Ihnen der kleine Einblick in Methoden des Natural Language Processing gefallen hat und möchte Sie animieren, die Plätzchen Web-App auszuprobieren, oder diese zu missbrauchen, um sich Alternativen zu deftigen Zutaten oder Gemüse auszugeben.

Bleiben Sie so artig, wie nötig! Frohe Weihnachten! J.

Anmerkungen & Quellen

A) Hallo und danke Mama!

Abb. 6: Plaetzchen
Abb. 6: Eine unvollständige Auswahl der Plätzchen der Familie des Autors.

Während mütterlicherseits jährlich über 20 Sorten gebacken werden, schafft es die Tante nur auf mickrige acht. Die Begeisterung und das Interesse am Kochen und Backen ist im Kindesalter bereits auf den Autor übergesprungen. Im Gegenzug jedoch wundert sich dessen Familie des Öfteren, „was dieses Deep Learning denn genau ist“ und was der Junge auf der Arbeit eigentlich macht. Anwendungsbeispiele wie diese Web-App sind dabei wunderbare Gelegenheiten, Methoden des Deep Learning anschaulich zu erklären, Alltagsbezug zu schaffen und sich für die vielen kommenden fachlichen Herausforderungen zu motivieren!

B) Die Rezepte dieser kleinen Exkursion wurden Chefkoch.de entnommen, zu den Originalen gelangen Sie über die folgenden Links:

Über den Autor
Jonas Braun

Jonas Braun

Besides being a data scientist interested especially in deep learning, I enjoy the outdoors, anything culinary and also the arts. Bridging deeply rooted 'real world' elements with tech is what drives me.

ABOUT US


STATWORX
is a consulting company for data science, statistics, machine learning and artificial intelligence located in Frankfurt, Zurich and Vienna. Sign up for our NEWSLETTER and receive reads and treats from the world of data science and AI. If you have questions or suggestions, please write us an e-mail addressed to blog(at)statworx.com.