Heute möchten wir euch eine Einführung in das Thema der Sprachmodellierung geben, eines der wichtigsten
Themen bei der Verarbeitung natürlicher Sprache. Das Ziel der Sprachmodellierung
ist es, einem Satz eine Wahrscheinlichkeit zuzuordnen. Aber warum würden wir einem Satz ein Wahrscheinlichkeit zuordnen wollen?
Dies kommt bei allen möglichen Anwendungen vor: Bei der maschinellen Übersetzung,
beispielsweise, möchten wir in der Lage sein, zwischen guten und schlechten Übersetzungen
anhand ihrer Übersetzungen zu unterscheiden. "High winds tonite" könnte eine bessere
Übersetzung als "large winds tonite" sein, da "high" und "wind" im Englischen besser zusammen passen.
Bei der Rechtschreibkorrektur sehen wir eine Formulierung wie "fünfzehn Minuette von meinem Haus (entfernt)". Das wird wohl
eher eine Falschschreibung von "Minuten" sein. Ein Hinweis, der uns zu entscheiden ermöglicht,
dass "fünfzehn Minuten von" eine viel wahrscheinlichere Wortgruppe als "fünfzehn Minuette von" ist.
Und bei der Spracherkennung ist eine Wortgruppe wie "I saw a Van" (Ich sah einen Van), viel wahrscheinlicher als
eine Phrase, die phonetisch ähnlich klingt, wie "eyes awe of an".
Es ist viel weniger wahrscheinlich, dass diese Wörter in dieser Reihenfolge auftreten. Und es stellt sich heraus,
dass Sprachmodellierung auch bei der Textzusammenfassung, dem Question Answering, eigentlich überall eine Rolle spielt.
Das Ziel eines Sprachmodells ist es, die Wahrscheinlichkeit von einem Satz
oder einer Folge von Wörtern zu berechnen. Für eine Sequenz von Wörtern w1 bis wn
berechnen wie deren Wahrscheinlichkeit P(W), und wir benutzen ein großes W
um die Sequenz w1 bis wn zu bezeichnen. Dies ist verwandt mit der Aufgabe,
die Wahrscheinlichkeit eines bevorstehenden Wortes zu berechnen, also P(w5) bei gegebenem w1 bis w4. Dies steht
in einer engen Verbindung zu der Aufgabe, P(w1, w2, w3, w4, w5) zu berechnen. Ein Modell, das eines dieser beiden Dinge berechnet,
entweder P(W) - wobei groß W, eine Zeichenfolge bezeichnet - die gemeinsame Wahrscheinlichkeit der gesamten
Zeichenfolge, oder die bedingte Wahrscheinlichkeit, dass das letzte Wort bei den gegebenen vorhergehenden Worte auftritt,
ein solches Model nenne wir ein Sprachmodell. Jetzt könnte es besser sein, dies
eine 'Grammatik' zu nennen. Ich meine, im Prinzip sagt uns dies etwas darüber,
wie gut diese Worte zusammen passen. Und wir verwenden normalerweise eine Wortgrammatik dafür,
aber es stellt sich heraus, dass das Wort Sprachmodell - oft sehen wir dafür die Abkürzung LM -
der Standard ist, und daher halten wir uns daran. Also, wie berechnen wir diese gemeinsame Wahrscheinlichkeit?
Sagen wir, wir wollen die Wahrscheinlichkeit, der Formulierung, "das Wasser ist so transparent, dass",
diesem kleinen Teil eines Satzes. Und die Intuition, wie die
Sprachmodellierung funktioniert, ist dass Sie sich auf die Kettenregel der Wahrscheinlichkeit verlassen.
Und nur um Sie an die Kettenregel der Wahrscheinlichkeitsrechnung zu erinnern: Denken wir
an die Definition der bedingten Wahrscheinlichkeit, also P von A gegeben B
gleich P von A, B geteilt durch P von B. Und wir können dies umschreiben, so dass P von A
gegeben B mal P von B gleich P von A, B oder andersherum
P von A, B entspricht P von A gegeben B - versicher dich, dass es gegeben ist - mal P von B.
Und können wird dies weiter verallgemeinern für mehr Variablen, also die gemeinsame Wahrscheinlichkeit
für eine ganze Sequenz A, B, C, D ist die Wahrscheinlichkeit von A mal die Wahrscheinlichkeit von B gegeben A
[usw.] Also das ist die Kettenregel.
In einer allgemeineren Form der Kettenregel wie wir sie hier haben, also der gemeinsamen Wahrscheinlichkeit
von einer beliebigen Sequenz von Variablen, ist dies die Wahrscheinlichkeit der ersten mal die
zweite bedingt durch die erste mal die dritte bedingt durch die erste und zweite usw.
ersten beiden, bis der letzte konditioniert auf die ersten n minus eins.
Okay, die Kettenregel. Die Kettenregel kann angewendet werden, um die gemeinsame Wahrscheinlichkeit von Wörtern
in einem Satz zu berechnen. Also angenommen, wir haben unseren Satz, "its water is so transparent".
Nach der Kettenregel ist die Wahrscheinlichkeit dieser Sequenz
die Wahrscheinlichkeit von "its" mal die Wahrscheinlichkeit von "water" gegeben "its" mal die Wahrscheinlichkeit
von "is" gegeben "its water" mal die Wahrscheinlichkeit von "so" gegeben "its water is" und
schließlich mal die Wahrscheinlichkeit von "transparent" gegeben "its water is so".
Oder formeller ausgedrückt, ist die gemeinsame Wahrscheinlichkeit einer Folge von Wörtern das
Produkt über alle i der Wahrscheinlichkeit jedes Worts gegeben den Teil des Satz bis zu diesem Wort.
Wie können wir diese Wahrscheinlichkeiten schätzen? Könnten wir einfach zählen und
teilen? Wir berechnen oft Wahrscheinlichkeiten durch zählen und teilen. Also, was die Wahrscheinlichkeit
von "the" angesichts "its water is so transparent that" angeht, könnten wir einfach zählen, wie viele Male
"its water is so transparent that the" auftritt, und das durch die Anzahl der Vorkommnisse von
"its water is so transparent that" teilen, also dies durch dies teilen, und, und so eine Wahrscheinlichkeit erhalten.
Wir können das nicht tun. Und der Grund, warum wir es nicht tun können, ist dass es einfach
viel zu viele mögliche Sätze gibt, um diese jemals schätzen zu können. Es ist unmöglich, genug Daten
zu bekommen, um die Anzahl aller möglichen Sätze des Englischen sehen zu können.
Was wir stattdessen tun, ist, dass wir eine vereinfachende Annahme - genannt die Markov-Annahme - geltend machen,
die nach Andrei Markow benannt wurde. Und der Markov-Annahme zufolge schätzen wir die
Wahrscheinlichkeit von "the" gegeben "its water is so transparent that", indem wir stattdessen nur
die Wahrscheinlichkeit des Wortes "the" berechnen, gegeben das Wort "that", also dem letzten Wort
"that" in der Sequenz. Oder vielleicht berechnen wir die Wahrscheinlichkeit von "the" gegeben
"its water is so transparent that" nur anhand der letzten beiden Worte also "the" gegeben
"transparent that". Das ist die Markov-Annahme. Lassen Sie uns nur das vorhergehende
oder vielleicht ein paar vorhergehende Worte anschauen, statt des gesamten Kontextes.
Formeller besagt die Markov-Annahme, dass die Wahrscheinlichkeit für eine Folge von Wörtern dem
Produkt der bedingten Wahrscheinlichkeiten für jedes Wort entspricht,
gegeben eine Sequenz der letzten paar vorhergegangene Wörter dieses Wortes. Mit anderen Worten, in dem Produkt
alle Wahrscheinlichkeiten die wir miteinander nach der Kettenregel multiplizieren, schätzen wir die
Wahrscheinlichkeit der wi, gegeben die gesamte vorhergehende Sequenz von eins bis i minus eins, durch eine einfacher
zu berechnende Wahrscheinlichkeit wi, für die nur die letzten paar Worte gegeben sind. Der einfachste Fall eines
Markov-Modells ist das Unigramm-Modell. Im Unigramm-Modell schätzen wir einfach
die Wahrscheinlichkeit für eine ganze Sequenz von Wörtern durch das Produkt von Wahrscheinlichkeiten
einzelner Wörter, die Unigramme, und wenn wir Sätze erzeugen würden, indem wir Wörter nach dem Zufallsprinzip auswählen würden,
dann können Sie sehen dass es wie ein Wortsalat aussehen würde. Hier also einige automatisch
generierte Sätze, generiert von Dan Klein, und Sie können sehen, das Wort "futures", das Wort "an",
das Wort "of", das Wort "futures", das sieht überhaupt nicht wie ein Satz aus. Es ist nur eine zufällige
Folge von Wörtern, "thrift, did, eighty, said". Das ist die Eigenschaft eines Unigramm-Models.
Worte sind in diesem Modell unabhängig. Etwas intelligenter ist ein
Bigramm-Model, bei dem jedes Wort durch ein einzelnes vorhergehendes Wort bedingt wird. Also noch einmal, wir
schätzen die Wahrscheinlichkeit eines Wortes, dass auf eine gegebene Sequenz vom Anfang bis zum vorherigen Wort folgt,
nur indem wir das vorherige Wort betrachten. Wenn wir dies nun also verwenden, um zufällige Sätze
aus einem Bigramm-Modell zu generieren, dann sehen die Sätze schon ein wenig mehr aus wie
Englisch. Klar, etwas ist daran noch falsch. "outside", "new", "car",
nun, "new car" sieht ganz gut aus. "car parking" ist ziemlich gut. "parking lot" (Parkplatz). Aber zusammen,
"outside new car parking lot of the agreement reached", das ist kein Englisch.
Selbst mit dem Bigramm-Modell vereinfachen wir also, durch den Verzicht auf die Angleichung, die das Englische hat,
die Fähigkeit dieses W zu modellieren, das um was in einer Sprache geht.
Jetzt können wir das N-Gramm-Modell zu Trigrammen, erweitern, also 3-Gramme, oder 4-Gramme und 5-Gramme.
Aber im Allgemeinen ist es deutlich, dass N-Gramm Modellierung ein unzureichendes Modell der Sprache ist.
Und der Grund ist, dass Sprache Abhängigkeiten über lange Entfernungen aufweist.
Also wenn ich, zum Beispiel,etwas vorhersagen will - "Der Computer, den ich gerade abgestellt hatte im
Geräteraum im fünften Stock, ...", und ich hätte das nächste Wort nicht gesehen und ich möchte sagen,
was die Wahrscheinlichkeit des nächsten Wortes ist, und ich hätte dies nur abhängig von dem
vorherige Wort "Stock" gemacht, dann wäre ich wohl kaum auf "stürzte ab" gekommen. Aber tatsächlich ist "stürzte ab"
das wichtigste Verb des Satzes und Computer ist das Subjekt, den Kopf der Subjekt-Nominalphrase.
Also, wenn wir gewusst hätten, dass "Computer" das Subjekt war, wären wir viel eher auf "stürzte ab" gekommen.
Solche weit gespannten Abhängigkeiten bedeuten, dass wir bei
wirklich guten Modellen, die englische Wörter vorhersagen, viele Informationen
über längere Entfernungen hinweg berücksichtigen müssen. Aber es stellt sich heraus, dass wir in der Praxis
oft mit diesen N-Gramm-Modellen auskommen, weil die lokalen Informationen, vor allem
wenn wir Trigramme und 4-Gramme erreichen, einschränkend genug sein werden,
dass in den meisten Fällen unsere Probleme damit gelöst werden können.