[PYTHON] Warum ist der verteilte Ausdruck von Wörtern für die Verarbeitung natürlicher Sprache wichtig?

** Warum ist die verteilte Darstellung von Wörtern für die Verarbeitung natürlicher Sprache wichtig? ** ** **

Wenn Sie diesen Artikel lesen, sind Sie möglicherweise mit ** Word2vec ** vertraut (Mikolov et al., 2013). Mit Word2vec können Sie Vorgänge so ausführen, als würden Sie die Bedeutung eines Wortes erfassen. Zum Beispiel ist es ein berühmtes Beispiel, dass Königin erhalten wird, indem Mann von König subtrahiert und Frau hinzugefügt wird (König - Mann + Frau = Königin).

from https://www.tensorflow.org/get_started/embedding_viz

Tatsächlich werden Wörter darin durch einen Vektor von ungefähr 200 Dimensionen ausgedrückt, der als ** verteilter Ausdruck ** (oder eingebetteter Ausdruck) bezeichnet wird, und die Vektoren werden addiert und subtrahiert. Es wird angenommen, dass die Eigenschaften jedes Wortes in diesem 200-dimensionalen Vektor gespeichert sind. Daher kann das Addieren und Subtrahieren von Vektoren zu aussagekräftigen Ergebnissen führen.

** Die verteilte Darstellung von Wörtern ist eine wichtige Technik, die in der heutigen Verarbeitung natürlicher Sprache häufig verwendet wird. ** In jüngster Zeit wurde eine große Anzahl von NN-basierten Modellen (Neural Network) für die Untersuchung der Verarbeitung natürlicher Sprache vorgeschlagen. Diese NN-basierten Modelle verwenden häufig verteilte Darstellungen von Wörtern als Eingabe.

In diesem Artikel werde ich erklären "** Warum ist der verteilte Ausdruck von Wörtern für die Verarbeitung natürlicher Sprache wichtig? **". Der Erklärungsfluss besteht darin, zunächst kurz die verteilte Darstellung von Wörtern zu erklären und das Verständnis zu teilen. Als nächstes werde ich erklären, warum das Hauptthema, die verteilte Darstellung von Wörtern, für die Verarbeitung natürlicher Sprache wichtig ist. Abschließend werde ich die Probleme erläutern, mit denen verteilte Ausdrücke konfrontiert sind.

Was ist ein verteilter Ausdruck von Wörtern?

Hier geben wir eine kurze Erklärung zum Verständnis des ** verteilten Ausdrucks ** von Wörtern. Wir werden auch den ** One-Hot-Ausdruck ** von Wörtern zum Vergleich diskutieren, um ihre Vorteile zu veranschaulichen. Was den Ablauf der Geschichte angeht, werden wir nach der Erklärung des One-Hot-Ausdrucks und seiner Probleme mit der Erklärung des verteilten Ausdrucks fortfahren.

ein heißer Ausdruck

Der erste Weg, ein Wort als Vektor auszudrücken, ist der One-Hot-Ausdruck. Ein One-Hot-Ausdruck ist eine Methode, bei der nur ein Element 1 und die anderen Elemente 0 sind. Durch Einstellen von 1 oder 0 für jede Dimension wird angezeigt, ob es sich um das Wort handelt oder nicht.

Nehmen wir zum Beispiel an, der One-Hot-Ausdruck repräsentiert das Wort Python. Hier besteht das Vokabular aus einer Reihe von Wörtern aus 5 Wörtern (nlp, python, word, ruby, one-hot). Dann ist der Vektor, der Python darstellt, wie folgt. スクリーンショット 2017-03-03 15.18.11.png

Die One-Hot-Darstellung ist einfach, hat jedoch die Schwäche, dass Sie mit Operationen zwischen Vektoren keine aussagekräftigen Ergebnisse erzielen können. Nehmen wir zum Beispiel an, Sie nehmen das innere Produkt, um die Ähnlichkeit zwischen Wörtern zu berechnen. In dem One-Hot-Ausdruck haben verschiedene Wörter an verschiedenen Stellen Einsen und andere Elemente sind 0, sodass das Ergebnis der Aufnahme des inneren Produkts zwischen verschiedenen Wörtern 0 ist. Dies ist nicht das gewünschte Ergebnis. Da einem Wort eine Dimension zugewiesen ist, wird es mit zunehmender Anzahl von Vokabeln zu einer sehr hohen Dimension.

Verteilte Darstellung

Verteilte Darstellungen repräsentieren dagegen Wörter als niedrigdimensionale reelle Vektoren. Es wird oft in etwa 50 bis 300 Dimensionen ausgedrückt. Zum Beispiel können die zuvor erwähnten Wörter in einem verteilten Ausdruck wie folgt ausgedrückt werden. スクリーンショット 2017-03-03 15.46.50.png

Sie können das Problem des One-Hot-Ausdrucks lösen, indem Sie den verteilten Ausdruck verwenden. Beispielsweise können Sie die Ähnlichkeit zwischen Wörtern berechnen, indem Sie Operationen zwischen Vektoren ausführen. Betrachtet man den obigen Vektor, so ist die Ähnlichkeit zwischen Python und Ruby wahrscheinlich höher als die Ähnlichkeit zwischen Python und Wort. Auch wenn die Anzahl der Vokabeln zunimmt, ist es nicht erforderlich, die Anzahl der Dimensionen jedes Wortes zu erhöhen.

Warum ist der verteilte Ausdruck von Wörtern wichtig?

In diesem Abschnitt wird die Bedeutung der verteilten Darstellung von Wörtern bei der Verarbeitung natürlicher Sprache beschrieben. Was den Ablauf der Geschichte betrifft, werden wir, nachdem wir über die Eingabe für die Aufgabe der Verarbeitung natürlicher Sprache gesprochen haben, über die Verwendung des verteilten Ausdrucks als Eingabe sprechen. Und ich werde darüber sprechen, wie sich diese verteilte Darstellung auf die Ausführung von Aufgaben auswirkt.

Es gibt verschiedene Aufgaben in der Verarbeitung natürlicher Sprache, aber viele Aufgaben geben eine Wortfolge als Eingabe an. Geben Sie für die Dokumentklassifizierung eine Reihe von Wörtern ein, die im Dokument enthalten sind. Partielles Markieren ergibt eine getrennte Wortfolge, und die Eigenausdruckerkennung ergibt auch eine geteilte Wortfolge. Das Bild ist wie folgt. スクリーンショット 2017-03-07 21.36.34.png

In der modernen Verarbeitung natürlicher Sprache werden häufig neuronale Netze verwendet, aber Wortketten werden häufig als Eingabe angegeben. Es ist auch ein Wort, das in das traditionell verwendete RNN eingegeben werden muss, und es ist häufig der Fall, dass die Eingabe in das Modell unter Verwendung des CNN, die in letzter Zeit Aufmerksamkeit erregt hat, auch auf Wortebene eingegeben wird. Das Bild ist wie folgt.

Tatsächlich verwenden wir häufig verteilte Ausdrücke als Ausdrücke für Wörter, die diesen neuronalen Netzen gegeben werden [^ 1]. Es basiert auf der Erwartung, dass die Verwendung von Ausdrücken, die die Bedeutung von Wörtern als Eingabe besser erfassen, auch die Aufgabenleistung verbessert. Es ist auch möglich, eine verteilte Darstellung, die mit einer großen Menge unbeschrifteter Daten gelernt wurde, als Anfangswert des Netzwerks zu verwenden und sie mit einer kleinen Menge beschrifteter Daten abzustimmen.

Diese verteilte Darstellung ist wichtig, da sie die Leistung der Aufgabe beeinflusst. Es wurde auch berichtet, dass sich die Leistung im Vergleich zur Nichtverwendung einer verteilten Darstellung verbessert [2]. Wie Sie sehen, ist die verteilte Darstellung von Wörtern wichtig, da sie häufig als Eingabe für viele Aufgaben verwendet wird und einen erheblichen Einfluss auf die Leistung hat.

Herausforderungen des verteilten Ausdrucks von Wörtern

Es ist nicht der Fall, dass die verteilte Darstellung von Wörtern eine Silberkugel in der Verarbeitung natürlicher Sprache ist. Aufgrund vieler Studien ist bekannt, dass es verschiedene Probleme gibt. Hier werde ich zwei davon vorstellen.

Problem 1: Die Leistung verbessert sich nicht wie erwartet für tatsächliche Aufgaben

Das erste Problem, das behoben werden muss, ist, dass selbst gute Ergebnisse im Bewertungsdatensatz die Leistung nicht mehr verbessern, als Sie es für eine tatsächliche Aufgabe erwarten würden (z. B. die Klassifizierung von Dokumenten). Erstens wird die Bewertung verteilter Wortausdrücke häufig anhand des Korrelationsgrades mit einem vom Menschen erstellten Bewertungssatz der Wortähnlichkeit bewertet (Schnabel, Tobias, et al., 2015). Mit anderen Worten, die Verwendung der verteilten Darstellung, die aus einem Modell erhalten wurde, das Ergebnisse liefern kann, die mit der menschlichen Bewertung für tatsächliche Aufgaben korrelieren, verbessert die Leistung nicht.

Der Grund ist, dass die meisten Bewertungsdatensätze nicht zwischen Wortähnlichkeit und Relevanz unterscheiden. Wortähnlichkeit und Relevanz ist zum Beispiel, dass (männlich, Mann) ähnlich sind und (Computer, Tastatur) verwandt, aber nicht ähnlich sind. Es wurde berichtet, dass die unterscheidenden Datensätze eine positive Leistungskorrelation mit der tatsächlichen Aufgabe aufweisen (Chiu, Billy, Anna Korhonen und Sampo Pyysalo, 2016).

Infolgedessen wird derzeit versucht, Bewertungsdatensätze zu erstellen, die mit den tatsächlichen Aufgaben korrelieren (Oded Avraham, Yoav Goldberg, 2016). Hier versuchen wir, zwei Probleme zu lösen, die im vorhandenen Datensatz vorhanden sind (Wortähnlichkeit und Relevanz werden nicht unterschieden, und die Annotationsbewertung variiert zwischen den Bewertern).

Zusätzlich zur Erstellung von Bewertungsdatensätzen wurden Untersuchungen durchgeführt, um verteilte Darstellungen zu bewerten, damit tatsächliche Aufgaben leicht bewertet werden können (Nayak, Neha, Gabor Angeli und Christopher D. Manning, 2016). Es wird erwartet, dass dies die Überprüfung erleichtert, ob der erlernte verteilte Ausdruck für Aufgaben wirksam ist, die der Aufgabe nahe kommen, die Sie tatsächlich ausführen möchten.

Persönlich hoffe ich, dass durch die Auswertung mit neuen Datensätzen und Aufgaben das zuvor vergrabene Modell überprüft wird.

Problem 2: Berücksichtigt keine Wortmehrdeutigkeit

Das zweite Problem ist, dass derzeit verteilte Ausdrücke die Wortmehrdeutigkeit nicht berücksichtigen. Wörter haben viele Bedeutungen. Beispielsweise hat das Wort "Bank" zusätzlich zur Bedeutung von "Bank" die Bedeutung von "Bank". Auf diese Weise gibt es eine Grenze für das Ausdrücken mit einem Vektor, ohne die Mehrdeutigkeit von Wörtern zu berücksichtigen.

Um dieses Problem zu lösen, wurden verschiedene Methoden zum Lernen von Ausdrücken für jede Bedeutung vorgeschlagen [5] [6] [7] [8]. Bei SENSE EMBED lernen wir Ausdrücke für jede Bedeutung, indem wir die Mehrdeutigkeit der Wortbedeutung beseitigen. Infolge des Lernens von Ausdrücken für jede Wortbedeutung wird berichtet, dass sich die Leistung bei der Bewertung der Wortähnlichkeit verbessert hat.

Für diejenigen, die mehr wissen wollen

Das folgende Repository enthält Informationen zu verteilten Darstellungen von Wörtern und Sätzen, gelernten Vektoren und Python-Implementierungen. awesome-embedding-models

Es ist ermutigend, wenn Sie einen Stern m (_ _) m hinzufügen können

abschließend

Der verteilte Ausdruck von Wörtern ist ein interessantes Feld, das aktiv untersucht wird. Ich hoffe, dieser Artikel hilft Ihnen zu verstehen.

Der folgende Twitter-Account bietet leicht verständliche Informationen zu den neuesten Artikeln zu ** Maschinelles Lernen / Verarbeitung natürlicher Sprachen / Computer Vision **. Wir warten darauf, dass Sie uns folgen, da wir interessante Inhalte für diejenigen liefern, die diesen Artikel lesen. @arXivTimes

Ich twittere auch Informationen über maschinelles Lernen und die Verarbeitung natürlicher Sprachen in meinem Konto, daher würde ich gerne von allen hören, die sich für dieses Gebiet interessieren. @Hironsan

Hinweis

[^ 1]: Tatsächlich wird es nach Eingabe eines One-Hot-Ausdrucks in einen verteilten Ausdruck konvertiert.

Referenzmaterial

  1. Mikolov, Tomas, et al. "Efficient estimation of word representations in vector space." arXiv preprint arXiv:1301.3781 (2013).
  2. Pennington, Jeffrey, Richard Socher, and Christopher D. Manning. "Glove: Global Vectors for Word Representation." EMNLP. Vol. 14. 2014.
  3. Schnabel, Tobias, et al. "Evaluation methods for unsupervised word embeddings." EMNLP. 2015.
  4. Chiu, Billy, Anna Korhonen, and Sampo Pyysalo. "Intrinsic evaluation of word vectors fails to predict extrinsic performance." ACL 2016 (2016): 1.
  5. Oded Avraham, Yoav Goldberg. "Improving Reliability of Word Similarity Evaluation by Redesigning Annotation Task and Performance Measure." arXiv preprint arXiv:1611.03641 (2016).
  6. Nayak, Neha, Gabor Angeli, and Christopher D. Manning. "Evaluating Word Embeddings Using a Representative Suite of Practical Tasks." ACL 2016 (2016): 19.
  7. Trask, Andrew, Phil Michalak, and John Liu. "sense2vec-A fast and accurate method for word sense disambiguation in neural word embeddings." arXiv preprint arXiv:1511.06388 (2015).
  8. Iacobacci, I., Pilehvar, M. T., & Navigli, R. (2015). SensEmbed: Learning Sense Embeddings for Word and Relational Similarity. In ACL (1) (pp. 95-105).
  9. Reisinger, Joseph, and Raymond J. Mooney. "Multi-prototype vector-space models of word meaning." Human Language Technologies: The 2010 Annual Conference of the North American Chapter of the Association for Computational Linguistics. Association for Computational Linguistics, 2010.
  10. Huang, Eric H., et al. "Improving word representations via global context and multiple word prototypes." Proceedings of the 50th Annual Meeting of the Association for Computational Linguistics: Long Papers-Volume 1. Association for Computational Linguistics, 2012.

Recommended Posts

Warum ist der verteilte Ausdruck von Wörtern für die Verarbeitung natürlicher Sprache wichtig?
Verarbeitung natürlicher Sprache für vielbeschäftigte Menschen
Verarbeiten Sie den Namen der Yugioh-Karte in natürlicher Sprache - Yugiou Data Science 2. NLP
Unerträgliche Aufmerksamkeitsmangel bei der Verarbeitung natürlicher Sprache
Richten Sie eine Entwicklungsumgebung für die Verarbeitung natürlicher Sprache ein
Python: Verarbeitung natürlicher Sprache
RNN_LSTM2 Verarbeitung natürlicher Sprache
Leistungsüberprüfung der Datenvorverarbeitung in der Verarbeitung natürlicher Sprache
Erstellen einer Umgebung für die Verarbeitung natürlicher Sprache mit Python
Überblick über die Verarbeitung natürlicher Sprache und ihre Datenvorverarbeitung
Arten der Vorverarbeitung in der Verarbeitung natürlicher Sprache und ihre Leistungsfähigkeit
■ [Google Colaboratory] Vorverarbeitung der Verarbeitung natürlicher Sprache & Janome
Welche Methode eignet sich am besten für die asynchrone Verarbeitung des TCP-Servers?
Die Bildanzeigefunktion von iTerm ist praktisch bei der Verarbeitung von Bildern.
Verarbeitung natürlicher Sprache 1 Morphologische Analyse
Python: Vektordarstellung in natürlicher Sprache
Verarbeitung natürlicher Sprache 2 Wortähnlichkeit
100 Sprachverarbeitung Knock-96 (unter Verwendung von Gensim): Extraktion des Vektors in Bezug auf den Ländernamen
Dockerfile mit den notwendigen Bibliotheken für die Verarbeitung natürlicher Sprache mit Python
Lose Artikel für diejenigen, die mit der Verarbeitung natürlicher Sprache beginnen möchten
[Word2vec] Lassen Sie uns das Ergebnis der Verarbeitung von Unternehmensbewertungen in natürlicher Sprache visualisieren
Studieren Sie die Verarbeitung natürlicher Sprache mit Kikagaku
100 Klicks in der Verarbeitung natürlicher Sprache Kapitel 4 Kommentar
[Verarbeitung natürlicher Sprache] Vorverarbeitung mit Japanisch
Künstliche Sprache Logivan und Verarbeitung natürlicher Sprache (Verarbeitung künstlicher Sprache)
100 Sprachverarbeitung Knock-59: Analyse der S-Formel
100 Sprachverarbeitung klopfen 2020 "für Google Colaboratory"
TensorFlow Tutorial-Vektordarstellung von Wörtern (Übersetzung)
Vorbereitung zum Starten der Verarbeitung natürlicher Sprache
Installationszusammenfassung des Analysators für die Verarbeitung natürlicher Sprache
Zusammenfassung der Mehrprozessverarbeitung der Skriptsprache
Einfaches Auffüllen von Daten, die in der Verarbeitung natürlicher Sprache verwendet werden können
Holen Sie sich mit fastText auf Facebook eine verteilte Darstellung von Wörtern in Fast
Lernen Sie die Grundlagen der Dokumentklassifizierung durch Verarbeitung natürlicher Sprache, Themenmodell
Warum wird Kreuzentropie für die Zielfunktion des Klassifizierungsproblems verwendet?