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.