Communications Mining
Neuestes
False
Bannerhintergrundbild
Communications Mining-Entwicklerhandbuch
Letzte Aktualisierung 17. Mai 2024

Wie Maschinen lernen, Wörter zu verstehen: Eine Anleitung zur Einbettung in NLP

Die Machine-Learning-Algorithmen von Communications Mining basieren auf vortrainierten Transformer -Modellen, die semantisch informative Darstellungen von Text-Sequences lernen, die als Einbettungen bezeichnet werden. In den letzten Jahren haben Transformer-Modelle bei den meisten gängigen NLP-Aufgaben (Natural Language Processing) moderne Ergebnisse erzielt.

Aber wie sind wir hierher gekommen? Was hat dazu geführt, dass der Transformer das Modell der Wahl für Trainingseinbettungen ist? In den letzten zehn Jahren waren die größten Verbesserungen bei NLP auf Fortschritte beim Lernen von unüberwachten vortrainierten Texteinbettungen zurückzuführen. In diesem Beitrag sehen wir uns die Entwicklung der Einbettungsmethoden an und wie sie im Laufe der Zeit verbessert wurden.

Dieser Beitrag wird

  • Erklären Sie, was Einbettungen sind und wie sie in gängigen NLP-Anwendungen verwendet werden.
  • Präsentieren Sie eine Entwicklung der gängigen Methoden für Trainingseinbettungen, einschließlich traditioneller Methoden wie Word2VEC und moderner Transformer-basierter Methoden wie BERT.
  • Diskutieren Sie die Schwachstellen von Einbettungsmethoden und wie sie behoben werden können.

Hintergrund

Was ist eine Einbettung?​​

Stellen Sie sich vor, wir haben einen großen Korpus von Dokumenten, für die wir eine Aufgabe ausführen möchten, z. B. die Absicht des Sprechers erkennen. Die meisten modernen NLP-Methoden auf dem neuesten Stand der Technik sind Ansätze, die auf neuronalen Netzwerken basieren. Diese codieren zuerst jedes Wort als Zahlenvektor, was als Einbettung bezeichnet wird. Das neuronale Netzwerk kann diese Einbettungen dann als Eingabe verwenden, um die jeweilige Aufgabe auszuführen.

Angenommen, der Korpus enthält 10.000 eindeutige Wörter. Wir könnten jedes Wort mit einer „One-Hot“-Einbettung codieren (d. h. einen spärlichen 10.000-dimensionalen Vektor mit überall 0s, außer an der einzelnen Position, die dem Wort entspricht, wo der Wert 1 ist), z. B

'a' = [1, 0, 0, ..., 0, 0]
...
'my' = [0, ..., 0, 1, 0, ..., 0]
...
'you' = [0, 0, ..., 0, 0, 1]'a' = [1, 0, 0, ..., 0, 0]
...
'my' = [0, ..., 0, 1, 0, ..., 0]
...
'you' = [0, 0, ..., 0, 0, 1]

Dieser Ansatz hat jedoch einige Probleme:

  • Semantisch nicht aussagekräftige Einbettungen
    • Beim One-Hot-Codierungsansatz sind alle Einbettungen initialisiert die linke Seite. Idealerweise möchten wir, dass Wörter, die semantisch miteinander verwandt sind, „ähnliche“ Einbettungen haben, aber One-Hot-Einbettungen codieren Ähnlichkeitsinformationen nicht direkt.
  • Hohe Dimensionalität
    • Ein 10.000-dimensionaler Vektor für jedes Wort bedeutet, dass wir bei einem auf neuronalen Netzwerken basierenden Ansatz schnell keinen Speicher mehr haben können. In vielen Domänen gilt 10.000 als kleine Wortliste – Wortrufe sind oft 5–10-mal so groß.

Infolgedessen sind dichte Einbettungen mit niedrigeren Dimensionen beliebter. Sie lösen nicht nur die Speicherprobleme von One-Hot-Einbettungen, sondern können auch die Idee codieren, dass zwei Wörter semantisch ähnlich sind. Angenommen, es liegt vierdimensionale dichte Einbettung vor. Möglicherweise möchten wir, dass die Einbettungen für „Apple“ und „Banana“ ähnlich sind, z. B

apple = [3.14, -0.03, -0.26, -2.27]
banana = [2.95, -0.18, -0.11, 0.09]apple = [3.14, -0.03, -0.26, -2.27]
banana = [2.95, -0.18, -0.11, 0.09]

Beide haben einen großen positiven Wert an der ersten Position. Möglicherweise möchten wir auch, dass die Einbettungen für „Apple“ und „Microsoft“ ähnlich sind, z. B

apple = [3.14, -0.03, -0.26, -2.27]
microsoft = [-0.12, 0.48, -0.05, -2.63]apple = [3.14, -0.03, -0.26, -2.27]
microsoft = [-0.12, 0.48, -0.05, -2.63]

Beide haben einen großen negativen Wert an der vierten Position.

Wie werden Einbettungen verwendet?​

Einbettungen, die semantische Informationen codieren, sind in allen NLP-Anwendungen von entscheidender Bedeutung. Ungeachtet dessen, wie gut das Modell konzipiert ist, das sie verbraucht, gilt: Wenn die Einbettungen nicht aussagekräftig sind, kann das Modell nicht die erforderlichen Signal für genaue Vorhersagen extrahieren.

Klassifizierung

Für Klassifizierungsaufgaben (z. B Stimmungsanalyse (Sentiment Analysis) verwenden, besteht der gängigste Ansatz darin, die Einbettungen für ein Dokument in einem einzigen Vektor zu aggregieren und diesen Dokumentvektor als Eingabe in ein Feedforward-Netzwerk zu übergeben, das für die Erstellung von Vorhersagen verantwortlich ist (siehe Abbildung 1 für eine Veranschaulichung).

Die aggregierte Einbettung kann mit einer einfachen Heuristik berechnet werden (z. B der Mittelwert der Einbettungen) oder es kann selbst die Ausgabe eines neuronalen Netzwerks sein (z. B. ein LSTM oder Transformer).

Durchführen einer Stimmungsanalyse durch Aggregieren der Einbettung für ein Dokument und Verwenden dieser aggregierten Einbettung für die Vorhersage

Semantische Suche

Neben Klassifizierungsaufgaben sind Einbettungen auch besonders nützlich für die semantische Suche. Dabei werden Ergebnisse nicht nur basierend auf Schlüsselwörtern, sondern auch basierend auf der semantischen Bedeutung der Suchanfrage abgerufen.

Bei der semantischen Suche wird zunächst eine aggregierte Einbettung für jedes Dokument in einem Korpus berechnet (auch hier kann die Aggregationsfunktion heuristisch oder gelernt sein). Dann wird die angegebene Suchabfrage auch eingebettet, und die Dokumente mit den nächsten Einbettungen zur Einbettung der Suchanfrage werden zurückgegeben (eine Veranschaulichung finden Sie in Abbildung 2). Die Nähe wird normalerweise anhand einer Metrik gemessen, die den Abstand zwischen zwei Einbettungen vergleicht, z. B. Cosinus-Ähnlichkeit.

Durchführen einer semantischen Suche durch Vergleichen der Einbettung der Suchanfrage mit jedem Dokument und Suchen der höchsten Übereinstimmung.

Ein Überblick über die Einbettungsmethoden​

Die meisten Methoden zur Worteinbettung werden trainiert, indem ein großer Textkorpus entnommen wird und betrachtet wird, welche Wörter in den Sätzen des Korpus häufig nebeneinander vorkommen. Beispielsweise kommt das Wort „Computer“ häufig neben Wörtern wie „Tastatur“, „Software“ und „Internet“ vor; Diese gemeinsamen benachbarten Wörter geben Aufschluss über die Informationen, die durch die Einbettung von „computer“ codiert werden sollen.

Dieser Abschnitt behandelt vier gängige Techniken zum Lernen von Einbettungen, von Word2vec bis zum Transformer Based BERT.

Word2VEC​

Word2vec, veröffentlicht im Jahr 2013, ist wahrscheinlich die erste Methode, die vortrainierte Worteinbettungen bekannt gemacht und in den Mainstream des modernen NLP gebracht hat. Word2vec umfasst zwei Ansätze zum Lernen von Einbettungen:

  • Kontinuierliche Tüte mit Wörtern (ein Beispiel finden Sie in Abbildung 3).
    • Sagen Sie ein bestimmtes Wort vorher, das von den k benachbarten Wörtern auf beiden Seiten abhängig ist.
      • Dies geschieht durch Projizieren (d. h Matrix-Multiplikation) die One-Hot-Codierungen der benachbarten Wörter auf niedrigerdimensionale dichte Einbettungen herunter, wobei der Mittelwert entnommen und zur Vorhersage des fehlenden Worts verwendet wird.
  • Skipgram (ein Beispiel finden Sie in Abbildung 4).
    • Sagen Sie die k benachbarten Wörter auf beiden Seiten eines gegebenen Wortes vorher.
      • Dies geschieht durch Projizieren (d. h Matrix-Multiplikation) die One-Hot-Codierung des angegebenen Worts auf eine niedriger dimensionale dichte Einbettung herunter und nutzen diese, um die fehlenden Wörter vorherzusagen.
Die kontinuierliche Word2vec-Behälter mit Wörtern

Das Word2vec-Skipgram-Modell.

Die Autoren zeigen mehrere bemerkenswert intuitive lineare Analogien zwischen den Einbettungen. Gegeben sind zwei Wörter x und y mit einer bestimmten Beziehung und ein anderes Wort z in der gleichen „Kategorie“ wie y. Die Autoren finden das Wort w , dessen Einbettung am nächsten (mithilfe der Cosinus-Distanz) an Emb(x)– Emb(y)+ liegt Emb(z). Das resultierende Wort w hat oft die gleiche Beziehung zu z wie x zu y (einige Beispiele finden Sie in Tabelle 1).

Tabelle 1: Vom Word2vec-Modell gelernte Analogien.

Xyzw=nearest(emb(x)−emb(y)+emb(z))
am höchstengroßKleinam kleinsten
parisFrankreichItalienRom
cuverwendetzinkZn

Glion

Wie oben beschrieben, basiert Word2vec auf einem lokalen Schiebefenster. Das bedeutet, dass Word2vec die globalen Statistiken zum gleichzeitigen Vorkommen von Wörtern nicht direkt verwendet, außer durch die Anzahl der erstellten Trainingsbeispiele. Beispielsweise berücksichtigen die Einbettungen nicht direkt die Tatsache, dass das Wort „Bank“ im Kontext des Worts „Geld“ häufiger vorkommt als „Fluss“, außer dass „Bank“ und „Geld“ zusammen vorkommen in mehr Trainingsbeispielen als „Bank“ und „River“ vor.

Daher wurde ein Jahr nach Word2vec Globale Version ( GloVe) veröffentlicht, welche die Vorteile von lokalen Schiebefenster-basierten Ansätzen mit globalen (d. h Korpus-Ebene) Anzahl der gleichzeitigen Vorkommen von Wörtern. Dazu werden Einbettungen trainiert, sodass die globale Anzahl der gleichzeitigen Vorkommen zwischen zwei Wörtern bestimmt, wie ähnlich ihre Einbettungen sind.

Zunächst wird eine globale Matrix X für gleichzeitige Vorkommen erstellt, deren Einträge X,j ​ angeben, wie oft das Wort j im Kontext des Wortes i auftritt. Dann trainiert das Globale-Ziel die Worteinbettungen, um das folgende Ziel der Methode der kleinsten Quadrate zu minimieren:


wobei V das Wörterbuch, u die Wortvektoren, v die Kontextvektoren und b und c die Bias sind. f(Xi,j​) ist eine Gewichtungsfunktion, um zu verhindern, dass Co-Vorkommen sowohl mit sehr niedrigen als auch mit sehr hohen Werten zu viel Gewichtung gegeben wird. Nach dem Training ist die letzte Worteinbettung für das Wort i Wi,j​​=Ui​+Vi​.

GloVe-Einbettungen übertreffen Word2vec bei der Aufgabe der Wortanalogien (oben beschrieben) erheblich und sind etwas besser für die Erkennung benannter Entitäten. Infolgedessen waren Globalisierungs- und vortrainierte Worteinbettungen für einige Jahre die bevorzugten vortrainierten Worteinbettungen und sind bis heute beliebt.

Hinweis:

Ein Hauptfehler der bisher vorgestellten Methoden ist, dass sie statisch sind, d. h. die Einbettung für ein bestimmtes Wort ist immer gleich. Denken Sie zum Beispiel an das Wort „Bank“ – dies kann sich auf das Ende eines Flusses oder auf ein Finanzinstitut beziehen; die Einbettung müsste beide Bedeutungen codieren.

Um diese Schwachstelle zu beheben, wurden Methoden für die kontextbezogene Einbettung entwickelt. Diese haben je nach Sequence eine unterschiedliche Einbettung für jedes Wort (z. B Satz, Dokument), in dem er vorkommt. Diese Arbeit hat alles verändert; Es ist jetzt äußerst selten, moderne Methoden zu finden, die nicht auf kontextbezogenen Einbettungen angewiesen sind.

ELMo​

Mitte der 2010er waren rekursive neuronale Netzwerke (RNNs) die beliebtesten Architekturen für die meisten NLP-Aufgaben. RNNs führen Berechnungen über Textsequenzen Schritt für Schritt durch, wobei jedes Wort einzeln gelesen und verarbeitet wird. Sie aktualisieren einen „ausgeblendeten Status“, der die gesamte Sequence bisher nachverfolgt.

Eine der ersten Pop-up-Techniken zur kontextbezogenen Einbettung war 2018 veröffentlichte ALMo-Methode . ElMo lernt Einbettungen durch Vortraining eines bidirektionalen RNN-Modells auf einem großen Korpus in natürlicher Sprache mithilfe eines Vorhersageziels für das nächste Wort vor dem Training. Insbesondere trainiert ElMo sowohl ein vorwärts- als auch rückwärts gestapeltes LSTM, indem bei jedem Schritt entweder das nächste bzw. das vorherige Wort vorhergesagt wird, wie in Abbildung 5 gezeigt.

Nach dem Training werden die Gewichtungen der Vorwärts- und Rückwärts-LSTMs eingefroren und die Ausgaben werden bei jedem Schritt jeder Ebene verkettet. Die Autoren finden, dass die verschiedenen Ebenen unterschiedliche Aspekte der Sprache lernen – die ersten Ebenen modellieren Aspekte der Syntax, während die späteren Ebenen kontextabhängige Aspekte der Wortbedeutung erfassen. Daher wird ein aufgabenspezifischer gewichteter Durchschnitt über die Ebenen als Einbettung für jedes Wort entnommen.

ALMo, dargestellt mit einem zweischichtigen bidirektionalen LSTM.

Zu dieser Zeit hat ElMo die vorherigen hochmodernen Methoden bei einer Reihe von Aufgaben erheblich übertroffen, einschließlich der Beantwortung von Fragen, der Erkennung von Textinhalten und der Stimmungsanalyse.

BERT​

Zu einer ähnlichen Zeit wie die Entwicklung von ALMo wurde der (inzwischen bekannte) Transformer als Architektur für die Durchführung von Maschinenübersetzungen veröffentlicht. Es ersetzt die sequenziellen Berechnungen von RNNs durch einen Achten- Mechanismus – dies berechnet eine kontextbezogene Darstellung jedes Wortes parallel und ist daher viel schneller in der Ausführung als ein RNN.

Es wurde schnell erkannt, dass die Transformer-Architektur über die maschinelle Übersetzung hinaus auf andere Aufgaben verallgemeinert werden kann, einschließlich des Lernens von Einbettungen. BERT , veröffentlicht im Jahr 2019, ist eine der ersten und wahrscheinlich beliebtesten Methoden zur kontextbezogenen Einbettung, die auf der Transformer-Architektur basiert.

Im Gegensatz zu den bisher vorgestellten Methoden lernt BERT jedoch keine Einbettung von Wörtern direkt. Stattdessen lernt es Einbettungen von „Unterwort“-Tokens. Das Hauptproblem beim Lernen von Einbettungen von Wörtern besteht darin, dass ein Wörterbuch mit einer festen Größe erforderlich ist. Andernfalls würde der Speicher nicht mehr ausreichen. Stattdessen verwendet BERT einen Algorithmus namens WordItem , um Sätze in Unterworteinheiten zu tokenisieren. Dies bedeutet, dass Wörter in separate Token aufgeteilt werden können, z. B. die Wörter {'wait', 'waiting', 'waiter'} können als {['wait'], ['wait', '## ing'], ['wait', '##er']}, die alle denselben Stamm, aber unterschiedliche Suffixe haben.

BERT wird mit zwei Zielfunktionen vortrainiert (gezeigt in Abbildung 6):

  • Maskierte Sprachmodellierung
    • Einige zufällig ausgewählte Token werden aus der Sequence entfernt und das Modell hat die Aufgabe, sie vorherzusagen.
  • Vorhersage des nächsten Satzes
    • Zwei (maskierte) Sequences werden verkettet, mit einem speziellen [CLS]-Token am Anfang und einem [SEP]-Token am Ende jeder Sequence. Das Modell muss dann mithilfe der Einbettung des [CLS]-Tokens in der letzten Ebene vorhersagen, ob die zweite direkt der ersten im ursprünglichen Korpus folgt.

Bei der Durchführung von Downstream-Aufgaben kann die CLS-Einbettung für Aufgaben auf Satz-/Dokumentebene verwendet werden, z. B Absichtserkennung oder Stimmungsanalyse, während die einzelnen Token-Einbettungen für Aufgaben auf Wortebene verwendet werden können, z. B NamedEntityRecognition.

Da es sich bei dem Transformer nicht um eine sequenzielle Architektur handelt, ist die Eingabeebene nicht einfach eine Projektion der One-Hot-Tokencodierung. Stattdessen ist sie die Summe aus drei verschiedenen Einbettungen:

  • Eine Projektion der One-Hot-Tokencodierung.
  • Eine positionelle Einbettung (d. h. eine Einbettung dessen, welche Position sich das Token in der Sequence befindet).
  • Eine Segmenteinbettung (d. h ob das Token aus der ersten oder der zweiten Sequenz stammt, im nächsten Satz, wie oben beschrieben).
BERT, gezeigt mit einem einschichtigen Achtung-Mechanismus. In Wirklichkeit erfolgen alle Aufmerksamkeitsvorgänge gleichzeitig, aber hier werden sie der Übersichtlichkeit halber nacheinander angezeigt.

Einmal vortrainiert, wird BERT in der Regel für nachgelagerte Aufgaben „fein eingestellt“ (d. h. seine Gewichtungen werden für jede Aufgabe weiter aktualisiert; sie werden nicht eingefroren wie bei ALMo). Bei einer Reihe von Aufgaben, einschließlich SQuAD (Beantwortung von Fragen) und dem Glue- Benchmark , übertraf BERT die vorherigen hochmodernen Methoden erheblich.

BERT (und seine Nachfolgevarianten) haben das NLP-Gebiet völlig verändert; Es ist jetzt äußerst selten, moderne Methoden zu finden, die nicht auf kontextbezogenen Einbettungen basierend auf der Transformer-Architektur basieren.

Schwachstellen von Einbettungsmethoden​

Wie in diesem Beitrag besprochen, haben Fortschritte bei der Trainingseinbettung das NLP implementiert. Bei der Arbeit mit vortrainierten Einbettungen sind jedoch einige Fallstricke zu beachten.

Zunächst können Einbettungsmodelle die Verzerrungen codieren und sogar vergrößern, die in den Datasets enthalten sind, auf denen sie trainiert werden. Es hat sich z. B. gezeigt, dass Einbettungen geschlechtsspezifische Berufsbezeichnungen codieren können , z. B. dass Frauen mit Jobs wie der Hausarbeit in Verbindung gebracht werden, während Manager mit Jobs wie Computerprogrammieren in Verbindung stehen. Weitere Forschungsergebnisse haben gezeigt, dass Einbettungsmodelle abwertende Sprache, Rassismus und andere schädliche Ideologien aus Trainingsdaten aufgreifen können. Die Fehlerkorrektur von Sprachmodellen ist ein aktives Forschungsfeld; Die optimalen Möglichkeiten, solche Verzerrungen zu identifizieren und zu verringern, sind noch offen.

Zweitens umfassen moderne Methoden der kontextbezogenen Einbettung Trainingsmodelle mit Hunderten von Milliarden von Parametern auf Clustern von Tausenden von GPUs über mehrere Wochen. Das kann äußerst kostspielig sein, sowohl privat als auch für die Umgebung. Wie wir zuvor überprüft haben, gibt es eine Vielzahl von Methoden, um effizientere Modelle zu trainieren.

Zusammenfassung​

Dieser Beitrag bietet eine Einführung in das Konzept der „Einbettungen“ – dichte Zahlenvektoren, die trainiert werden, um die semantische Bedeutung von Text-Sequences darzustellen. Dieser Beitrag hat

  • Es wurde erklärt, was Einbettungen sind und wie sie in gängigen NLP-Anwendungen verwendet werden.
  • Präsentation eines Überblicks über beliebte Methoden für Trainingseinbettungen, einschließlich traditioneller Methoden wie Word2VEC und moderner Transformer-basierter Methoden wie BERT.
  • Die Schwachstellen von Einbettungsmethoden wurden erörtert und wie sie behoben werden können.

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
UiPath Logo weiß
Vertrauen und Sicherheit
© 2005-2024 UiPath. All rights reserved.