1 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 2 00:00:04,009 --> 00:00:08,034 Themen bei der Verarbeitung natürlicher Sprache. Das Ziel der Sprachmodellierung 3 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? 4 00:00:12,087 --> 00:00:17,057 Dies kommt bei allen möglichen Anwendungen vor: Bei der maschinellen Übersetzung, 5 00:00:17,057 --> 00:00:21,069 beispielsweise, möchten wir in der Lage sein, zwischen guten und schlechten Übersetzungen 6 00:00:21,069 --> 00:00:26,022 anhand ihrer Übersetzungen zu unterscheiden. "High winds tonite" könnte eine bessere 7 00:00:26,022 --> 00:00:30,081 Übersetzung als "large winds tonite" sein, da "high" und "wind" im Englischen besser zusammen passen. 8 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 9 00:00:35,064 --> 00:00:40,041 eher eine Falschschreibung von "Minuten" sein. Ein Hinweis, der uns zu entscheiden ermöglicht, 10 00:00:40,041 --> 00:00:45,036 dass "fünfzehn Minuten von" eine viel wahrscheinlichere Wortgruppe als "fünfzehn Minuette von" ist. 11 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 12 00:00:51,029 --> 00:00:56,089 eine Phrase, die phonetisch ähnlich klingt, wie "eyes awe of an". 13 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, 14 00:01:00,057 --> 00:01:04,030 dass Sprachmodellierung auch bei der Textzusammenfassung, dem Question Answering, eigentlich überall eine Rolle spielt. 15 00:01:04,030 --> 00:01:08,068 Das Ziel eines Sprachmodells ist es, die Wahrscheinlichkeit von einem Satz 16 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 17 00:01:14,045 --> 00:01:19,095 berechnen wie deren Wahrscheinlichkeit P(W), und wir benutzen ein großes W 18 00:01:19,095 --> 00:01:26,001 um die Sequenz w1 bis wn zu bezeichnen. Dies ist verwandt mit der Aufgabe, 19 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 20 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, 21 00:01:37,071 --> 00:01:43,079 entweder P(W) - wobei groß W, eine Zeichenfolge bezeichnet - die gemeinsame Wahrscheinlichkeit der gesamten 22 00:01:43,079 --> 00:01:50,003 Zeichenfolge, oder die bedingte Wahrscheinlichkeit, dass das letzte Wort bei den gegebenen vorhergehenden Worte auftritt, 23 00:01:50,003 --> 00:01:55,027 ein solches Model nenne wir ein Sprachmodell. Jetzt könnte es besser sein, dies 24 00:01:55,027 --> 00:01:59,043 eine 'Grammatik' zu nennen. Ich meine, im Prinzip sagt uns dies etwas darüber, 25 00:01:59,043 --> 00:02:03,023 wie gut diese Worte zusammen passen. Und wir verwenden normalerweise eine Wortgrammatik dafür, 26 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 - 27 00:02:07,039 --> 00:02:12,008 der Standard ist, und daher halten wir uns daran. Also, wie berechnen wir diese gemeinsame Wahrscheinlichkeit? 28 00:02:12,008 --> 00:02:17,033 Sagen wir, wir wollen die Wahrscheinlichkeit, der Formulierung, "das Wasser ist so transparent, dass", 29 00:02:17,033 --> 00:02:22,007 diesem kleinen Teil eines Satzes. Und die Intuition, wie die 30 00:02:22,007 --> 00:02:26,087 Sprachmodellierung funktioniert, ist dass Sie sich auf die Kettenregel der Wahrscheinlichkeit verlassen. 31 00:02:26,087 --> 00:02:32,019 Und nur um Sie an die Kettenregel der Wahrscheinlichkeitsrechnung zu erinnern: Denken wir 32 00:02:32,019 --> 00:02:37,044 an die Definition der bedingten Wahrscheinlichkeit, also P von A gegeben B 33 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 34 00:02:48,019 --> 00:02:57,054 gegeben B mal P von B gleich P von A, B oder andersherum 35 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. 36 00:03:05,091 --> 00:03:13,089 Und können wird dies weiter verallgemeinern für mehr Variablen, also die gemeinsame Wahrscheinlichkeit 37 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 38 00:03:20,008 --> 00:03:23,096 [usw.] Also das ist die Kettenregel. 39 00:03:23,096 --> 00:03:28,045 In einer allgemeineren Form der Kettenregel wie wir sie hier haben, also der gemeinsamen Wahrscheinlichkeit 40 00:03:28,061 --> 00:03:32,044 von einer beliebigen Sequenz von Variablen, ist dies die Wahrscheinlichkeit der ersten mal die 41 00:03:32,044 --> 00:03:36,065 zweite bedingt durch die erste mal die dritte bedingt durch die erste und zweite usw. 42 00:03:36,065 --> 00:03:40,086 ersten beiden, bis der letzte konditioniert auf die ersten n minus eins. 43 00:03:40,086 --> 00:03:45,029 Okay, die Kettenregel. Die Kettenregel kann angewendet werden, um die gemeinsame Wahrscheinlichkeit von Wörtern 44 00:03:45,029 --> 00:03:49,045 in einem Satz zu berechnen. Also angenommen, wir haben unseren Satz, "its water is so transparent". 45 00:03:49,045 --> 00:03:53,081 Nach der Kettenregel ist die Wahrscheinlichkeit dieser Sequenz 46 00:03:53,081 --> 00:03:59,006 die Wahrscheinlichkeit von "its" mal die Wahrscheinlichkeit von "water" gegeben "its" mal die Wahrscheinlichkeit 47 00:03:59,006 --> 00:04:03,073 von "is" gegeben "its water" mal die Wahrscheinlichkeit von "so" gegeben "its water is" und 48 00:04:03,073 --> 00:04:08,008 schließlich mal die Wahrscheinlichkeit von "transparent" gegeben "its water is so". 49 00:04:08,008 --> 00:04:13,007 Oder formeller ausgedrückt, ist die gemeinsame Wahrscheinlichkeit einer Folge von Wörtern das 50 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. 51 00:04:18,031 --> 00:04:24,054 Wie können wir diese Wahrscheinlichkeiten schätzen? Könnten wir einfach zählen und 52 00:04:24,054 --> 00:04:29,060 teilen? Wir berechnen oft Wahrscheinlichkeiten durch zählen und teilen. Also, was die Wahrscheinlichkeit 53 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 54 00:04:34,061 --> 00:04:39,043 "its water is so transparent that the" auftritt, und das durch die Anzahl der Vorkommnisse von 55 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. 56 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 57 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 58 00:04:54,083 --> 00:05:00,018 zu bekommen, um die Anzahl aller möglichen Sätze des Englischen sehen zu können. 59 00:05:00,018 --> 00:05:05,033 Was wir stattdessen tun, ist, dass wir eine vereinfachende Annahme - genannt die Markov-Annahme - geltend machen, 60 00:05:05,033 --> 00:05:10,024 die nach Andrei Markow benannt wurde. Und der Markov-Annahme zufolge schätzen wir die 61 00:05:10,024 --> 00:05:15,039 Wahrscheinlichkeit von "the" gegeben "its water is so transparent that", indem wir stattdessen nur 62 00:05:15,039 --> 00:05:20,041 die Wahrscheinlichkeit des Wortes "the" berechnen, gegeben das Wort "that", also dem letzten Wort 63 00:05:20,041 --> 00:05:25,025 "that" in der Sequenz. Oder vielleicht berechnen wir die Wahrscheinlichkeit von "the" gegeben 64 00:05:25,025 --> 00:05:29,067 "its water is so transparent that" nur anhand der letzten beiden Worte also "the" gegeben 65 00:05:29,067 --> 00:05:33,089 "transparent that". Das ist die Markov-Annahme. Lassen Sie uns nur das vorhergehende 66 00:05:33,089 --> 00:05:38,070 oder vielleicht ein paar vorhergehende Worte anschauen, statt des gesamten Kontextes. 67 00:05:38,070 --> 00:05:44,035 Formeller besagt die Markov-Annahme, dass die Wahrscheinlichkeit für eine Folge von Wörtern dem 68 00:05:44,035 --> 00:05:49,038 Produkt der bedingten Wahrscheinlichkeiten für jedes Wort entspricht, 69 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 70 00:05:54,096 --> 00:06:00,013 alle Wahrscheinlichkeiten die wir miteinander nach der Kettenregel multiplizieren, schätzen wir die 71 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 72 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 73 00:06:12,070 --> 00:06:17,029 Markov-Modells ist das Unigramm-Modell. Im Unigramm-Modell schätzen wir einfach 74 00:06:17,029 --> 00:06:21,077 die Wahrscheinlichkeit für eine ganze Sequenz von Wörtern durch das Produkt von Wahrscheinlichkeiten 75 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, 76 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 77 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", 78 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 79 00:06:39,028 --> 00:06:43,038 Folge von Wörtern, "thrift, did, eighty, said". Das ist die Eigenschaft eines Unigramm-Models. 80 00:06:43,038 --> 00:06:47,059 Worte sind in diesem Modell unabhängig. Etwas intelligenter ist ein 81 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 82 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, 83 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 84 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 85 00:07:07,011 --> 00:07:11,087 Englisch. Klar, etwas ist daran noch falsch. "outside", "new", "car", 86 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, 87 00:07:16,052 --> 00:07:21,028 "outside new car parking lot of the agreement reached", das ist kein Englisch. 88 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, 89 00:07:26,005 --> 00:07:31,017 die Fähigkeit dieses W zu modellieren, das um was in einer Sprache geht. 90 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. 91 00:07:36,038 --> 00:07:41,044 Aber im Allgemeinen ist es deutlich, dass N-Gramm Modellierung ein unzureichendes Modell der Sprache ist. 92 00:07:41,044 --> 00:07:46,097 Und der Grund ist, dass Sprache Abhängigkeiten über lange Entfernungen aufweist. 93 00:07:46,097 --> 00:07:52,036 Also wenn ich, zum Beispiel,etwas vorhersagen will - "Der Computer, den ich gerade abgestellt hatte im 94 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, 95 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 96 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" 97 00:08:06,048 --> 00:08:11,022 das wichtigste Verb des Satzes und Computer ist das Subjekt, den Kopf der Subjekt-Nominalphrase. 98 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. 99 00:08:15,078 --> 00:08:20,010 Solche weit gespannten Abhängigkeiten bedeuten, dass wir bei 100 00:08:20,010 --> 00:08:24,050 wirklich guten Modellen, die englische Wörter vorhersagen, viele Informationen 101 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 102 00:08:28,089 --> 00:08:33,016 oft mit diesen N-Gramm-Modellen auskommen, weil die lokalen Informationen, vor allem 103 00:08:33,016 --> 00:08:37,023 wenn wir Trigramme und 4-Gramme erreichen, einschränkend genug sein werden, 104 00:08:37,023 --> 00:08:40,046 dass in den meisten Fällen unsere Probleme damit gelöst werden können.