„ Jedes Ding verbirgt ein Muster, das Teil des Universums ist. Es hat Symmetrie, Eleganz und Schönheit - Eigenschaften, die vor allem von jedem wahren Künstler erfasst werden, der die Welt einfängt. Dieses Muster kann im Wechsel der Jahreszeiten, im Sandfluss entlang des Abhangs, in den verwickelten Zweigen eines Kreosotstrauchs und im Muster seines Blattes erfasst werden.
Wir versuchen, dieses Muster in unserem Leben und in unserer Gesellschaft zu kopieren, und deshalb lieben wir Rhythmus, Gesang, Tanz und verschiedene Formen, die uns glücklich machen und uns trösten. Man kann jedoch auch die Gefahr erkennen, die bei der Suche nach absoluter Perfektion lauert, denn es ist offensichtlich, dass das perfekte Muster unverändert bleibt. Und wenn wir uns der Perfektion nähern, gehen alle Dinge zu Tode “- Dune (1965)
Ich glaube, das Einbettungskonzept ist eine der bemerkenswertesten Ideen beim maschinellen Lernen. Wenn Sie jemals Siri, Google Assistant, Alexa, Google Translate oder sogar eine Smartphone-Tastatur mit der Vorhersage des nächsten Wortes verwendet haben, haben Sie bereits mit dem auf Anhängen basierenden Modell der Verarbeitung natürlicher Sprache gearbeitet. In den letzten Jahrzehnten hat sich dieses Konzept für neuronale Modelle erheblich weiterentwickelt (jüngste Entwicklungen umfassen kontextualisierte
Worteinbettungen in fortgeschrittenen Modellen wie
BERT und GPT2).
Word2vec ist eine effektive Methode zur Erstellung von Investitionen, die 2013 entwickelt wurde. Neben der Arbeit mit Wörtern erwiesen sich einige seiner Konzepte als wirksam bei der Entwicklung von Empfehlungsmechanismen und der Bedeutung von Daten auch bei kommerziellen, nicht sprachlichen Aufgaben. Diese Technologie wurde von Unternehmen wie
Airbnb ,
Alibaba ,
Spotify und
Anghami in ihren Empfehlungs-Engines verwendet.
In diesem Artikel werden wir uns mit dem Konzept und der Mechanik der Generierung von Anhängen mit word2vec befassen. Beginnen wir mit einem Beispiel, um sich mit der Darstellung von Objekten in Vektorform vertraut zu machen. Wissen Sie, wie viel eine Liste mit fünf Zahlen (Vektor) über Ihre Persönlichkeit aussagen kann?
Personalisierung: Was bist du?
„Ich gebe dir das Wüstenchamäleon; Seine Fähigkeit, sich mit dem Sand zu verbinden, sagt Ihnen alles, was Sie über die Wurzeln der Ökologie und die Gründe für die Erhaltung Ihrer Persönlichkeit wissen müssen. “ - Kinder der Düne
Haben Sie auf einer Skala von 0 bis 100 einen introvertierten oder extrovertierten Persönlichkeitstyp (wobei 0 der introvertierteste Typ und 100 der extrovertierteste Typ ist)? Haben Sie jemals einen Persönlichkeitstest bestanden: zum Beispiel MBTI oder noch besser
die Big Five ? Sie erhalten eine Liste mit Fragen und werden dann auf mehreren Achsen bewertet, einschließlich Introversion / Extroversion.
Beispiel der Big Five-Testergebnisse. Er sagt wirklich viel über die Persönlichkeit und kann den akademischen , persönlichen und beruflichen Erfolg vorhersagen. Hier können Sie zum Beispiel durchgehen.Angenommen, ich habe 38 von 100 Punkten für die Bewertung der Introversion / Extraversion erzielt. Dies kann wie folgt dargestellt werden:
Oder auf einer Skala von -1 bis +1:
Wie gut erkennen wir eine Person nur an dieser Einschätzung? Nicht besonders. Menschen sind komplexe Wesen. Daher fügen wir eine weitere Dimension hinzu: eine weitere Eigenschaft aus dem Test.
Sie können sich diese beiden Dimensionen als Punkt im Diagramm oder noch besser als Vektor vom Ursprung bis zu diesem Punkt vorstellen. Es gibt großartige Vektorwerkzeuge, die sehr bald nützlich sein werden.Ich zeige nicht, welche Persönlichkeitsmerkmale wir in die Tabelle aufgenommen haben, damit Sie nicht an bestimmte Merkmale gebunden werden, sondern sofort die Vektordarstellung der Persönlichkeit der Person als Ganzes verstehen.
Jetzt können wir sagen, dass dieser Vektor teilweise meine Persönlichkeit widerspiegelt. Dies ist eine nützliche Beschreibung beim Vergleich verschiedener Personen. Angenommen, ich wurde von einem roten Bus angefahren, und Sie müssen mich durch eine ähnliche Person ersetzen. Welche der beiden Personen in der folgenden Tabelle ähnelt mir eher?
Bei der Arbeit mit Vektoren wird die Ähnlichkeit normalerweise durch
den Otiai-Koeffizienten (geometrischer Koeffizient) berechnet:
Person Nr. 1 ähnelt eher meinem Charakter. Vektoren in einer Richtung (Länge ist ebenfalls wichtig) ergeben einen größeren Otiai-KoeffizientenAuch hier reichen zwei Dimensionen nicht aus, um Menschen zu bewerten. Jahrzehntelange Entwicklung der Psychologie hat zur Erstellung eines Tests für fünf grundlegende Persönlichkeitsmerkmale (mit vielen zusätzlichen) geführt. Verwenden wir also alle fünf Dimensionen:
Das Problem mit den fünf Dimensionen ist, dass es nicht mehr möglich ist, ordentliche Pfeile in 2D zu zeichnen. Dies ist ein häufiges Problem beim maschinellen Lernen, bei dem Sie häufig in einem mehrdimensionalen Raum arbeiten müssen. Es ist gut, dass der geometrische Koeffizient mit einer beliebigen Anzahl von Messungen funktioniert:
Der geometrische Koeffizient funktioniert für eine beliebige Anzahl von Messungen. In fünf Dimensionen ist das Ergebnis viel genauer.Am Ende dieses Kapitels möchte ich zwei Hauptideen wiederholen:
- Personen (und andere Objekte) können als numerische Vektoren dargestellt werden (was für Autos großartig ist!).
- Wir können leicht berechnen, wie ähnlich die Vektoren sind.
Worteinbettung
"Das Geschenk der Worte ist das Geschenk der Täuschung und Illusion." - Kinder der Düne
Mit diesem Verständnis werden wir zu den Vektordarstellungen von Wörtern übergehen, die als Ergebnis des Trainings erhalten wurden (sie werden auch als Anhänge bezeichnet) und ihre interessanten Eigenschaften untersuchen.
Hier ist der Anhang für das Wort "König" (GloVe-Vektor, auf Wikipedia trainiert):
[ 0.50451 , 0.68607 , -0.59517 , -0.022801, 0.60046 , -0.13498 , -0.08813 , 0.47377 , -0.61798 , -0.31012 , -0.076666, 1.493 , -0.034189, -0.98173 , 0.68229 , 0.81722 , -0.51874 , -0.31503 , -0.55809 , 0.66421 , 0.1961 , -0.13495 , -0.11476 , -0.30344 , 0.41177 , -2.223 , -1.0756 , -1.0783 , -0.34354 , 0.33505 , 1.9927 , -0.04234 , -0.64319 , 0.71125 , 0.49159 , 0.16754 , 0.34344 , -0.25663 , -0.8523 , 0.1661 , 0.40102 , 1.1685 , -1.0137 , -0.21585 , -0.15155 , 0.78321 , -0.91241 , -1.6106 , -0.64426 , -0.51042 ]
Wir sehen eine Liste mit 50 Zahlen, aber es ist schwer, etwas zu sagen. Visualisieren wir sie, um sie mit anderen Vektoren zu vergleichen. Setzen Sie die Zahlen in eine Reihe:
Kolorieren Sie die Zellen anhand ihrer Werte (rot für nahe 2, weiß für nahe 0, blau für nahe –2):
Vergessen Sie jetzt die Zahlen und nur durch Farben kontrastieren wir den „König“ mit anderen Worten:
Sie sehen, dass „Mann“ und „Frau“ viel näher beieinander sind als der „König“? Es sagt etwas. Vektordarstellungen erfassen viele Informationen / Bedeutungen / Assoziationen dieser Wörter.
Hier ist eine weitere Liste von Beispielen (vergleichen Sie Spalten mit ähnlichen Farben):
Es gibt mehrere Dinge zu beachten:
- Durch alle Wörter geht eine rote Spalte. Das heißt, diese Wörter sind in dieser bestimmten Dimension ähnlich (und wir wissen nicht, was darin codiert ist).
- Sie können sehen, dass "Frau" und "Mädchen" sehr ähnlich sind. Das gleiche gilt für "Mann" und "Junge".
- "Junge" und "Mädchen" sind in einigen Dimensionen ebenfalls ähnlich, unterscheiden sich jedoch von "Frau" und "Mann". Könnte dies eine verschlüsselte vage Vorstellung von Jugend sein? Wahrscheinlich.
- Alles außer dem letzten Wort sind die Ideen der Menschen. Ich habe ein Objekt (Wasser) hinzugefügt, um die Unterschiede zwischen den Kategorien zu zeigen. Sie können beispielsweise sehen, wie die blaue Spalte nach unten geht und vor dem Wasservektor stoppt.
- Es gibt klare Dimensionen, in denen der „König“ und die „Königin“ einander ähnlich sind und sich von allen anderen unterscheiden. Vielleicht ist dort ein vages Konzept der Lizenzgebühren kodiert?
Analogien
„Worte ertragen jede Last, die wir uns wünschen. Alles, was erforderlich ist, ist eine Vereinbarung über die Tradition, nach der wir Konzepte entwickeln. “ - Gott der Kaiser der Düne
Berühmte Beispiele, die die unglaublichen Eigenschaften von Investitionen zeigen, sind das Konzept der Analogien. Wir können Wortvektoren addieren und subtrahieren, um interessante Ergebnisse zu erzielen. Das bekannteste Beispiel ist die Formel „König - Mann + Frau“:
Mit der Gensim- Bibliothek in Python können wir Wortvektoren addieren und subtrahieren, und die Bibliothek findet die Wörter, die dem resultierenden Vektor am nächsten liegen. Das Bild zeigt eine Liste der ähnlichsten Wörter mit jeweils einem geometrischen ÄhnlichkeitskoeffizientenWir visualisieren diese Analogie wie zuvor:
Der resultierende Vektor aus der Berechnung „König - Mann + Frau“ ist nicht ganz gleich der „Königin“, aber dies ist das nächste Ergebnis von 400.000 Wortanhängen im DatensatzNachdem wir über das Anhängen von Wörtern nachgedacht haben, lernen wir, wie das Lernen stattfindet. Bevor Sie jedoch zu word2vec übergehen, müssen Sie sich den konzeptionellen Vorfahren der Worteinbettung ansehen: ein neuronales Sprachmodell.
Sprachmodell
„Der Prophet unterliegt nicht den Illusionen der Vergangenheit, Gegenwart oder Zukunft. Die Fixität sprachlicher Formen bestimmt solche linearen Unterschiede. Die Propheten halten den Schlüssel zum Zungenschloss. Für sie bleibt das physische Bild nur ein physisches Bild und nichts weiter.
Ihr Universum hat nicht die Eigenschaften eines mechanischen Universums. Eine lineare Abfolge von Ereignissen wird vom Beobachter angenommen. Ursache und Wirkung? Es ist eine ganz andere Sache. Der Prophet spricht schicksalhafte Worte aus. Sie sehen einen Blick auf ein Ereignis, das "nach der Logik der Dinge" eintreten sollte. Aber der Prophet setzt sofort die Energie der unendlichen Wunderkraft frei. Das Universum befindet sich in einem spirituellen Wandel. “ - Gott der Kaiser der Düne
Ein Beispiel für NLP (Natural Language Processing) ist die Vorhersagefunktion des nächsten Wortes auf der Tastatur eines Smartphones. Milliarden von Menschen benutzen es hunderte Male am Tag.
Die Vorhersage des nächsten Wortes ist eine geeignete Aufgabe für
ein Sprachmodell . Sie kann eine Liste von Wörtern (z. B. zwei Wörter) nehmen und versuchen, Folgendes vorherzusagen.
Im obigen Screenshot hat das Modell diese beiden grünen Wörter (
thou shalt
) genommen und eine Liste von Optionen zurückgegeben (höchstwahrscheinlich für das Wort
not
):
Wir können uns das Modell als Black Box vorstellen:
In der Praxis erzeugt das Modell jedoch mehr als ein Wort. Es wird eine Schätzung der Wahrscheinlichkeit für praktisch alle bekannten Wörter abgeleitet (das "Wörterbuch" des Modells variiert von mehreren tausend bis zu mehr als einer Million Wörtern). Die Tastaturanwendung findet dann die Wörter mit den höchsten Punktzahlen und zeigt sie dem Benutzer an.
Ein neuronales Sprachmodell gibt die Wahrscheinlichkeit aller bekannten Wörter an. Wir geben die Wahrscheinlichkeit als Prozentsatz an, aber im resultierenden Vektor werden 40% als 0,4 dargestelltNach dem Training berechneten die ersten neuronalen Modelle (
Bengio 2003 ) die Prognose in drei Stufen:
Der erste Schritt ist für uns der relevanteste, wenn wir über Investitionen sprechen. Als Ergebnis des Trainings wird eine Matrix mit den Anhängen aller Wörter in unserem Wörterbuch erstellt. Um das Ergebnis zu erhalten, suchen wir einfach nach den Einbettungen der eingegebenen Wörter und führen die Vorhersage aus:
Schauen wir uns nun den Lernprozess an und finden heraus, wie diese Investitionsmatrix entsteht.
Sprachmodelltraining
„Der Prozess kann nicht durch Beenden verstanden werden. Das Verständnis muss mit dem Prozess einhergehen, mit seinem Fluss verschmelzen und mit ihm fließen “- Dune
Sprachmodelle haben einen großen Vorteil gegenüber den meisten anderen Modellen des maschinellen Lernens: Sie können an Texten trainiert werden, die wir im Überfluss haben. Denken Sie an alle Bücher, Artikel, Wikipedia-Materialien und andere Formen von Textdaten, die wir haben. Vergleichen Sie mit anderen Modellen für maschinelles Lernen, die manuelle Arbeit und speziell gesammelte Daten erfordern.
"Sie müssen das Wort von seiner Firma lernen" - J. R. Furs
Anhänge für Wörter werden anhand der umgebenden Wörter berechnet, die häufiger in der Nähe erscheinen. Die Mechanik ist wie folgt:
- Wir erhalten viele Textdaten (z. B. alle Wikipedia-Artikel)
- Legen Sie ein Fenster (z. B. drei Wörter) fest, das durch den Text gleitet.
- Ein Schiebefenster erzeugt Muster für das Training unseres Modells.
Wenn dieses Fenster über den Text gleitet, generieren wir (tatsächlich) einen Datensatz, mit dem wir das Modell trainieren. Lassen Sie uns zum Verständnis sehen, wie ein Schiebefenster mit diesem Satz umgeht:
„Mögest du nicht eine Maschine bauen, die mit der Ähnlichkeit des menschlichen Geistes ausgestattet ist“ - Dune
Wenn wir beginnen, befindet sich das Fenster auf den ersten drei Wörtern des Satzes:
Wir nehmen die ersten beiden Wörter für Zeichen und das dritte Wort für das Etikett:
Wir haben die erste Stichprobe in einem Datensatz generiert, der später zum Unterrichten eines Sprachmodells verwendet werden kannDann verschieben wir das Fenster an die nächste Position und erstellen ein zweites Beispiel:
Und ziemlich bald sammeln wir einen größeren Datensatz:
In der Praxis werden Modelle normalerweise direkt beim Bewegen eines Schiebefensters trainiert. Logischerweise ist die Phase der Datensatzgenerierung von der Trainingsphase getrennt. Zusätzlich zu neuronalen Netzwerkansätzen wurde die N-Gramm-Methode häufig früher zum Unterrichten von Sprachmodellen verwendet (siehe das dritte Kapitel des Buches
„Sprach- und Sprachverarbeitung“ ). Um den Unterschied beim Wechsel von N-Gramm zu neuronalen Modellen in realen Produkten zu sehen,
hier ein Beitrag aus dem Jahr 2015 im Swiftkey-Blog , dem Entwickler meiner bevorzugten Android-Tastatur, der sein neuronales Sprachmodell vorstellt und es mit dem vorherigen N-Gramm-Modell vergleicht. Ich mag dieses Beispiel, weil es zeigt, wie die algorithmischen Eigenschaften von Anlagen in einer Marketing-Sprache beschrieben werden können.
Wir schauen in beide Richtungen
„Ein Paradoxon ist ein Zeichen dafür, dass wir versuchen sollten zu überlegen, was dahinter steckt. Wenn das Paradoxon Sie beunruhigt, bedeutet dies, dass Sie nach dem Absoluten streben. Relativisten betrachten das Paradox einfach als einen interessanten, vielleicht lustigen, manchmal beängstigenden Gedanken, aber einen sehr lehrreichen Gedanken. “ Kaisergott der Düne
Füllen Sie auf der Grundlage des Vorstehenden die Lücke aus:
Als Kontext gibt es fünf vorherige Wörter (und einen früheren Verweis auf „Bus“). Ich bin sicher, dass die meisten von Ihnen vermutet haben, dass es einen "Bus" geben sollte. Aber wenn ich Ihnen nach dem Leerzeichen noch ein Wort gebe, ändert dies Ihre Antwort?
Dies ändert die Situation völlig: Jetzt ist das fehlende Wort höchstwahrscheinlich „rot“. Offensichtlich haben Wörter sowohl vor als auch nach einem Leerzeichen einen informativen Wert. Es stellt sich heraus, dass Sie mit der Buchhaltung in beide Richtungen (links und rechts) bessere Investitionen berechnen können. Mal sehen, wie man das Modelltraining in einer solchen Situation konfiguriert.
Gramm überspringen
"Wenn eine absolut unverwechselbare Wahl unbekannt ist, hat der Intellekt die Möglichkeit, mit begrenzten Daten in der Arena zu arbeiten, in der Fehler nicht nur möglich, sondern auch notwendig sind." - Capitul Dunes
Zusätzlich zu zwei Wörtern vor dem Ziel können Sie zwei weitere Wörter nach dem Ziel berücksichtigen.
Dann sieht der Datensatz für das Modelltraining folgendermaßen aus:
Dies wird als CBOW-Architektur (Continuous Bag of Words) bezeichnet und in
einem der word2vec [pdf]
-Dokumente beschrieben . Es gibt eine andere Architektur, die ebenfalls hervorragende Ergebnisse zeigt, jedoch etwas anders angeordnet ist: Sie versucht, die benachbarten Wörter anhand des aktuellen Wortes zu erraten. Ein Schiebefenster sieht ungefähr so aus:
Im grünen Schlitz befindet sich das Eingangswort, und jedes rosa Feld repräsentiert einen möglichen AusgangRosa Rechtecke haben unterschiedliche Schattierungen, da dieses Schiebefenster tatsächlich vier separate Muster in unserem Trainingsdatensatz erstellt:
Diese Methode wird als
Skip-Gram- Architektur bezeichnet. Sie können ein Schiebefenster wie folgt visualisieren:
Die folgenden vier Beispiele werden dem Trainingsdatensatz hinzugefügt:
Dann bewegen wir das Fenster an die folgende Position:
Was vier weitere Beispiele hervorbringt:
Bald werden wir viel mehr Proben haben:
Lernbericht
„Muad'Dib lernte schnell, weil ihm hauptsächlich das Lernen beigebracht wurde. Aber die allererste Lektion war die Assimilation des Glaubens, dass er lernen kann, und das ist die Grundlage von allem. Es ist erstaunlich, wie viele Menschen nicht glauben, dass sie lernen und lernen können, und wie viele Menschen glauben, dass Lernen sehr schwierig ist. " - Düne
Nachdem wir das Sprunggramm-Set festgelegt haben, verwenden wir es, um das grundlegende neuronale Modell der Sprache zu trainieren, die ein benachbartes Wort vorhersagt.
Beginnen wir mit dem ersten Beispiel in unserem Datensatz. Wir nehmen das Zeichen und senden es an das ungeübte Modell mit der Bitte, das nächste Wort vorherzusagen.
Das Modell durchläuft drei Schritte und zeigt einen Vorhersagevektor an (mit Wahrscheinlichkeit für jedes Wort im Wörterbuch). Da das Modell nicht trainiert ist, ist seine Prognose zu diesem Zeitpunkt wahrscheinlich falsch. Aber das ist nichts. Wir wissen, welches Wort sie vorhersagt - dies ist die resultierende Zelle in der Zeile, mit der wir das Modell derzeit trainieren:
Ein "Zielvektor" ist einer, bei dem das Zielwort eine Wahrscheinlichkeit von 1 hat und alle anderen Wörter eine Wahrscheinlichkeit von 0 habenWie falsch war das Modell? Subtrahieren Sie den Prognosevektor vom Ziel und erhalten Sie den Fehlervektor:
Dieser Fehlervektor kann jetzt zum Aktualisieren des Modells verwendet werden, sodass es beim nächsten Mal wahrscheinlicher ist, dass dieselben Eingabedaten ein genaues Ergebnis liefern.
Hier endet die erste Ausbildungsphase. Wir machen dasselbe mit der nächsten Stichprobe im Datensatz und dann mit der nächsten, bis wir alle Stichproben untersucht haben. Dies ist das Ende der ersten Ära des Lernens. Wir wiederholen alles für mehrere Epochen immer wieder und erhalten so ein geschultes Modell: Daraus können Sie die Investitionsmatrix extrahieren und in beliebigen Anwendungen verwenden.
Wir haben zwar viel gelernt, aber um zu verstehen, wie word2vec wirklich lernt, fehlen einige Schlüsselideen.
Negative Auswahl
„Der Versuch, Muad'Dib zu verstehen, ohne seine Todfeinde - den Harkonnenov - zu verstehen, ist der gleiche wie der Versuch, die Wahrheit zu verstehen, ohne zu verstehen, was die Lüge ist. Dies ist ein Versuch, das Licht zu kennen, ohne die Dunkelheit zu kennen. Es ist unmöglich". - Düne
Erinnern Sie sich an die drei Schritte, wie ein neuronales Modell eine Prognose berechnet:
Der dritte Schritt ist aus rechnerischer Sicht sehr teuer, insbesondere wenn Sie ihn für jede Stichprobe im Datensatz ausführen (zig Millionen Mal). Es ist notwendig, die Produktivität irgendwie zu steigern.
Eine Möglichkeit besteht darin, das Ziel in zwei Phasen zu unterteilen:
- Erstellen Sie hochwertige Wortanhänge (ohne das nächste Wort vorherzusagen).
- Verwenden Sie diese hochwertigen Investitionen für den Unterricht des Sprachmodells (für Prognosen).
Dieser Artikel konzentriert sich auf den ersten Schritt. Um die Produktivität zu steigern, können Sie nicht mehr ein benachbartes Wort vorhersagen ...
... und wechseln Sie zu einem Modell, das Eingabe- und Ausgabewörter verwendet und die Wahrscheinlichkeit ihrer Nähe berechnet (von 0 bis 1).
Ein solch einfacher Übergang ersetzt das neuronale Netzwerk durch ein logistisches Regressionsmodell - so werden Berechnungen viel einfacher und schneller.
Gleichzeitig müssen wir die Struktur unseres Datensatzes verfeinern: Die Bezeichnung ist jetzt eine neue Spalte mit den Werten 0 oder 1. In unserer Tabelle sind Einheiten überall, weil wir dort Nachbarn hinzugefügt haben.
Ein solches Modell wird mit einer unglaublichen Geschwindigkeit berechnet: Millionen von Proben in Minuten. Aber Sie müssen eine Lücke schließen. Wenn alle unsere Beispiele positiv sind (Ziel: 1), kann sich ein kniffliges Modell bilden, das immer 1 zurückgibt und 100% Genauigkeit zeigt, aber nichts lernt und Junk-Investitionen generiert.
Um dieses Problem zu lösen, müssen Sie
negative Muster in den Datensatz eingeben - Wörter, die definitiv keine Nachbarn sind. Für sie muss das Modell 0 zurückgeben. Jetzt muss das Modell hart arbeiten, aber die Berechnungen laufen immer noch mit großer Geschwindigkeit ab.
Fügen Sie für jede Probe im Datensatz negative Beispiele mit der Bezeichnung 0 hinzuAber was ist als Ausgabewort einzuführen? Wählen Sie die Wörter beliebig:
Diese Idee wurde unter dem Einfluss der
Rauschvergleichsmethode [pdf] geboren. Wir gleichen das tatsächliche Signal (positive Beispiele benachbarter Wörter) mit Rauschen (zufällig ausgewählte Wörter, die keine Nachbarn sind) ab. Dies bietet einen hervorragenden Kompromiss zwischen Leistung und statistischer Leistung.
Skip-Gramm-Negativprobe (SGNS)
Wir haben uns zwei zentrale Konzepte von word2vec angesehen: Zusammen werden sie als "Sprunggramm mit negativer Stichprobe" bezeichnet.
Word2vec lernen
„Eine Maschine kann nicht jedes Problem vorhersehen, das für eine lebende Person wichtig ist. Es gibt einen großen Unterschied zwischen diskretem Raum und kontinuierlichem Kontinuum. Wir leben in einem Raum und Maschinen existieren in einem anderen. “ - Gott der Kaiser der Düne
Nachdem wir die Grundideen von Skip-Gram und Negativ-Sampling untersucht haben, können wir uns den Lernprozess von word2vec genauer ansehen.
Zuerst verarbeiten wir den Text vor, auf dem wir das Modell trainieren. Definieren Sie die Größe des Wörterbuchs (wir nennen es
vocab_size
), beispielsweise in 10.000 Anhängen und den Parametern der Wörter im Wörterbuch.
Zu Beginn des Trainings erstellen wir zwei Matrizen:
Embedding
und
Context
. Anhänge für jedes Wort werden in diesen Matrizen in unserem Wörterbuch gespeichert (daher ist
vocab_size
einer ihrer Parameter). Der zweite Parameter ist die Dimension des Anhangs (normalerweise wird
embedding_size
auf 300 gesetzt, aber zuvor haben wir uns ein Beispiel mit 50 Dimensionen angesehen).
Zuerst initialisieren wir diese Matrizen mit zufälligen Werten. Dann beginnen wir den Lernprozess. In jeder Phase nehmen wir ein positives und die damit verbundenen negativen Beispiele. Hier ist unsere erste Gruppe:
Wir haben jetzt vier Wörter: das Eingabewort
not
und die Ausgabe- / Kontextwörter
thou
(tatsächlicher Nachbar),
aaron
und
taco
(negative Beispiele). Wir beginnen die Suche nach ihren Anhängen in den Matrizen
Embedding
(für das Eingabewort) und
Context
(für die Kontextwörter), obwohl beide Matrizen Anhänge für alle Wörter aus unserem Wörterbuch enthalten.
Dann berechnen wir das Skalarprodukt des Eingabeanhangs mit jedem der Kontextanhänge. In jedem Fall wird eine Zahl erhalten, die die Ähnlichkeit von Eingabedaten und Kontextanhängen angibt.
Jetzt brauchen wir eine Möglichkeit, diese Schätzungen in eine Art Wahrscheinlichkeit umzuwandeln: Alle müssen positive Zahlen zwischen 0 und 1 sein. Dies ist eine hervorragende Aufgabe für
sigmoidale logistische Gleichungen.
Das Ergebnis der Sigmoidberechnung kann als Ausgabe des Modells für diese Stichproben betrachtet werden. Wie Sie sehen können, hat
taco
die höchste Punktzahl, während
aaron
vor und nach dem Sigmoid immer noch die niedrigste Punktzahl hat.
Wenn das nicht trainierte Modell eine Prognose erstellt hat und eine echte Zielmarke zum Vergleich hat, berechnen wir, wie viele Fehler in der Modellprognose enthalten sind. Subtrahieren Sie dazu einfach die Sigmoid-Punktzahl von den Zielbezeichnungen.
error
= target
- sigmoid_scores
Hier beginnt die „Lernphase“ aus dem Begriff „maschinelles Lernen“. Jetzt können wir diese Fehlerschätzung verwenden, um die Investitionen
not
,
thou
,
aaron
und
taco
so anzupassen, dass das Ergebnis das nächste Mal näher an den Zielschätzungen liegt.
Damit ist eine Ausbildungsstufe abgeschlossen. Wir haben die Anhaftung einiger Wörter ein wenig verbessert (
not
thou
,
aaron
und
taco
). Nun fahren wir mit der nächsten Stufe fort (der nächsten positiven und den damit verbundenen negativen Probe) und wiederholen den Vorgang.
Die Anhänge verbessern sich weiter, wenn wir den gesamten Datensatz mehrmals durchlaufen. Sie können den Prozess dann stoppen, die
Context
beiseite legen und die trainierte
Embeddings
für die nächste Aufgabe verwenden.
Fenstergröße und Anzahl der negativen Proben
Beim Lernen von word2vec sind zwei wichtige Hyperparameter die Fenstergröße und die Anzahl der negativen Stichproben.
Unterschiedliche Fenstergrößen eignen sich für unterschiedliche Aufgaben.
Es wurde festgestellt, dass kleinere Fenstergrößen (2–15)
austauschbare Anhänge mit ähnlichen Indizes erzeugen (beachten Sie, dass Antonyme bei der Betrachtung der umgebenden Wörter häufig austauschbar sind: Beispielsweise werden die Wörter „gut“ und „schlecht“ häufig in ähnlichen Kontexten erwähnt). Größere Fenstergrößen (15–50 oder mehr) erzeugen
verwandte Anhänge mit ähnlichen Indizes. In der Praxis müssen Sie häufig
Anmerkungen für nützliche semantische Ähnlichkeiten in Ihrer Aufgabe bereitstellen. In Gensim beträgt die Standardfenstergröße 5 (zwei Wörter links und rechts zusätzlich zum eingegebenen Wort selbst).
Die Anzahl der negativen Stichproben ist ein weiterer Faktor im Lernprozess. Das Originaldokument empfiehlt 5–20. Es heißt auch, dass 2-5 Stichproben ausreichend zu sein scheinen, wenn Sie einen ausreichend großen Datensatz haben. In Gensim beträgt der Standardwert 5 negative Muster.Fazit
„Wenn Ihr Verhalten über Ihre Standards hinausgeht, sind Sie eine lebende Person, kein Automat“ - Gott-Kaiser der Düne
Ich hoffe, Sie verstehen die Einbettung von Wörtern und die Essenz des word2vec-Algorithmus. Ich hoffe auch, dass Sie jetzt die Artikel besser verstehen, in denen das Konzept des "Sprunggramms mit negativer Stichprobe" (SGNS) wie in den obigen Empfehlungssystemen erwähnt wird.Referenzen und weiterführende Literatur