wake-up-neo.com

was ist Dimensionalität in Word-Einbettungen?

Ich möchte verstehen, was unter "Dimensionalität" in Word-Einbettungen zu verstehen ist.

Welche Rolle spielt die Dimensionalität, wenn ich ein Wort in Form einer Matrix für NLP-Aufgaben einbette? Gibt es ein visuelles Beispiel, das mir helfen kann, dieses Konzept zu verstehen?

6
manoveg

Antworten

Eine Worteinbettung ist nur eine Zuordnung von Wörtern zu Vektoren. Dimensionalitätin Word-Einbettungen bezieht sich auf die Länge dieser Vektoren.

Zusätzliche Information

Diese Zuordnungen sind in verschiedenen Formaten verfügbar. Die meisten vorgefertigten Einbettungen sind als durch Leerzeichen getrennte Textdatei verfügbar, wobei jede Zeile ein Wort an der ersten Position und seine Vektordarstellung daneben enthält. Wenn Sie diese Zeilen spalten, würden Sie feststellen, dass sie der Länge 1 + dim sind, wo dim das ist Dimensionalitätder Wortvektoren und 1 entspricht das Wort dargestellt wird, finden Sie in der . Handschuh vortrainiert Vektoren für ein reales Beispiel.

Wenn Sie beispielsweise glove.Twitter.27B.Zip herunterladen, entpacken Sie es und führen Sie den folgenden Python-Code aus:

#!/usr/bin/python3

with open('glove.Twitter.27B.50d.txt') as f:
    lines = f.readlines()
lines = [line.rstrip().split() for line in lines]

print(len(lines))          # number of words (aka vocabulary size)
print(len(lines[0]))       # length of a line
print(lines[130][0])       # Word 130
print(lines[130][1:])      # vector representation of Word 130
print(len(lines[130][1:])) # dimensionality of Word 130

sie würden die Ausgabe erhalten

1193514
51
people
['1.4653', '0.4827', ..., '-0.10117', '0.077996']  # shortened for illustration purposes
50

Unabhängig, aber ebenso wichtig ist, dass die Zeilen in diesen Dateien nach der Worthäufigkeit sortiert sind, die in dem Korpus gefunden wurde, in dem die Einbettungen trainiert wurden (häufigste Wörter zuerst).


Sie können diese Einbettungen auch als Wörterbuch darstellen, wobei die Schlüssel die Wörter und die Werte Listen sind, die Wortvektoren darstellen. Die Länge dieser Listen wäre die DimensionalitätIhrer Wortvektoren.

Eine gängige Praxis ist, sie als Matrizen darzustellen (auch Lookup-Tabellen genannt), der Dimension (V x D), wo V die Vokabulargröße (dh, wie viele Wörter, die Sie haben), und D ist die Dimensionalitätjedes Wort Vektor In diesem Fall müssen Sie ein separates Wörterbuch führen, das jedes Wort der entsprechenden Zeile in der Matrix zuordnet.

Hintergrund

Etwa in Bezug auf Ihre Frage die Rolle Dimensionalität spielt, werden Sie einigen theoretischen Hintergrund brauchen. Aber in ein paar Worten, in der der Raum Worte eingebettet sind, präsentiert Nizza Eigenschaften, die NLP-Systeme ermöglichen eine bessere Leistung. Eine dieser Eigenschaften ist , dass Worte, die ähnliche Bedeutung sind räumlich nahe beieinander, das heißt, haben ähnliche Vektordarstellungen, die als solche durch eine Abstandsmetrik gemessen als euklidischen Abstand oder die Kosinusähnlichkeit .

Sie können Visualisierungeine 3D-Projektion von mehreren Word-Einbettungen hier und sehen, zum Beispiel, dass die nächsten Worte „Straßen“ sind „Autobahnen“, „Straße“ und „Strecken“ in den Word2Vec 10K einbetten.

Für eine genauere Erklärung empfehle ich den Abschnitt "Word Embeddings" von diesem Beitrag von Christopher Olah.

Für mehr Theorie darüber, warum die Verwendung von Word-Einbettungen, die eine Instanz von verteilte Darstellungen sind, besser ist als die Verwendung von beispielsweise One-Hot-Codierungen (lokale Darstellungen), empfehle ich das Lesen von erste Abschnitte von Distributed Representations von Geoffrey Hinton et al.

4
jabalazs

Worteinbettungen wie Word2vec oder GloVe binden Wörter nicht in zweidimensionale Matrizen ein, sondern verwenden eindimensionale Vektoren . "Dimensionalität" bezieht sich auf die Größe dieser Vektoren. Sie unterscheidet sich von der Größe des Vokabulars, dh der Anzahl der Wörter, für die Sie tatsächlich Vektoren behalten, anstatt sie einfach wegzuwerfen.

Theoretisch können größere Vektoren mehr Informationen speichern, da sie mehr mögliche Zustände haben. In der Praxis gibt es über eine Größe von 300-500 hinaus keinen großen Vorteil, und in einigen Anwendungen funktionieren auch kleinere Vektoren einwandfrei.

Hier ist eine Grafik von der GloVe Homepage .

 Word vector visualization

Die Dimensionalität der Vektoren ist auf der linken Achse gezeigt; Wenn Sie den Wert verringern, wird das Diagramm beispielsweise kürzer. Jede Spalte ist ein einzelner Vektor, dessen Farbe an jedem Pixel durch die Zahl an dieser Position im Vektor bestimmt wird.

4
polm23

Ich bin kein Experte, aber ich denke, die Dimensionen repräsentieren nur die Variablen (alias Attribute oder Features), die den Wörtern zugewiesen wurden, obwohl es möglicherweise mehr als das gibt. Die Bedeutung der einzelnen Dimensionen und die Gesamtanzahl der Dimensionen hängen von Ihrem Modell ab.

Ich habe kürzlich diese Einbettungsvisualisierung aus der Tensor Flow-Bibliothek gesehen: https://www.tensorflow.org/get_started/embedding_viz

Dies trägt insbesondere dazu bei, hochdimensionale Modelle auf etwas von Menschen Wahrnehmbares zu reduzieren. Wenn Sie mehr als drei Variablen haben, ist es äußerst schwierig, das Clustering zu visualisieren (es sei denn, Sie sind anscheinend Stephen Hawking).

Dieser Wikipedia-Artikel zur Dimensionsreduktion und verwandte Seiten beschreiben, wie Features in Dimensionen dargestellt werden und welche Probleme es gibt, wenn zu viele vorhanden sind.

1
scipilot

Die "Dimensionalität" in Word-Einbettungen stellen die Gesamtzahl der Features dar die es codiert. Eigentlich geht es um die Vereinfachung der Definition, aber dazu später.

Die Auswahl der Funktionen ist normalerweise nicht manuell, sondern erfolgt automatisch durch Verwenden von versteckter Ebene im Training Prozess. Abhängig vom Umfang der Literatur werden die nützlichsten Dimensionen (Merkmale) ausgewählt. Wenn es in der Literatur beispielsweise um Romantik Fiktionen geht, ist die Dimension für Geschlecht viel wahrscheinlicher als in der Literatur von Mathematik .

Wenn Sie den Wort-Einbettungsvektor von 100 Dimensionen (zum Beispiel) für 100.000 eindeutige Wörter erstellt haben, ist es im Allgemeinen nicht sinnvoll, den Zweck jeder Dimension zu untersuchen und zu versuchen um jede Dimension mit "Feature-Name" zu kennzeichnen. Da die Merkmale, die jede Dimension darstellt, möglicherweise nicht einfach und orthogonal sind und der Prozess automatisch abläuft, weiß kein Körper genau, was jede Dimension darstellt.

Um mehr über dieses Thema zu erfahren, können Sie dieses post nützlich finden.

0
Thava