Was ist Worteinbettung?

Die Worteinbettung stellt einen Zusammenhang her, zwischen einem oder mehreren eingegebenen Wörtern und dem Wörterbuch eines neuronalen Netzwerks. Der Begriff Worteinbettung enthält das Wort Einbettung, das seinen Ursprung in der Mathematik hat. – Vereinfacht formuliert, geht es dabei um eine Teilmenge einer größeren Menge. Als Teilbereich des Natural Language Processing (NLP) und des maschinellen Lernens wird diese Form der Abbildung für die Verarbeitung natürlicher Sprache verwendet.

Typische Anwendungsfälle für NLP, und damit auch die Worteinbettung, ist die maschinelle Übersetzung. – Das heißt, es geht um Übersetzer wie Google Translate oder DeepL Translate. Inwiefern Algorithmen Einfluss auf die Qualität des Outputs oder des übersetzten Textes haben, entscheiden die Verfahren, die im Algorithmus verwendet werden.

Welche Formen der Worteinbettung gibts es?

Das einfachste Prinzip des word embeddings ist der Bag-of-Words-Ansatz. In diesem Verfahren wird eine Menge von Wörtern festgelegt, wobei jedes Wort als eine natürliche Zahl dargestellt wird und die Reihenfolge keine Rolle spielt. Wörter können sich wiederholen; Wiederholungen werden gezählt. Ergänzt durch ein statistisches Klassifikationsverfahren kann damit bspw. bestimmt werden, ob eine E-Mail Spam ist oder nicht, indem die Häufigkeit expliziter Wörter analysiert wird.

Die Erweiterung des Bag-of-Words-Ansatzes, Word2Vec genannt, stellt jedes Wort als mehrdimensionalen Wert dar. Diese Darstellung lässt es zu, eine Nähe zu anderen Wörtern in einem dreidimensionalen Raum zu visualisieren. Somit können Zusammenhänge zwischen Wörtern erkannt und der künstlichen Intelligenz beigebracht werden. Das heißt, mithilfe von Word2Vec wird bspw. das am besten passende Wort (mit der höchsten Wahrscheinlichkeit das fehlende Wort zu sein) ermittelt und damit eine Lücke in einem Satz gefüllt. Durch die mehrdimensionale Vektordarstellung können dem neuronalen Netzwerk außerdem neue Wörter beigebracht werden. Dazu wird das fehlende Wort in einem Satz nicht gesucht; stattdessen werden zwei Alternativen angeboten, um die Lücke zu füllen. Das neuronale Netzwerk lernt die neuen Wörter dann anhand sogenannter Features kennen, was sich in der Einbettung im dreidimensionalen Raum bemerkbar macht.

Des Weiteren ist die kontextabhängige Worteinbettung ein wesentlicher Bestandteil des word embeddings. Dabei sollen die unterschiedlichen Bedeutungen von Homonymen erkannt und korrekt dargestellt werden. In der Praxis wird dieses Ziel durch den Long short-term memory (LSTM) realisiert. Dabei handelt es sich um ein Modul, welches ursprünglich die Entwicklung künstlicher Intelligenz verbessern sollte und auch tat. Doch auch der Long short-term memory (LSTM) stieß schnell an neue Grenzen. Neuronale Netze mit ähnlichen sprachliche Formen erfordern sogenannte Aufmerksamkeits-Mechanismen. Um diese parallel und infolgedessen schnell genug betreiben zu können, wurde 2018 Technik BERT veröffentlicht, die auf Transformer basierte. BERT wurde mithilfe der Next Sentence Prediction (NSP) trainiert und kann dank dieses Trainings nun in der Konsequenz auch kontextuelle Einbettungen erlernen.

Mit welchen Technologien wird word embedding umgesetzt?

Für das viel diskutierte Thema maschinelle Übersetzung und machine learning im Allgemeinen gibt es zahlreiche Libraries; dabei basieren die meisten davon auf Python, der bevorzugten Programmiersprache, wenn es um künstliche Intelligenz geht. Dafür gibt es verschiedene Gründe: Erstens ist Python als Hochsprache relativ einfach nachzuvollziehen und niedrigschwellig angelegt, zweitens gibt es neben den Libraries für maschinelles Lernen weitere nützliche Libraries und drittens ist Python sehr flexibel, was sich bspw. darin zeigt, dass der Code auf jeder Plattform ausführbar ist. Geht es um die konkrete Umsetzung, dann sollten zwei Libraries besonders in den Vordergrund gestellt werden: Keras dient als niedrigschwellige API, dank der Anwendungen unkompliziert bereitgestellt werden; als dahinter stehendes Backend bietet sich TensorFlow an, eine Library mit komplexer Architektur. Keras ist demnach lediglich eine Wrapper-Klasse für Backend-Libraries wie Theano, PlaidML oder MXNet.