Die Bedeutung von Worten durch Vektoren erfassen

00 Blog Paass - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© Jesse Vig

Die Bedeutung eines Wortes kann man meist nicht allein aus seiner Schreibweise erschließen. Beispielsweise sind Sofa und Couch beides gepolsterte Sitzmöbel für mehrere Personen, sie unterscheiden sich aber stark in ihrer Schreibweise. Damit der Computer die Bedeutung von Worten erfassen kann, wird daher eine andere Darstellung als durch Buchstaben benötigt. Diese Bedeutungsdarstellung kann durch Einbettungsvektoren erfolgen. Einbettungsvektoren haben eine vorgegebene Länge und enthalten zum Beispiel 100 reelle Zahlen. Die Idee ist nun, für jedes Wort der Sprache einen eigenen Einbettungsvektor zu konstruieren. Dabei sollen sich die Einbettungsvektoren von Worten mit ähnlicher Bedeutung – zum Beispiel Sofa und Couch – nur wenig unterscheiden. Dieser Bedeutungsunterschied zwischen zwei Worten kann zum Beispiel durch die Euklidische Distanz, ein geometrisches Abstandsmaß, der zugehörigen Einbettungsvektoren bewertet werden. Ist die Bedeutung jedes Wortes durch Einbettungsvektoren dargestellt, so kann der Computer hieraus auf die Bedeutung des ganzen Textes schließen.

Es wurden sehr leistungsfähige Verfahren zur Bestimmung dieser Einbettungsvektoren entwickelt, zum Beispiel Word2Vec (siehe auch den Beitrag Automatisierte Stichwortvergabe für kurze Texte). Allerdings gibt es viele Wörter mit mehreren Bedeutungen, wie etwa die Maus, welche ein Computerzeigegerät oder aber auch ein Nagetier sein kann. Einfache Wortvektoren offenbaren hier die Einschränkung, dass bei derartigen Worten nur ein einziger Einbettungsvektor berechnet wird, in dem sich die Bedeutungen überlagern.

Berücksichtigung der Nachbarworte bei der Berechnung kontextabhängiger Einbettungsvektoren

Offenkundig bestimmen die Nachbarworte von Maus, ob es sich um eine Nagetiermaus (Die Maus frisst Käse.) oder die Computermaus (Klicke die Taste der Maus.) handelt. Als Alternative kann man daher Einbettungsvektoren konstruieren, die nicht nur von dem Wort selbst, sondern von den Nachbarworten abhängen. Der relative Einfluss der Nachbarworte und des Wortes selbst kann über Assoziationsmodule berücksichtigt werden. Die folgende Grafik zeigt ein solches Assoziationsmodul, welches ein spezielles Neuronales Netz ist.

assoziationsmodul - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© ML2R
Bestimmung einer kontextabhängigen Einbettung für ein Wort durch ein Assoziationsmodul. Es wird die Assoziation des Query-Aspekts des Zielwortes „frisst“ mit den Key-Aspekten aller Wörter berechnet. Die neue Einbettung wird aus der mit den Assoziationen gewichteten Summe der Value-Aspekte aller Worte gebildet.

Ausgehend von dem Satz „Die Maus frisst Käse“ soll eine neue Einbettung für das Wort „frisst“ berechnet werden. Für jedes Wort der Eingabe wird nun ein gegebener Einbettungsvektor verwendet, der zu Beginn mit Zufallszahlen gefüllt wird. Um die Wortreihenfolge zu repräsentieren, muss auch noch eine Markierung der Wortposition hinzugefügt werden. Anschließend werden die Eingabevektoren mit den Matrizen  multipliziert, deren Werte am Anfang ebenfalls als Zufallszahlen gewählt werden.

Dies erzeugt neue Vektoren (Aspekte), die Query, Key und Value genannt werden. Diese Aspekte des Einbettungsvektors konzentrieren sich daher auf unterschiedliche Eigenschaften des Einbettungsvektors und unterscheiden sich für die verschiedenen Assoziationsmodule. Die Assoziation des Query-Vektors von „frisst“ und der Key-Vektoren aller Worte werden nun durch ein Skalarprodukt berechnet. Die sich ergebenden Werte werden auf Anteile normiert, welche sich zu 1.0 aufaddieren. Im Beispiel haben „frisst“ und „Maus“ die stärkste Assoziation mit „frisst“ bezüglich des aktuellen Assoziationsmoduls. Schließlich werden die Value-Vektoren aller Worte mit diesen Gewichten aufaddiert und es ergibt sich ein neuer Einbettungsvektor für das Wort „frisst“. Dieser Einbettungsvektor ist kontextabhängig, weil er die Kontextworte, zum Beispiel „Maus“ und „Käse“, und deren Einbettungen mit der ursprünglichen Einbettung „verschmolzen“ hat.

Die nachfolgende Grafik zeigt die Berechnung der Assoziationen zwischen dem Wort „the“ und den Wörtern des Satzes „the cat sat on the mat“. Hierbei werden der  Query und die jeweiligen Key-Vektoren elementweise miteinander multipliziert und das elementweise Produkt aufsummiert. Die starken Assoziationen sind durch eine intensivere Blaufärbung gekennzeichnet. Wie in der Grafik erkennbar, weist das Wort „on“ die stärkste Assoziation mit dem Wort „the“ in diesem Satz auf.

Assoziation1 1 1 - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© Jesse Vig
Berechnung der Assoziation zwischen dem Query-Vektor von “the” und den Key-Vektoren des Satzes. Die Größe der Werte in den Vektoren werden durch die Farben blau (negativ) bis orange (positiv) dargestellt.

Aussagekräftige Einbettungsvektoren benötigen viele komplementäre Assoziationsmodule

Allerdings hat sich gezeigt, dass ein einziges Assoziationsmodul nicht ausreicht, um qualitativ hochwertige Einbettungsvektoren zu bestimmen. Daher konstruiert man ein umfassendes Modell, welches in einer Ebene mehrere Assoziationsmodule parallel verwendet. Hierbei hat jedes Assoziationsmodul unterschiedliche Matrizen Q,K,V und kann sich dadurch auf unterschiedliche Aspekte der Einbettungsvektoren konzentrieren. Durch die Verkettung der Einbettungsvektoren der Ebene und eine nachfolgende Transformation ergeben sich dann neue Einbettungsvektoren für jedes Wort des Eingabetextes. Es werden mehrere dieser Ebenen übereinandergestapelt und produzieren schließlich die Einbettungsvektoren der letzten Schicht.

Es wird hierfür jedoch noch eine Prognoseaufgabe benötigt, welche das Training der unbekannten Parameter des Modells ermöglicht. Wie genau die Wahrscheinlichkeit des ersetzen Wortes prognostiziert wird, erfahrt Ihr in unserem Blog-Beitrag: „BERT: Wie beschreiben Vektoren treffend den Sinngehalt von Wörtern?“.

Gerhard Paaß,

10. März 2021

Themen

Dr. Gerhard Paaß

Dr. Gerhard Paaß ist Senior Data Scientist am Fraunhofer Institut IAIS in Sankt Augustin im Team Natural Language Unterstanding. Er vermittelt in unterschiedlichen Kursen und Vorlesungen Kenntnisse über Maschinelles Lernen und Deep Learning und hat eine Monographie über „Künstliche Intelligenz“ verfasst. Sein Forschungsfeld ist die kontrollierte Erzeugung von Texten unter Verwendung von Zusatzwissen.

Weitere Blogartikel