Loading AI tools
Methode in der NLP um Wörter einem Vektor zuzuordnen Aus Wikipedia, der freien Enzyklopädie
Bei einer Worteinbettung (englisch word embedding) handelt es sich um eine Einbettung, bei der Worte oder andere Symbole jeweils einem Vektor v mit zugeordnet werden. Dies kommt vor allem beim maschinellen Lernen zum Einsatz. Das Ziel hierbei ist eine abstrakte Darstellung der Bedeutung der Worte bzw. Symbole bei gleichzeitiger Dimensionsreduktion zu erhalten.[1]
Bag-of-Words[2] ist die einfachste Form der Worteinbettung. Hierbei wird jedem Symbol s ein zufälliger diskreter Wert v mit zugeordnet. Beispielsweise kann eine Aussage wie
in eine Folge von Zahlen übersetzt werden
Hiermit kann z. B. ein Textkorpus nach Stichworten 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 Worte 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[3], 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 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 Worten maximiert wird.
Beispielsweise kann in dem Satz
das Wort „springt“ vorhergesagt werden, indem berechnet wird, wie hoch die Wahrscheinlichkeit ist, dass das Wort „springt“ vorkommt, während davor die Worte „der“, „grüne“ und „Frosch“ und dahinter die Worte „in“, „den“ und „See“ stehen.
Die Wahrscheinlichkeit P, dass das Symbol s mit an der Stelle t steht, ergibt sich aus
Hierbei ist T die Position der Worte im Satz, ist die Softmax-Funktion über alle Worte (S wird auch als „Vokabular“ bezeichnet und umfasst alle möglichen Worte) und ist der Vektor des Wortes w an der Stelle T. Die Softmax-Funktion σ normiert hierbei die Wahrscheinlichkeit derart, dass die Summe aller Wahrscheinlichkeiten gleich 1 ist.
Die Vektoren v, welche die Symbole abbilden, werden mittels des Gradientenverfahrens berechnet, sodass die Wahrscheinlichkeit das falsche 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 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 keinen 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.[4] 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.
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[5]. 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).[6] Anstatt Worte als Vektoren zu verarbeiten, werden hierbei einzelne Zeichen (z. B. Buchstaben) verarbeitet. Hierdurch entfallen Word2Vec-basierte Verfahren.
Transformer[7] 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.[1] 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
sowohl die Begriffe „Frosch“ als auch „See“ ermitteln, da der Gesamt-Kontext zur Berechnung der Symbolwahrscheinlichkeiten berücksichtigt wird.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.