# Worteinbettung

Bei einer Worteinbettung (englisch word embedding) handelt es sich um eine Einbettung, bei der Wörter oder andere Symbole jeweils einem Vektor v mit $v\in \mathbb {R} ^{n}$ zugeordnet werden. Dies kommt vor allem beim maschinellen Lernen zum Einsatz. Das Ziel ist hierbei, eine abstrakte (vergleichbarere) Darstellung der Bedeutung der Wörter bzw. Symbole bei gleichzeitiger Dimensionen-Reduzierung zu erhalten.

## Bag-of-Words

Bag-of-Words ist die einfachste Form der Worteinbettung. Hierbei wird jedem Symbol s ein zufälliger diskreter Wert v mit $v\in \mathbb {N} ^{1}$ zugeordnet. Beispielsweise kann eine Aussage wie
    „Der grüne Frosch springt in den See.“
in eine Folge von Zahlen übersetzt werden
    $\langle 4876,454876,48795,46782,28441,247,5475\rangle$
Hiermit kann z. B. ein Textkorpus nach Stichwörtern durchsucht werden, indem eine Suchabfrage mit einem Index der enthaltenen Wörter verglichen wird.
Hierbei gilt es zu beachten, dass Synonyme auch denselben Wert erhalten müssen. Beispielsweise „Geldautomat“ und „Bankomat“ oder „Auto“ und „PKW“, sowie von einem Wortstamm abgeleitete oder modifizierte Wörter wie „Grün“, „grüner“, „Gruen“ etc. Ein solches Mapping kann über Wörterbücher erfolgen, was jedoch einen erheblichen manuellen Aufwand bedeutet. Zudem gibt es keine Unterscheidungsmöglichkeit bei Homonymen. Der Begriff „Bank“ im Sinne eines Geldinstituts erhält denselben Wert wie der Begriff „Bank“ im Sinne einer Parkbank.

## Word2Vec

Word2Vec, auch als Continuous Bag-of-Words (CBOW) oder Skip-Gram bezeichnet, erweitert das Prinzip von Bag-of-Words, indem einem Symbol s ein mehrdimensionaler und kontinuierlicher Wert $v\in \mathbb {R} ^{n}$ zugeordnet wird. Dieser Wert wird derart festgelegt, dass die Wahrscheinlichkeit P des Wertes v an der Stelle t in Abhängigkeit von den n davorstehenden und n dahinterstehenden Wörtern maximiert wird.
Beispielsweise kann in dem Satz
    „Der grüne Frosch [???] in den See.“
das Wort „springt“ vorhergesagt werden, indem berechnet wird, wie hoch die Wahrscheinlichkeit ist, dass das Wort „springt“ vorkommt, während davor die Wörter „der“, „grüne“ und „Frosch“ und dahinter die Wörter „in“, „den“ und „See“ stehen.
Bei der Skip-Gram-Variante (englisch: skip-gram model) von Word2Vec maximiert man das Produkt (bzw. die Summe der Logarithmen) der Wahrscheinlichkeiten, dass die einzelnen Kontextwörter $w_{T}$ korrekt vorhergesagt werden, gegeben das Zielwort $w_{t}$:
    ${\text{Maximiere }}\prod _{T\in {\text{Kontextpositionen}}}P(w_{T}\mid w_{t})\quad {\text{oder äquivalent}}\quad \sum _{T}\log P(w_{T}\mid w_{t}).$
Eine typische Form für $P(w_{T}\mid w_{t})$ lautet:
    $P(w_{T}\mid w_{t})={\frac {\exp {\biglv'_{w_{T}}\cdot v_{w_{t}}{\bigr )}}{\sum _{w\in S}\exp {\biglv'_{w}\cdot v_{w_{t}}{\bigr )}}},$
wobei man oft zwischen Eingabe-Embeddings $v_{w}$ und Ausgabe-Embeddings $v'_{w}$ unterscheidet. Bei der CBOW-Variante (englisch: continuous bag-of-words) werden zuerst die Vektoren der (mehreren) Kontextwörter zu einem einzelnen Vektor $h$ aggregiert; aus diesem wird anschließend das Zielwort $w_{t}$ vorhergesagt:
    $P(w_{t}\mid {\text{Kontext}})={\frac {\exp {\biglv'_{w_{t}}\cdot h{\bigr )}}{\sum _{w\in S}\exp {\biglv'_{w}\cdot h{\bigr )}}},$
wobei $h$ beispielsweise das arithmetische Mittel der Embeddings der Kontextwörter sein kann. In beiden Varianten sorgt die Softmax-Funktion dafür, dass die Summe aller Wahrscheinlichkeiten über alle möglichen Wörter $w\in S$ (also über das Gesamtvokabular) gleich 1 ist.
Die Vektoren v, welche die Symbole oder Wörter abbilden, werden mittels des Gradientenverfahrens berechnet, sodass die Wahrscheinlichkeit, ein falsches Wort vorherzusagen, minimiert wird. Um die Wahrscheinlichkeit zu berechnen, werden große Textsammlungen als Trainingsdaten benötigt.
Der Vorteil dieses Verfahrens besteht darin, dass die resultierenden Vektoren die Wortbedeutung repräsentieren und auf dieser Wortbedeutung logische Aussagen und Ähnlichkeitsaussagen getroffen werden können. Beispielsweise ergibt die Berechnung der Vektorkomposition v(„König“) − v(„Mann“) + v(„Frau“) = v(„Königin“). Zudem werden Synonyme korrekt abgebildet, etwa v(„Geldautomat“) = v(„Bankomat“).
Problematisch an diesem Verfahren ist, dass Homonyme nicht korrekt bestimmt werden können. v(„Bank“) ergibt daher einen Vektor, welcher zwischen den Vektoren v(„Geldinstitut“) und v(„Parkbank“) liegt, jedoch keine dieser Bedeutungen aus den Kontext einer Aussage klar abbildet. Weitere Probleme können sich aus Trainingsdaten mit einem Bias ergeben, welche zu Verzerrungen des Vektorraums führen und z. B. eine Vektorkomposition wie v(„Arzt“) − v(„Mann“) + v(„Frau“) = v(„Krankenschwester“) anstatt von v(„Ärztin“) ergibt. Ein weiterer Nachteil ist, dass dieses Verfahren nicht geeignet ist, um den Inhalt längerer Aussagen korrekt abbilden zu können, da nur die einem Symbol nahestehenden Symbole als Kontext berücksichtigt werden.

## Kontextabhängige Worteinbettung

Das Ziel der kontextabhängigen Worteinbettung (engl. Contextual Word Embedding) ist es, dass homonyme Bedeutungen korrekt dargestellt werden können. Hierbei wird ein rekurrentes neuronales Netz (RNN) oder Convolutional Neural Network (CNN) mittels unüberwachtem Lernen trainiert, anhand einer gegebenen Menge an Symbolen das nächste Symbol in einer Sequenz vorherzusagen. Das RNN kann diese Vorhersage auch bei langen Symbolfolgen anhand eines internen Zustands (hidden state) durchführen. Der interne Zustand bildet konzeptionell den Kontext des Symbols ab und ist nicht auf den aktuell berücksichtigten Ausschnitt der Symbolfolge begrenzt.
Die erste Version dieses Verfahrens stellt TagLM dar. Dieses nutzt zwei Long-short-term-memory-Netzwerke (LSTM), wobei eine LSTM die Symbolfolge in einen internen Zustand codiert und das zweite LSTM den internen Zustand in eine Symbolfolge dekodiert. Der interne Zustand ergibt sich hierbei aus einer Verknüpfung des Word2Vec-Vektors eines Symbols mit einem Token, welches die Position des Symbols repräsentiert, und die Konvolution der entsprechenden Werte.
Eine Weiterentwicklung von TagLM ist Embeddings from Language Models (ELMo). Anstatt Wörter als Vektoren zu verarbeiten, werden hierbei einzelne Zeichen (z. B. Buchstaben) verarbeitet. Hierdurch entfallen Word2Vec-basierte Verfahren.

## Transformer

Transformer lösen die Problematik, dass LSTMs auf Basis von rekurrenten Netzen nur sehr langsam trainiert werden können und das Training nur schwer parallelisiert werden kann. Die Konvolution wird hierbei von einem Aufmerksamkeits-Mechanismus abgelöst. Die Aufmerksamkeit bestimmt hierbei, welche Symbole einer Folge als Kontext berücksichtigt werden sollen. Transformer verwenden mehrere Aufmerksamkeits-Mechanismen parallel (Multi-Head-Attention), um eine Menge aus mehreren Symbolen als Kontext berücksichtigen zu können. Um Abhängigkeiten eines Symbols von entfernten Symbolen berücksichtigen zu können, können mehrere Transformer-Blöcke in Serie geschaltet werden. Beispielsweise lassen sich so in der Aussage
    „Der grüne [???] springt in den [???].“
sowohl die Begriffe „Frosch“ als auch „See“ ermitteln, da der Gesamt-Kontext zur Berechnung der Symbolwahrscheinlichkeiten berücksichtigt wird.