Nehmen wir an, du bist alleine in einem Raum.

Du siehst dich um. Der Raum hat keine Fenster oder Türen, nur einen kleinen Schlitz in einer der Wände und Regale mit Büchern. Sie sind mit seltsamen Symbolen gefüllt und werden von englischen Anweisungen begleitet, die dir helfen, sie in neue, ebenso seltsame umzuwandeln.

Schließlich fällt ein Stück Papier durch den Schlitz. Es enthält eine Reihe von Symbolen, die du nicht verstehst, ähnlich denen, die du in den Büchern gefunden hast. Du durchsuchst alle Seiten aller Bücher, bis du die passenden Zeichen gefunden hast, und befolgst die Anweisungen, indem du unter der ursprünglichen Nachricht angibst, was du schreiben sollst, und das Papier durch den Schlitz zurückschiebst, was du auch tust.

Das sind keine bedeutungslosen Symbole, die auf ein Stück Papier gekritzelt sind. Auf der anderen Seite des Raums sind chinesische Muttersprachler, die gerade eine perfekte Antwort auf die von ihnen gestellte Frage erhalten haben. Sie kommen natürlich zu dem Schluss, dass sich ein chinesischer Muttersprachler im anderen Raum befindet. Nur wir wissen, dass dies nicht der Fall ist.

Dies ist “The Chinese Room”, ein viel diskutiertes Gedankenexperiment, das der Philosoph John Searle in 1980 vorgeschlagen hat. Im Experiment sind die Bücher keine chinesisch-englischen Wörterbücher – zu keinem Zeitpunkt wird versucht, die Bedeutung der Symbole zu erklären. Man bekommt lediglich Anweisungen, wie man eine Eingabe vornehmen kann, die Zeichen basierend auf ihren Beziehungen zueinander zu manipulieren und eine Ausgabe bereitstellen kann. Die Bücher wirken wie ein Computerprogramm.

Searle argumentierte, dass der Turing-Test kein verlässlicher Test für die Maschinenintelligenz sei. Jedes effektive KI-Programm könnte schließlich die Regeln lernen, die für eine bestimmte Sprache gelten, und die Illusion vermitteln, dass es das gleiche Verständnis hat wie ein Muttersprachler.

Diese Wechselwirkungen zwischen Computern und menschlichen Sprachen stehen im Mittelpunkt des Gebiets der Verarbeitung natürlicher Sprache (Natural Language Processing, NLP).  Spracherkennung, Textzusammenfassung, Stimmungsanalyse, maschinelle Übersetzung – NLP ist überall. Und es hat seit den 80er Jahren massive Verbesserungen erlebt. Obwohl es immer noch genug humorvolle maschinelle Übersetzungen gibt, haben wir seit den Tagen von BabelFish einen langen Weg zurückgelegt. Wir – insbesondere ich, ein in Lissabon lebender einsprachiger Yankee – greifen selbstverständlich auf schnelle, recht genaue Übersetzungen zu.  

Hast du dich jemals gefragt, wie Computerprogramme Wörter verarbeiten können?

Denn selbst die einfachsten Sätze können semantische Minenfelder sein, übersät mit Konnotationen und grammatikalischen Nuancen, die nur Muttersprachler sofort verstehen können. Nehmen wir zum Beispiel den folgenden Satz: „Yesterday, I went to the bank and ran into my friend.“ Wie könnte ein Computer dies ins Französische übersetzen? Der gröbste Weg wäre vielleicht ein Wort-für-Wort-Ersatz durch ein zweisprachiges Wörterbuch. Wir würden wahrscheinlich mit der Übersetzung “Hier, je allé à le banque et couru dans mon ami” enden. Für den Anfang gibt es Probleme der Verbkonjugation und der Übereinstimmung von Artikel und Nomen (“le banque” sollte “la banque” sein). Aber wenn wir wirklich so übersetzen wollten, könnten wir ein Regelwerk entwickeln, das sich um diese Grammatik-Fehler kümmert. Nach der Implementierung von ihnen, könnten wir mit der folgenden Übersetzung enden: „Hier, je suis allé à la banque et j’ai couru dans mon ami.“ Auf jeden Fall eine Verbesserung – aber in dieser Version, attackiere ich meinen Freund immer noch wie ein Wilder.

Zum Zeitpunkt des Schreibens gibt Google Translate – das nicht gerade für eine perfekte Übersetzung bekannt ist – Folgendes aus: „Hier, je suis allé à la banque et suis tombé sur mon ami.“ Es übersetzt den idiomatischen Ausdruck richtig, der bedeutet, jemanden unerwartet zu treffen. Es kann nicht nur am Wort-für-Wort-Austausch liegen.

Was ist hier also los? Zuerst sollten wir uns überlegen, wie Menschen lernen, verbale Mehrdeutigkeiten zu klären. Wenn wir als Kinder genügend Beispiele kennen, beginnen wir den Wörtern einen semantischen Wert zuzuweisen und diese semantischen Werte bei gegebenen Wortkombinationen zu abstrahieren und zu extrapolieren. Einfacher ausgedrückt verstehen wir, ohne explizit unterrichtet zu werden, was Wörter bedeuten und wie sie von ihrem Kontext beeinflusst werden. In Anlehnung an das frühere Beispiel von Englisch zu Französisch, besteht unser erster Instinkt darin, zu denken, dass wir unseren Freund getroffen haben und nicht, dass wir mit ihm kollidiert sind. Wir haben Erfahrungen mit der physischen Welt und ein Leben lang sprachlichen Input, um die Dinge in einen Kontext zu bringen.

Was bedeuten Wörter und Phrasen für einen Computer, der nur Nullen und Einsen verstehen kann?

Obwohl Computer Sprache im menschlichen Sinne nicht wirklich „verstehen“ können, unterscheidet sich das Erlernen nützlicher Informationen aus Text nicht allzu sehr von unserer eigenen Erfahrung mit dem Erlernen von Sprache. Zeige einem Computer genügend Beispiele und er wird anfangen Muster zu erkennen. Aber was ist der Ersatz für menschliches Verständnis? Worteinbettungen, die grundlegenden Einheiten jeder natürlichen Sprachverarbeitungsaufgabe.

Eine Worteinbettung ist im Wesentlichen eine Folge von Zahlen – ein Vektor -, der Informationen über die Bedeutung des Wortes speichert.

Mit der Erstellung von Worteinbettungen werden zwei Ziele verfolgt: Die Verbesserung anderer NLP-Aufgaben, beispielsweise der maschinellen Übersetzung, oder die Analyse von Ähnlichkeiten zwischen Wörtern und Wortgruppen.

Aufgrund einer Reihe von Durchbrüchen bei Worteinbettungsmethoden wurde 2018 als das goldene Zeitalter von NLP gefeiert. Diese neuen Methoden führten zu einer erheblichen Verbesserung unserer Fähigkeit, Sprache zu modellieren, was sich bald in Konsumgütern und Unternehmen gleichermaßen bemerkbar machen durfte.

Schauen wir uns ein einfaches Beispiel an, um ein Gefühl dafür zu bekommen, was eine Worteinbettung ist.

Angenommen, wir möchten zweidimensionale Worteinbettungen (d. H., Jedes Wort wird durch einen Satz von zwei Zahlen dargestellt) für bestimmte Tiere erstellen: Nilpferd, Schlange, Schmetterling, Schnabeltier. Angenommen, unsere beiden Dimensionen repräsentieren zwei Merkmale, die Tiere in unterschiedlichem Maße aufweisen können: “Gefährlichkeit” und “Pelzartigkeit”.

Bei diesen Tieren könnte es sich um die folgenden falschen Worteinbettungen handeln:

TierGefährlichPelzig
Nilpferd0.850.13
Schlange0.88-0.97
Schmetterling-0.91-0.86
Schnabeltier0.610.79

In diesem Beispiel wird „Nilpferd“ durch den Vektor [0,85, 0,13], die Schlange durch [0,88, -0,97] usw. dargestellt. Wir haben nun eine numerische Darstellung jedes dieser Tiere in Bezug auf diese beiden Merkmale, wenn auch stark vereinfacht. Mit diesen Vektoren können alle möglichen mathematischen Operationen durchgeführt werden, um neue Informationen zu erhalten.

Ein häufig zitiertes Beispiel, das die Leistungsfähigkeit von Worteinbettungsoperationen hervorhebt, ist KönigMann + Frau = Königin. In diesem Diagramm könnten die blauen Pfeile für das Geschlecht und die orangefarbenen Pfeile für das Königshaus stehen.

Eine solche Operation ist der Vergleich. Wie ähnlich ist ein Wort einem anderen? In unserem Beispiel mit den Tieren können wir uns die numerische Darstellung von “Nilpferd”, “Schlange”, “Schmetterling” und “Schnabeltier” in einem 2D-Diagramm vorstellen, als eine Linie, die sich vom Ursprung aus erstreckt und durch die, durch die Zahlen gekennzeichneten Punkte verläuft. Die Ähnlichkeit dieser Wörter kann daher durch den Winkel zwischen ihren Vektoren bestimmt werden (wir nennen dies Kosinusähnlichkeit). Wörter, die durch einen Winkel von 90 ° voneinander getrennt sind, haben im Wesentlichen keine semantische Beziehung, während Wörter, die durch einen Winkel von 180 ° voneinander getrennt sind, genaue Gegensätze sind.

In diesem Beispiel beträgt der Abstand zwischen Nilpferd und Schnabeltier etwa 16 °, während der Abstand zwischen Nilpferd und Schmetterling 104 ° beträgt.

Natürlich ist dies nur ein unterhaltsames, hypothetisches Beispiel, das lediglich hervorhebt, was Worteinbettungen sind, und zu beschreiben beginnt, wie sie nützlich sein könnten. In der Praxis werden viel höherdimensionale Vektoren verwendet (typischerweise in der Größenordnung von Hunderten), und der Versuch, diesen Dimensionen semantische Felder wie “gefährlich” und “pelzig” zuzuweisen, wäre ebenso schwierig wie unfair, da der Algorithmus nicht wirklich die Bedeutung des Wortes kennt . Darüber hinaus sind sehr große Korpora in der Größenordnung von zig Millionen Wörtern erforderlich, um zufriedenstellende Worteinbettungen “zu lernen”.

Zunächst müssen wir jedoch ein Gebiet der Linguistik kurz ansprechen, das als Distributionelle Semantik bezeichnet wird.

Worteinbettungen erfassen effizient etwas, das als “Verteilungshypothese” bezeichnet wird. Wie der britische Linguist John Rupert Firth in seinem Werk ” A synopsis of linguistic theory” von 1957 zusammenfasste:

“Sie werden ein Wort an seiner Gesellschaft erkennen.”

Das Feld der Distributionellen Semantik setzt voraus, dass Wörter und Phrasen, die in ähnlichen Kontexten vorkommen – ähnliche Verteilungen – ähnliche Bedeutungen haben.

Nehmen wir zum Beispiel an, wir haben einen Korpus von mehreren Sätzen:

  • Er streichelte den flauschigen Hund.
  • Er streichelte die flauschige Katze.
  • Er spielte Fangen mit dem Hund.

Für einen Menschen ist sofort ersichtlich, dass Katzen und Hunde verwandt sind (beide Haustiere), während „streicheln“ und „Fangen spielen“ verwandt sind (beide Haustieraktivitäten). Aber es ist auch sofort klar, dass man keine Katze zum Fangen spielen bringen kann, auch wenn es nicht an Versuchen mangelt!

Computational Word Embedding-Methoden machen sich diese Idee zunutze: Der Kontext eines Wortes kann uns dabei helfen, die Bedeutung des Wortes zu ermitteln, wenn wir eine ausreichende Anzahl und Vielfalt von Beispielen gesehen haben.

Damit kommen wir schließlich zu den eigentlichen Algorithmen zur Berechnung von Worteinbettungen, wie beispielsweise Word2Vec, das Tomas Mikolov und seine Kollegen bei Google 2013 vorgestellt haben. Die Grundidee hinter dem Algorithmus ist es, für jedes Wort benachbarte Begriffe vorherzusagen, wobei viel Text als Trainingsdaten verwendet wird.

Kehren wir zu einer kleinen Abwandlung unseres ursprünglichen Satzes zurück: “Yesterday, I went to the bank and I read the newspaper”

Mit Word2Vec wollen wir zuerst ein Kontextfenster von Wörtern definieren – sagen wir zwei. Also werden wir für jedes Wort in unseren Trainingsdaten die zwei Wörter davor und die zwei Wörter danach betrachten und Paare mit dem aktuellen Wort und jedem der vier Kontextwörter erstellen. Das mittlere Wort ist die Eingabe und das Kontextwort ist die Ausgabe, wobei wir das Eingabewort verwenden möchten, um das Ausgabewort vorherzusagen.

Wenn unser zentrales Wort beispielsweise “bank” lautet, lauten die Trainingspaare: (bank, to), (bank, the), (bank, and), (bank, I).

Dieser Prozess des Erzeugens von Paaren wird für jedes Wort im Satz wiederholt und das Verwenden des Eingabeworts zum Vorhersagen des Ausgabeworts jedes Paares ist das, was schließlich die Worteinbettungen erzeugt.

Wenn du dir vorstellen kannst, dass wir Millionen von Textzeilen trainieren müssen, treten in diesen Beispielen häufiger Paarungen auf, wodurch das Modell diese Kombinationen mit größerer Wahrscheinlichkeit lernt. Sogar in diesem einen Satz können wir sehen, dass (bank, the) / (newspaper, the) und (went, I) / (read, I) ähnliche Paare sind, da sie den Paradigmen Nomen-Artikel, beziehungsweise Verb-Subjekt-Pronomen folgen.

Der nächste Schritt besteht darin, diese Wörter in Verteilungsvektoren umzuwandeln, wie im Beispiel mit den Tieren, bei denen die Zahlen eine Bedeutung in Bezug zueinander haben.

Dazu durchlaufen wir jedes Trainingspaar, das wir erstellt haben, und wenden das folgende Verfahren an. Wir initialisieren zuerst die Einbettung des Eingabeworts als einen Vektor von Zufallszahlen. Dann wird eine Reihe mathematischer Funktionen auf den Vektor angewendet. Das Ergebnis dieser Operationen ist ein weiterer Vektor, der wiederum ein Wort darstellt, das wir als Ausgangswort unseres Trainingspaares verwenden möchten. Wenn das vorhergesagte Wort nicht unser Ausgangswort ist, passen wir die Zahlen des eingebetteten Eingangsworts leicht an, damit das Ergebnis der Operationen näher am Vektor des Ausgangsworts liegt.

In diesem Beispiel ist unser Trainingspaar (bank, the). Nachdem wir die Ausgabefunktionen auf die Worteinbettung für “Bank” (in Orange) angewendet haben, überprüfen wir den vorhergesagten Wortvektor (grün), um festzustellen, ob er dem Zielwort “the” entspricht. Zuletzt ändern wir die orangefarbene Einbettung von “Bank”, so dass der grüne vorhergesagte Vektor näher an “the” ist.

Wir aktualisieren diese Worteinbettungen, um die Wahrscheinlichkeit zu maximieren, dass bei einem gegebenen Eingabewort das erzeugte Ausgabewort häufig als Kontextwort in den Daten erscheint. Ähnliche Wörter haben ähnliche Kontexte und daher ähnliche Worteinbettungen.

Um die Robustheit dieser Modelle hervorzuheben, kannst du hier einige Beispiele aus dem Word2Vec vorstellenden Originalblatt finden .

BeziehungBeispiel 1Beispiel 2Beispiel 3
Frankreich: ParisItalien: RomJapan: TokioFlorida: Tallahassee
Einstein: WissenschaftlerMessi: MittelfeldspielerMozart: GeigerPicasso: Maler
Microsoft: BallmerGoogle: YahooIBM: McNealyApple: Jobs

Hinweis: Wie wir sehen können, ist die Genauigkeit ziemlich gut, obwohl es eindeutig viel Raum für weitere Verbesserungen gibt.

Durch Worteinbettungen können wir das Modell bitten, Analogien wie „Frankreich verhält sich zu Paris wie Italien zu ___? “ auszuführen. Der Computer versteht zwar immer noch nicht, aber es ist, als ob er weiß, dass Rom die Hauptstadt Italiens ist und dass Picasso ein Maler war. Basierend auf der Verteilungshypothese würde der Name „Steve Jobs“ in einem technischen Artikel als „Steve Jobs“ übersetzt, in einem Wirtschaftsbericht würde „jobs“ jedoch als „Beschäftigungen“ übersetzt. Es würde feststellen, dass ich meinen Freund nicht am Boden festhielt, angegriffen habe oder kollidiert bin; Ich bin ihm nur bei der Bank begegnet.

Mit dieser Art der Worteinbettung haben wir erstaunliche Ergebnisse bei verschiedenen Aufgaben erzielt, z.B. bei der Stimmungsanalyse, der Texterstellung und vor allem der maschinellen Übersetzung bei Unbabel,.

Dennoch ist das Sprachproblem der KI nicht gelöst – wir sind weit davon entfernt, dass Computer ein echtes natürliches Sprachverständnis erreichen. Sprache ist eine von Natur aus menschliche Aktivität, die unsere Intelligenz bestimmt. Es wird eine Mischung aus Abstraktion und Assoziation gebraucht, Interaktion mit der physischen Welt um uns herum und vielleicht ein bisschen menschlichem Einfallsreichtum, etwas, was wir in reichlichem Maße haben, aber es bei KI fehlt.

Auf der Suche nach wirklich intelligenten Maschinen kann man sich kaum ein komplexes KI-System vorstellen, dessen Kern keine Sprache ist. Aber trotz der Dinge die einige Unternehmen und Schlagzeilen dich glauben machen wollen, wird das nicht so schnell passieren.

Quellen:

Herbelot, A. Verteilungssemantik: eine leichte Einführung. https://aurelieherbelot.net/research/distributional-semantics-intro/

McCormick, C. (2016, 19. April). Word2Vec Tutorial – Das Skip-Gram-Modell. Abgerufen von http://www.mccormickml.com

Mikolov, T. et al. Effiziente Schätzung von Wortrepräsentationen im Vektorraum. 2013. https://arxiv.org/pdf/1301.3781.pdf. Mikolov, T. et al. Verteilte Darstellungen von Wörtern und Phrasen und deren Zusammensetzung. 2013. https://arxiv.org/pdf/1301.3781.pdf.