- API-Dokumentation
- Einleitung
- Verwenden der API
- API-Tutorial
- Zusammenfassung
- Quellen
- Datasets
- Anmerkungen
- Anhänge (Attachments)
- Vorhersagen
- Erstellen Sie einen Stream
- Aktualisieren Sie einen Stream
- Rufen Sie einen Stream nach Namen ab
- Rufen Sie alle Streams ab
- Löschen Sie einen Stream
- Ergebnisse aus Stream abrufen
- Kommentare aus einem Stream abrufen (Legacy)
- Bringen Sie einen Stream vor
- Einen Stream zurücksetzen
- Kennzeichnen Sie eine Ausnahme
- Entfernen Sie das Tag einer Ausnahme
- Prüfungsereignisse
- Alle Benutzer abrufen
- CLI
- Integrationsleitfäden
- Exchange Integration mit einem Azure-Dienstbenutzer
- Exchange-Integration mit der Azure-Anwendungsauthentifizierung
- Echtzeit-Automatisierung
- Abrufen von Daten für Tableau mit Python
- Elasticsearch-Integration
- Selbst gehostete EWS-Integration
- UiPath Automatisierungs-Framework
- UiPath Marketplace-Aktivitäten
- offizielle UiPath-Aktivitäten
- Blog
- Wie Maschinen lernen, Wörter zu verstehen: eine Anleitung zu Einbettungen in NLP
- Eingabeaufforderungsbasiertes Lernen mit Transformers
- Ef Robots II: Wissensdegesterration und Feinabstimmung
- Effiziente Transformer I: Warnmechanismen
- Tief hierarchische, nicht überwachte Absichtsmodellierung: Nutzen ohne Trainingsdaten
- Beheben der Anmerkungsverzerrung durch Communications Mining
- Aktives Lernen: Bessere ML-Modelle in weniger Zeit
- Auf Zahlen kommt es an – Bewertung der Modellleistung mit Metriken
- Darum ist Modellvalidierung wichtig
- Vergleich von Communications Mining und Google AutoML für die Ermittlung von Konversationsdaten
Wie Maschinen lernen, Wörter zu verstehen: eine Anleitung zu Einbettungen 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.
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).
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 .
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.
- Sagen Sie ein bestimmtes Wort vorher, das von den k benachbarten Wörtern auf beiden Seiten abhängig ist.
- 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.
- Sagen Sie die k benachbarten Wörter auf beiden Seiten eines gegebenen Wortes vorher.
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.
X | y | z | w=nearest(emb(x)−emb(y)+emb(z)) |
---|---|---|---|
am höchsten | groß | Klein | am kleinsten |
paris | Frankreich | Italien | Rom |
cu | verwendet | zink | Zn |
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.
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.
Globale Einbettungen von Word2vec bei der Aufgabe der Wortanalogien (oben beschrieben) deutlich und etwas besser für die benannte allgemeine Felderkennung. Infolgedessen waren Globalisierungs- und vortrainierte Worteinbettungen für einige Jahre die bevorzugten vortrainierten Worteinbettungen und sind bis heute beliebt.
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.
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.
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 Benannte allgemeine Felderkennung.
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).
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.
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.
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.