Informatik - Fabian Suchanek

 

Die Suche nach Wissen statt nach Webseiten

 

Das Internet hält eine riesige Menge an Webseiten bereit. Allerdings sind die Computer von heute weit davon entfernt, diese Webseiten irgendwie inhaltlich zu "verstehen". Bislang durchsuchen sie die Seiten nur nach einzelnen Schlüsselwörtern. Das kann sich nun ändern.

 

In den letzten Jahren hat sich das Internet zu einer bedeutenden Informationsquelle entwickelt. Zugfahrpläne, Nachrichten, ja sogar ganze Enzyklopädien sind inzwischen rund um die Uhr online verfügbar. Mithilfe von Suchmaschinen können wir diese Informationen abfragen. Ist man beispielsweise an dem Physiker Albert Einstein interessiert, so liefert eine Suche nach "Albert Einstein" mit der gängigen Suchmaschine Google direkt mehrere Biographien. Das ist sehr praktisch. Trotzdem stößt man als Internetbenutzer gelegentlich an die Grenzen dieser Technologie. Nehmen wir beispielsweise an, wir möchten wissen, welche Nobelpreisträger nach Einstein geboren sind. Diese Frage lässt sich kaum so formulieren, dass sie von Google sinnvoll beantwortet werden kann. Alle Anfragen nach "Nobelpreisträger, geboren, nach, Einstein" geben lediglich Einstein selbst zurück. Man ist also gezwungen, zunächst das Geburtsdatum von Einstein zu suchen und sodann eine Liste von Nobelpreisträgern mit ihren Geburtsdaten zu durchforsten.


Der Grund für diese Unbequemlichkeit ist, dass Google nicht Wissen durchsucht, sondern Webseiten. Google kann nur diejenigen Informationswünsche befriedigen, zu denen es bereits eine vorgefertigte Antwort auf einer Webseite gibt. Findet sich die Antwort auf mehreren Seiten verstreut, erfordert die Antwort das inhaltliche Verständnis der Webseiten oder ist gar eine Antwort nur durch logische Schlussfolgerung zu erlangen, so ist man mit Google an der falschen Adresse. Die Ursache für dieses Problem ist dass die Webseiten für den Computer nichts anderes sind als bedeutungslose Buchstabenfolgen. Wenn es gelänge, dem Computer diese Buchstabenfolgen inhaltlich begreifbar zu machen, so würde er eine Unmenge an Allgemeinwissen hinzugewinnen. Dieses Allgemeinwissen könnte nicht nur bei der Internetsuche helfen, sondern auch bei vielen anderen Aufgaben wie beispielsweise bei der automatischen Übersetzung eines Textes in mehrere Sprachen oder beim Verstehen gesprochener Sprache. Das Ziel meiner Dissertation ist es, dem Computer dieses Allgemeinwissen zur Verfügung zu stellen.


Damit der Computer das Wissen überhaupt verarbeiten kann, muss es auf eine strukturierte Art abgespeichert werden. Eine solche strukturierte Wissenssammlung heißt "Ontologie". Die Bausteine einer Ontologie sind "Entitäten". Eine Entität ist jede Art von konkretem oder abstraktem Objekt: Der Physiker Albert Einstein, das Jahr 1879 oder die Stadt Ulm. Die Entitäten sind durch "Relationen" miteinander verbunden. So ist beispielsweise Albert Einstein über die Relation "geboren" mit dem Jahr 1879 verbunden. Die Stadt Ulm ist über die Relation "liegt in" mit dem Staat Deutschland verbunden. Eine solche Verbindung heißt "Fakt". Auf diese Weise erhält man ein Netz aus Entitäten und Fakten -- die Ontologie. Die entscheidende Frage ist nun, wie man eine Ontologie mit Wissen füllt. Man könnte natürlich alle Fakten von Hand einfügen, aber das ist sehr aufwändig. Deshalb habe ich in meiner Dissertation einen neuen Ansatz zum automatischen Erstellen einer Ontologie entwickelt. Dieser Ansatz nutzt die große Online-Enzyklopädie Wikipedia. Wikipedia enthält Artikel zu Abertausenden von Persönlichkeiten, Produkten und Organisationen. Jeder dieser Artikel wird eine Entität in unserer Ontologie. Zum Beispiel gibt es  einen Artikel über Albert Einstein, sodass der Physiker als Entität in die Ontologie aufgenommen werden kann. Jeder Artikel in Wikipedia ist bestimmten Kategorien zugeordnet. So befindet sich beispielsweise der Artikel über Einstein in der Kategorie "Gestorben 1955". Dadurch kann der Computer den Fakt aufnehmen, dass Einstein 1955 gestorben ist. Dies funktioniert einfach auf Basis der Schlüsselwörter in den Kategoriebezeichnungen, ohne dass der Computer dazu den vollen Text des Artikels verstehen müsste. Dadurch erhalten wir eine sehr große Ontologie, in der alle in Wikipedia bekannten Entitäten ihren Platz haben. Diese Ontologie heißt YAGO (Yet Another Great Ontology). Momentan (Februar 2009) enthält YAGO 2 Millionen Entitäten und rund 20 Millionen Fakten.


Dies ist schon eine beträchtliche Menge an Allgemeinwissen. Sie dient nun als Ausgangspunkt für das weitere Sammeln von Wissen. Das Ziel ist es, auch andere Internetdokumente wie Biographien, Lexikoneinträge, Homepages und Nachrichtentexte inhaltlich für den Computer zu erschließen. Diese Aufgabe ist nicht einfach. Nehmen wir beispielsweise an, der Computer fände in einer Biografie den Satz "Einstein wurde 1879 geboren". Dieser Satz ist für den Computer lediglich eine Folge von Buchstaben. Für den Computer sieht der Satz also so aus, wie für uns die chinesische Zeichenfolge
因斯坦出生於1879. Wie soll der Computer sehen, dass mit den ersten vier Zeichen eine Person gemeint ist? Wie soll er erkennen, dass die anderen Zeichen das Geburtsdatum nennen (und nicht etwa das Einschulungsdatum)? Hier kommt nun das Wissen aus YAGO zu Hilfe: Nehmen wir an, YAGO enthielte bereits das Geburtsdatum einer anderen Person, zum Beispiel des Physikers Max Planck. Nehmen wir außerdem an, der Computer hätte bereits irgendwo anders einmal den Satz "Max Planck wurde 1858 geboren" gefunden. Da er bereits weiß, dass Max Planck 1858 geboren wurde, so kann er erraten, dass Sätze der Form "... wurde ... geboren" auf ein Geburtsdatum hindeuten. Per Analogieschluss kann der Computer dann vermuten, dass der Satz "Einstein wurde 1879 geboren" wohl das Geburtsdatum von einer Person namens Einstein angibt. Doch wer ist mit "Einstein" gemeint? Der Schriftsteller Siegfried Einstein vielleicht? Oder doch der Physiker Albert Einstein? Dazu brauchen wir eine weitere Schlussfolgerung: Nehmen wir an, YAGO wüsste bereits, dass Siegfried Einstein 1983 gestorben ist. Wenn der Satz also von Siegfried handelte, so wäre Siegfried 104 Jahre alt geworden. Das ist sehr unwahrscheinlich. Daher kann der Computer vermuten, dass mit diesem Satz wohl in der Tat Albert Einstein gemeint ist.

 

Nun sind diese Schlussfolgerungen nicht immer zuverlässig. Es kann zum Beispiel sein, dass eine Satzstruktur in unterschiedlichen Kontexten verschiedene Bedeutungen hat. Auch könnte Siegfried Einstein ja wirklich 104 Jahre alt geworden sein. Im schlimmsten Fall könnte der Satz einfach falsch sein. Der Computer kann also lediglich Vermutungen aufstellen. Diese Vermutungen sind nicht unabhängig voneinander: Wenn der Satz sich tatsächlich auf Albert Einstein bezieht, so lernt der Computer das Geburtsdatum von Albert Einstein. Dies wiederum wird Einfluss haben auf das Erlernen seines Todesdatums. Das beeinflusst dann wiederum die Interpretation von Sätzen der Form "... starb im Jahre ..." und so fort. Dabei analysieren wir Tausende von Texten und Abertausende von Sätzen gleichzeitig. Dadurch kann eine Vermutung aus dem einen Text eine Vermutung aus einem anderen Text bestätigen oder widerlegen. Es handelt sich also um ein riesiges Netz aus Vermutungen, die alle auf höchst komplizierte Weise miteinander verwoben sind. Es gilt, diejenigen Vermutungen auszumachen, die am wenigsten Widersprüche mit den anderen Vermutungen erzeugen.

 

Wollte man in dieser Größenordung die optimale Lösung finden, so würde der schnellste Computer der Welt mehrere Jahrtausende lang rechnen müssen. Deshalb begnügt man sich mit einer Lösung, die zwar nicht alle Widersprüche beseitigt, die man im Optimalfall beseitigen könnte, aber doch die meisten. Um eine solche Lösung zu finden, braucht der Computer nicht mehrere Jahrtausende, sondern lediglich einige Stunden. Damit hat das unlösbar scheinende Problem einen Lösungsansatz gefunden: Der Rechner kann nun natürlichsprachige Texte untersuchen und eine plausible Vermutung über ihren Inhalt aufstellen. Es ist also möglich geworden, dass der Computer die Texte in einem eingeschränkten Sinne tatsächlich "liest" und "versteht". Und in der Tat, unsere eingangs gestellte Frage nach Nobelpreisträgern, die nach Einstein geboren sind, beantwortet YAGO prompt mit einer ganzen Reihe an Laureaten. Der Leser kann sich gerne selbst davon überzeugen: http://www.mpi-inf.mpg.de/yago


Haben wir den Computer dadurch nun wirklich intelligent gemacht? Das ist eine schwierige Frage. Zwar kennt der Computer durch YAGO eine riesige Menge an Fakten, aber letzten Endes ist und bleibt "Albert Einstein" für den Computer nichts anderes als eine Zeichenfolge. Er weiß lediglich, dass diese Zeichenfolge über Relationen mit anderen Zeichenfolgen verbunden ist. Er weiß somit nicht, wie Albert Einstein aussieht, wie seine Stimme geklungen hat oder wie humorvoll er war. Damit fehlt dem Computer die Verbindung seiner Zeichenfolgen zur Realität. Er ist und bleibt also nichts anderes als eine Maschine die Daten verarbeitet. Aber das ist ja vielleicht auch gut so. Schließlich soll der Computer vorrangig nützlich sein. Dafür ist mit YAGO ein weiterer Schritt gemacht.