Wir schreiben, Smartphones lernen

Ich habe diesen Blogartikel komplett auf meinem Mobiltelefon geschrieben. Ich dachte, bei diesem Thema gehöre sich das so, es geht um Autovervollständigung beim Schreiben von Texten. Ehrlich sollte ich zugeben, dass ich recht eingeengt in der zweiten Klasse eines Zugs zwischen Zürich und München saß. Keine Chance hier den Laptop auszupacken. Fertig geschrieben habe ich dann später den Artikel auch auf dem Smartphone - aus Gründen der Konsistenz. Dann wurde es mir zu nervtötend und ich habe auf meinem Rechner weitergemacht.

Beginnen wir mit der Autokorrektur. Die können Mobiltelefone und Computer schon seit Ewigkeiten. Wenn man einen Text schreibt, hat man sehr leicht mal einen Buchstabendreher oder einen Flüchtigkeitsfehler im Text. Manchmal werden diese vom Smartphone rot markiert, andere Male werden sie direkt durch das richtige Wort ersetzt. Wie funktioniert das Ganze? Das Gerät gleicht jedes Wort im Text mit einem Wörterbuch - das ist eine Datenbank - ab. Findet er ein Wort nicht, sucht er Wörter, die sehr nahe bei dem getippten Wort liegen. In dieser Liste findet er dann entweder das Wort, das er für am wahrscheinlichsten hält und ersetzt es sofort, er sagt, dass er keine Ahnung hat, oder er schlägt eine Reihe von Wörtern vor, zwischen den man sich entscheiden kann. In den letzten beiden Fällen würde das Wort dann wohl rot unterstrichen. Problematisch wird die Autokorrektur bei Eigennamen, die im Wörterbuch des Computers nicht vorkommen. Sind diese nur rot unterstrichen, ist das keine größere Sache. Werden sie automatisch verändert, kann das sehr nervig sein. So wird der Name „Kien“ zu „kein“ oder sogar „lieb“.

Abbildung 1: Welches Wort ist richtig?

Sehr ähnlich funktioniert die Autovervollständigung von Wörtern. Hier wird schon vor Vollendung des Wortes die Datenbank durchsucht. Ist der Computer sich sicher, dass er weiß, welches Wort man tippt, so ersetzt er das Wortfragment, an dem man gerade noch arbeitet, sofort mit dem ganzen Wort. Anderenfalls stellt er wie im Beispiel in Abbildung 1, mehrere Wörter zur Auswahl. In dem Fall sind diese „Anderen“, „Anderenfalls“ und „Anderenorts“. Das zweite Wort war richtig, deshalb hatte ich es übernommen und musste es nicht fertig schreiben. Eine ähnliche Variante der Autovervollständigung von Wörtern verwendete das Schnellschreibsystem T9, an das der ein oder andere sich vielleicht noch erinnert. Das ist inzwischen aber so sehr veraltet, dass ich jede Erklärung lieber überspringe.

Grundsätzlich lässt sich wohl sagen: Autokorrektur und Autovervollständigung von Wörtern waren sicherlich einmal eine Innovation. Im Angesicht dessen, was heute im maschinellen Lernen möglich ist, ist diese Innovation jedoch eher witzlos.

Maschinelles Lernen ist das automatische Konstruieren eines Computerprogramms mit Datensätzen. Man möchte zum Beispiel ein Programm, das handgeschriebene Ziffern erkennt. Klassischerweise würde man ein Programm implementieren, das alle möglichen Eigenschaften einer handgeschriebenen Ziffer einer Datenbank entnimmt und vergleicht. Algorithmen im maschinellen Lernen hingegen würden mit einem „Trainingsdatensatz“ gefüttert. Also man würde dem Computer einige, Hunderte, Tausende Bilder von handgeschriebenen Ziffern zeigen und ihm sagen, welche Ziffer auf welchem Bild gezeigt wird. Anhand dieser „lernt“ der Computer. Dies ist oft bedeutend effizienter, als tatsächlich eine Datenbank von Hand zu erstellen. Effizienz meint hier sowohl die benötigte Zeit als auch den benötigten Speicherbedarf. Außerdem lässt es sich einfach spezialisieren. Vielleicht hat jemand eine sehr spezielle Handschrift: eine deutsche 1 und eine englische 7 lassen sich zum Beispiel manchmal nur schwer unterscheiden - siehe Abbildung 2. Kennt man die speziellen Schreibgewohnheiten des Schreibers, kann man den Algorithmus speziell auf ihn trainieren. Solch eine Spezialisierung benötigt man nicht bei der Autokorrektur und Autovervollständigung von Wörtern - deshalb witzlos.

Abbildung 2: Verschiedene Sprachräume benutzen verschiedene Schreibweisen. Bei 1 und 7 wird das sehr deutlich. Die 7, die ich in Großbritannien sehr häufig gesehen habe, ist nur eine leicht gedrehte Variante der 1, die in Deutschland häufig genutzt wird. Ich persönlich verwende englische 1 und deutsche 7. Da gibt es keine Verwechslungsgefahr.

Autovervollständigung von Wortkombinationen ist da schon spannender. Ich habe diesen letzten Satz gerade beendet und mein Telefon schlägt mir die Wörter „Ich“, „Das“ und „Die“ vor, siehe Abbildung 3. Das heißt gegeben, was ich bisher geschrieben habe, geht das Telefon aus, dass mein nächster Satz mit einem „Ich“ beginnt. Und damit hatte es völlig recht - ich begann den Satz mit „Ich“. Clever. Jetzt habe ich das Wort „Clever“ verwendet. Ein englisches Wort. Das hat das Smartphone bemerkt und dachte, ich wolle vielleicht auf Englisch weiterschreiben. Daher schlägt es nun die Wörter „I“, „Yes“ und „The“ vor um den nächsten Satz zu beginnen - siehe Abbildung 3.

Abbildung 3: Hier der Beweis. Ich hatte den nächsten Satz mit "ich" gestartet und das war der erste Vorschlag meines Telefons. Ursprünglich sollte es hier mal um Sätze gehen, nicht Wortkombinationen. Aber das können unsere Telefone nicht leisten, siehe unten.

Zur Autovervollständigung von Wortkombinationen müsste man klassischerweise solche Kombinationen standardmäßig in Datenbanken speichern, genau, wie bei den einzelnen Wörtern. Das wiederum ergibt kaum Sinn. Bei Wörtern ist klar, wie sie geschrieben werden. Bei Wortkombinationen kommt es hingegen auch auf den persönlichen Schreibstil des Nutzers an, also hier sollte speziell dieser „gelernt“ werden. Das spricht für das maschinelle Lernen. Außerdem gibt es erheblich mehr Wortkombinationen als Wörter. Geht man davon aus, dass es einige Millionen Wörter gibt, so sind es einige Billionen Kombination aus zwei Wörtern. Davon kommen natürlich nicht alle infrage. Es hilft vielleicht aber zu verstehen, wie sich das eine zum anderen verhält. Das spricht für einen erheblich höheren Speicherbedarf, der ebenfalls gegen den „klassischen“ Datenbankansatz und für das maschinelle Lernen in diesem Fall spricht. Das ist also ein wirklich spannendes Beispiel für maschinelles Lernen.

Abbildung 4: Ein lustiges Spiel mit der Autovervollständigung. Beginne einen Satz und lass dann die Autovervollständigung den Rest erledigen.

Ich wollte anfangs nicht die Autovervollständigung von Wortkombinationen, sondern von „Sätzen“ besprechen. Das sieht man zum Beispiel in Abbildung 3. Das Vervollständigen von Sätzen kann und soll der Algorithmus allerdings nicht. Das erkennt man zum Beispiel bei dem folgenden Spiel: Man beginnt einen Satz und nimmt ab einer gewissen Stelle nur noch die Wörter, die von der Autovervollständigung vorgeschlagen werden. Siehe zum Beispiel Abbildung 4, dort sollte der Satz beginnen mit: “My new book is called” und sich dann auf die Autovervollständigung verlassen. In meinem Fall kam dabei „My new book is called me and I am not going to a doctor appointment with you.”, also: Der Titel meines neuen Buchs ist „Ich und ich gehe nicht mit Dir zum Arzt.“. Ein Satz der nicht besonders viel Sinn ergibt, siehe Abbildung 5. 

Abbildung 5: Das kommt bei dem Spiel aus Abbildung 4 heraus. Ziemlicher Unsinn, aber lustiger.

Also Satzvervollständigung kann der Algorithmus vermutlich nicht. Er soll es aber auch nicht. Denn, der Algorithmus weiß ja gar nicht, über was man schreiben möchte. Eine Satzvervollständigung würde nur Sinn ergeben, wenn man auf andere Art und Weise dem Telefon vermitteln könnte, über was man schreiben möchte. Dies komplett während des Schreibens herauszufinden wäre wohl ein ganz schönes Ratespiel. Außerdem wäre der Rechenaufwand bedeutend höher. Das Smartphone würde also mehr Zeit benötigen, um eine Vervollständigung vorzuschlagen. Das Ganze ist aber eigentlich nur interessant, wenn es in Echtzeit funktioniert, weswegen man hier auf Geschwindigkeit angewiesen ist.

Wir können wohl davon ausgehen, dass das Telefon wirklich nur Wortkombinationen vervollständigt, keine Sätze. Und es benutzt lokale Informationen. Es schaut sich also nicht den ganzen Satz oder Text an, sondern nur das letzte Wort, vielleicht die letzten Wörter. Liest man meinen „Buchtitel“ in Abbildung 4 und achtet auf Wortpaare, dann sieht das Ganze recht sinnvoll aus. Die Kombinationen „called me“, „I am“, „am going“, „doctor appointment“, „appointment with“ und „with you“ sind alles sehr häufige Wortkombinationen im Englischen. Diese lokalen Informationen erzeugen einen lesbaren Satz, aber keinen logischen Gesamtzusammenhang. Ein logischer Gesamtzusammenhang ist ohne globale Informationen vermutlich jedoch nicht möglich. Globale Informationen wären solche, die den ganzen Text und vielleicht noch äußere Informationen miteinbeziehen.

Ich kann jeden nur dazu ermutigen, diese Tools und Methoden in Telefonen und Computern auszuprobieren und das oben genannte Spiel zu spielen. Zu diesen Tools gehören auch Alexa, "Ok, Google", Siri, Gesichts- und Personenerkennung in der Fotosoftware, der Netflix-Algorithmus, Deep Mind usw. Die Forschungsbereiche Neurowissenschaften, künstliche Intelligenz und maschinelles Lernen rücken immer stärker zusammen: Die Experten des maschinellen Lernens holen sich immer mehr Ideen vom menschlichen Gehirn. Computer entwickeln sich also von langweiligen Rechenmaschinen zu Miniaturgehirnen. Dem Nicht-Wissenschaftler könnte es also helfen, einfache Lernprozesse im Computer zu verstehen, um dann irgendwann dem Lernen im Gehirn näherzukommen. Wäre das nicht großartig? Also: Play on!

Kommentare

Beliebte Posts aus diesem Blog

Regenschirme erzeugen Regen?

Quantenphysik in der Homöopathie?

Lernen auf mehreren Levels