Laptop verstehen Wörter nicht so wie wir. Sie arbeiten lieber mit Zahlen. Um Computern zu helfen, Wörter und ihre Bedeutung zu verstehen, verwenden wir sogenannte Einbettungen. Diese Einbettungen stellen Wörter numerisch als mathematische Vektoren dar.
Das Coole an diesen Einbettungen ist, dass Wörter mit ähnlicher Bedeutung, wenn wir sie richtig lernen, ähnliche numerische Werte haben. Mit anderen Worten: Ihre Zahlen werden näher beieinander liegen. Dies ermöglicht es Computern, die Zusammenhänge und Ähnlichkeiten zwischen verschiedenen Wörtern anhand ihrer numerischen Darstellungen zu erfassen.
Eine bekannte Methode zum Erlernen von Worteinbettungen ist Word2Vec. In diesem Artikel werden wir uns mit den Feinheiten von Word2Vec befassen und seine verschiedenen Architekturen und Varianten erkunden.
In der Anfangszeit wurden Sätze mit N-Gramm-Vektoren dargestellt. Diese Vektoren zielten darauf ab, die Essenz eines Satzes durch die Berücksichtigung von Wortfolgen zu erfassen. Sie hatten jedoch einige Einschränkungen. N-Gramm-Vektoren waren oft groß und spärlich, was ihre Erstellung rechentechnisch schwierig machte. Dies führte zu einem Drawback, das als „ Fluch der Dimensionalität. Im Wesentlichen bedeutete dies, dass in hochdimensionalen Räumen die Vektoren, die Wörter darstellen, so weit voneinander entfernt waren, dass es schwierig wurde, zu bestimmen, welche Wörter wirklich ähnlich waren.
Dann, im Jahr 2003, gelang ein bemerkenswerter Durchbruch mit der Einführung von a neuronales probabilistisches Sprachmodell. Dieses Modell hat die Artwork und Weise, wie wir Wörter darstellen, durch die Verwendung sogenannter kontinuierlicher dichter Vektoren völlig verändert. Im Gegensatz zu N-Gramm-Vektoren, die diskret und dünnbesetzt waren, boten diese dichten Vektoren eine kontinuierliche Darstellung. Selbst kleine Änderungen an diesen Vektoren führten zu aussagekräftigen Darstellungen, obwohl sie möglicherweise nicht direkt bestimmten englischen Wörtern entsprechen.
Aufbauend auf diesem aufregenden Fortschritt wird die Word2Vec Das Framework entstand 2013. Es stellte eine leistungsstarke Methode zur Kodierung von Wortbedeutungen in kontinuierliche dichte Vektoren dar. Innerhalb von Word2Vec wurden zwei Hauptarchitekturen eingeführt: Steady Bag of Phrases (CBoW) und Skip-gram.
Diese Architekturen öffneten Türen für effiziente Trainingsmodelle, die in der Lage sind, qualitativ hochwertige Worteinbettungen zu generieren. Durch die Nutzung riesiger Textdatenmengen erweckte Word2Vec Wörter in der Zahlenwelt zum Leben. Dies ermöglichte es Computern, die kontextuellen Bedeutungen und Beziehungen zwischen Wörtern zu verstehen und bot so einen transformativen Ansatz für die Verarbeitung natürlicher Sprache.
In diesem und im nächsten Abschnitt wollen wir verstehen, wie CBoW- und Skip-Gramm-Modelle mithilfe eines kleinen Vokabulars von fünf Wörtern trainiert werden: größte, jemals, Lüge, erzählt und das. Und wir haben einen Beispielsatz „Die größte Lüge, die je erzählt wurde“. Wie würden wir dies in die CBoW-Architektur übergeben? Dies ist in dargestellt Figur 2 oben, aber wir werden auch den Prozess beschreiben.
Angenommen, wir setzen die Größe des Kontextfensters auf 2. Wir nehmen die Wörter „The“, „largest“, „ever“ und „advised“ und konvertieren sie in 5×1 One-Sizzling-Vektoren.
Diese Vektoren werden dann als Eingabe an das Modell übergeben und einer Projektionsebene zugeordnet. Nehmen wir an, diese Projektionsebene hat eine Größe von 3. Der Vektor jedes Wortes wird mit einer 5×3-Gewichtungsmatrix (gemeinsam mit allen Eingaben) multipliziert, was zu vier 3×1-Vektoren führt. Wenn wir den Durchschnitt dieser Vektoren bilden, erhalten wir einen einzelnen 3×1-Vektor. Dieser Vektor wird dann mithilfe einer weiteren 3×5-Gewichtungsmatrix auf einen 5×1-Vektor zurückprojiziert.
Dieser letzte Vektor stellt das mittlere Wort „Lüge“ dar. Durch die Berechnung des echten One-Sizzling-Vektors und des tatsächlichen Ausgabevektors erhalten wir einen Verlust, der zur Aktualisierung der Netzwerkgewichte durch Backpropagation verwendet wird.
Wir wiederholen diesen Vorgang, indem wir das Kontextfenster verschieben und es dann auf Tausende von Sätzen anwenden. Nach Abschluss des Trainings enthält die erste Schicht des Modells mit den Abmessungen 5×3 (Vokabulargröße x Projektionsgröße) die gelernten Parameter. Diese Parameter werden als Nachschlagetabelle verwendet, um jedes Wort seiner entsprechenden Vektordarstellung zuzuordnen.
Im Skip-Gram-Modell verwenden wir eine ähnliche Architektur wie im Fall der Steady Bag-of-Phrases (CBoW). Anstatt jedoch das Zielwort anhand der umgebenden Wörter vorherzusagen, drehen wir das Szenario wie gezeigt um Figur 3. Jetzt wird das Wort „Lüge“ zur Eingabe, und wir wollen die Kontextwörter vorhersagen. Der Identify „Skip-Gram“ spiegelt diesen Ansatz wider, da wir Kontextwörter vorhersagen, die möglicherweise einige Wörter „überspringen“.
Um dies zu veranschaulichen, betrachten wir einige Beispiele:
- Das Eingabewort „lüge“ wird mit dem Ausgabewort „the“ gepaart.
- Das Eingabewort „lüge“ wird mit dem Ausgabewort „größte“ gepaart.
- Das Eingabewort „lüge“ wird mit dem Ausgabewort „ever“ gepaart.
- Das Eingabewort „lügen“ wird mit dem Ausgabewort „erzählt“ gepaart.
Wir wiederholen diesen Vorgang für alle Wörter in den Trainingsdaten. Sobald das Coaching abgeschlossen ist, erfassen die Parameter der ersten Ebene mit den Abmessungen Vokabulargröße x Projektionsgröße die Beziehungen zwischen eingegebenen Wörtern und ihren entsprechenden Vektordarstellungen. Diese erlernten Parameter ermöglichen es uns, ein Eingabewort seiner jeweiligen Vektordarstellung im Skip-Gram-Modell zuzuordnen.
- Überwindet den Fluch der Dimensionalität mit Einfachheit: Word2Vec bietet eine einfache und effiziente Lösung für den Fluch der Dimensionalität. Durch die Darstellung von Wörtern als dichte Vektoren werden die Sparsamkeit und die Rechenkomplexität reduziert, die mit herkömmlichen Methoden wie N-Gramm-Vektoren verbunden sind.
- Erzeugt Vektoren, sodass Wörter mit näherer Bedeutung nähere Vektorwerte haben: Die Einbettungen von Word2Vec weisen eine wertvolle Eigenschaft auf, bei der Wörter mit ähnlicher Bedeutung durch Vektoren dargestellt werden, deren numerischer Wert näher beieinander liegt. Dies ermöglicht die Erfassung semantischer Beziehungen und die Durchführung von Aufgaben wie der Erkennung von Wortähnlichkeiten und Analogien.
- Vortrainierte Einbettungen für verschiedene NLP-Anwendungen: Die vorab trainierten Einbettungen von Word2Vec sind weit verbreitet und können in einer Reihe von NLP-Anwendungen (Pure Language Processing) verwendet werden. Diese auf großen Korpora trainierten Einbettungen stellen eine wertvolle Ressource für Aufgaben wie Stimmungsanalyse, Erkennung benannter Entitäten, maschinelle Übersetzung und mehr dar.
- Selbstüberwachtes Framework für Datenerweiterung und Schulung: Word2Vec arbeitet selbstüberwacht und nutzt die vorhandenen Daten, um Wortdarstellungen zu lernen. Dadurch ist es einfacher, mehr Daten zu sammeln und das Modell zu trainieren, da keine umfangreichen beschrifteten Datensätze erforderlich sind. Das Framework kann auf große Mengen unbeschrifteten Textes angewendet werden und verbessert so den Trainingsprozess.
- Begrenzte Aufbewahrung globaler Informationen: Die Einbettungen von Word2Vec konzentrieren sich hauptsächlich auf die Erfassung lokaler Kontextinformationen und bewahren möglicherweise keine globalen Beziehungen zwischen Wörtern. Diese Einschränkung kann sich auf Aufgaben auswirken, die ein umfassenderes Textverständnis erfordern, wie z. B. die Klassifizierung von Dokumenten oder die Stimmungsanalyse auf Dokumentebene.
- Weniger geeignet für morphologisch reiche Sprachen: Morphologisch reiche Sprachen, die durch komplexe Wortformen und Flexionen gekennzeichnet sind, können Word2Vec vor Herausforderungen stellen. Da Word2Vec jedes Wort als atomare Einheit behandelt, kann es schwierig sein, die reichhaltige Morphologie und semantischen Nuancen solcher Sprachen zu erfassen.
- Mangelndes umfassendes Kontextbewusstsein: Word2Vec-Modelle berücksichtigen während des Trainings nur ein lokales Kontextfenster von Wörtern, die das Zielwort umgeben. Dieses eingeschränkte Kontextbewusstsein kann in bestimmten Kontexten zu einem unvollständigen Verständnis der Wortbedeutungen führen. Es kann schwierig sein, langfristige Abhängigkeiten und komplexe semantische Beziehungen zu erfassen, die in bestimmten Sprachphänomenen vorhanden sind.
In den folgenden Abschnitten werden wir einige Architekturen zur Worteinbettung sehen, die dabei helfen, diese Nachteile zu beseitigen.
Word2Vec-Methoden waren bis zu einem gewissen Grad erfolgreich bei der Erfassung des lokalen Kontexts, sie nutzen jedoch den im Korpus verfügbaren globalen Kontext nicht vollständig aus. Globaler Kontext bezieht sich auf die Verwendung mehrerer Sätze im gesamten Korpus, um Informationen zu sammeln. Das ist wo Handschuh kommt ins Spiel, da es das gleichzeitige Vorkommen von Wörtern nutzt, um Worteinbettungen zu lernen.
Das Konzept einer Wort-Wort-Kookkurrenzmatrix ist der Schlüssel zu Glove. Es handelt sich um eine Matrix, die das Vorkommen jedes Wortes im Kontext jedes anderen Wortes im Korpus erfasst. Jede Zelle in der Matrix stellt die Anzahl der Vorkommen eines Wortes im Kontext eines anderen Wortes dar.
Anstatt wie in Word2Vec direkt mit den Wahrscheinlichkeiten des gleichzeitigen Auftretens zu arbeiten, beginnt Glove mit den Verhältnissen der Wahrscheinlichkeiten des gleichzeitigen Auftretens. Im Zusammenhang mit Figur 4P(okay | Eis) stellt die Wahrscheinlichkeit dar, dass Wort okay im Kontext des Wortes „Eis“ auftritt, und P(okay | Dampf) stellt die Wahrscheinlichkeit dar, dass das Wort okay im Kontext des Wortes „Steam“ auftritt. Durch Vergleich des Verhältnisses P(okay | Eis) / P(okay | Dampf) können wir die Assoziation des Wortes okay entweder mit Eis oder Dampf bestimmen. Wenn das Verhältnis viel größer als 1 ist, deutet dies auf eine stärkere Assoziation mit Eis hin. Liegt er hingegen näher bei 0, deutet dies auf eine stärkere Assoziation mit Dampf hin. Ein Verhältnis näher bei 1 impliziert keinen eindeutigen Zusammenhang mit Eis oder Dampf.
Wenn beispielsweise okay = „fest“ ist, ist das Wahrscheinlichkeitsverhältnis viel größer als 1, was auf eine starke Assoziation mit Eis hinweist. Wenn andererseits okay = „Gasoline“ ist, liegt das Wahrscheinlichkeitsverhältnis viel näher bei 0, was auf eine stärkere Assoziation mit Dampf schließen lässt. Was die Wörter „Wasser“ und „Mode“ betrifft, so weisen sie weder eine eindeutige Verbindung zu Eis noch zu Dampf auf.
Genau diese Assoziation von Wörtern auf Foundation von Wahrscheinlichkeitsverhältnissen ist unser Ziel. Und dies wird beim Erlernen von Einbettungen mit GloVe optimiert.
Die traditionellen Word2vec-Architekturen verfügen nicht nur nicht über die Nutzung globaler Informationen, sondern können auch Sprachen, die morphologisch reich sind, nicht effektiv verarbeiten.
Was bedeutet es additionally, dass eine Sprache morphologisch reich ist? In solchen Sprachen kann ein Wort seine Type je nach Kontext ändern, in dem es verwendet wird. Nehmen wir das Beispiel einer südindischen Sprache namens „Kannada“.
In Kannada wird das Wort für „Haus“ als ಮನೆ (Mähne) geschrieben. Wenn wir jedoch „im Haus“ sagen, wird es zu ಮನೆಯಲ್ಲಿ (maneyalli), und wenn wir „aus dem Haus“ sagen, ändert es sich zu ಮನೆಯಿಂದ (maneyinda). Wie Sie sehen, ändert sich nur die Präposition, aber die übersetzten Wörter haben unterschiedliche Formen. Auf Englisch heißen sie alle einfach „home“. Folglich würden herkömmliche Word2Vec-Architekturen alle diese Variationen demselben Vektor zuordnen. Wenn wir jedoch ein word2vec-Modell für Kannada erstellen würden, das morphologisch reich ist, würden jedem dieser drei Fälle unterschiedliche Vektoren zugewiesen. Darüber hinaus kann das Wort „Haus“ in Kannada viel mehr Formen annehmen als nur diese drei Beispiele. Da unser Korpus möglicherweise nicht alle dieser Variationen enthält, erfasst das traditionelle word2vec-Coaching möglicherweise nicht alle verschiedenen Wortdarstellungen.
Um dieses Drawback anzugehen, FastText führt eine Lösung ein, indem Unterwortinformationen bei der Generierung von Wortvektoren berücksichtigt werden. Anstatt jedes Wort als Ganzes zu behandeln, zerlegt FastText Wörter in Zeichen-N-Gramm, die von Tri-Gramm bis 6-Gramm reichen. Diese n-Gramme werden dann auf Vektoren abgebildet, die anschließend aggregiert werden, um das gesamte Wort darzustellen. Diese aggregierten Vektoren werden dann in eine Skip-Gram-Architektur eingespeist.
Dieser Ansatz ermöglicht die Erkennung gemeinsamer Merkmale verschiedener Wortformen innerhalb einer Sprache. Auch wenn wir möglicherweise nicht jede einzelne Type eines Wortes im Korpus gesehen haben, erfassen die erlernten Vektoren die Gemeinsamkeiten und Ähnlichkeiten zwischen diesen Formen. Morphologisch reiche Sprachen wie Arabisch, Türkisch, Finnisch und verschiedene indische Sprachen können von der Fähigkeit von FastText profitieren, Wortvektoren zu generieren, die verschiedene Formen und Variationen berücksichtigen.