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