Die Suche nach
Wissen statt nach Webseiten
Fabian M.
Suchanek
Computer sind zwar sehr
nützlich, versagen aber oft bei Aufgaben, die Sprachverständnis, Weltwissen
oder "Intelligenz" erfordern. Die vorliegende Dissertation zeigt, wie
der Computer sich Wissen über unsere Welt "anlesen" kann. Dazu werden
neue Methoden vorgestellt, die es dem Computer erlauben, natürlichsprachige
Dokumente (beispielsweise aus dem Internet) systematisch in großem Stil nach
Fakten zu durchkämmen. Das Ergebnis ist eine strukturierte Sammlung von Fakten,
mit der das Wissen dieser Welt für den Computer "begreifbar" wird.
Computer sind aus vielen Bereichen unseres Lebens gar
nicht mehr wegzudenken. Computer lassen uns einkaufen ohne einen Fuß vor die
Tür zu setzen, sie berechnen uns in Sekundenschnelle Autofahrten,
Bahnverbindungen und Flugpläne, sie lassen uns mit Leuten auf der anderen Seite
der Erde kommunizieren und sie stellen uns über das Internet eine
Informationsfülle zur Verfügung, die in Bücher gedruckt eine ganze Stadt füllen
würde. Aber auch wenn der Computer uns oft behilflich ist, so hat er
doch bei vielen Aufgaben noch Schwierigkeiten. Darunter fällt insbesondere
vieles, was mit Sprache oder Wissen zu tun hat. Das Problem fängt bereits bei
einer einfachen Internet-Suche an: Wie frage ich meinen Computer nach einem
Getränkeladen, der samstags um 18:00 noch auf hat? Ich könnte bei Google nach
"Getränkeladen" suchen, aber wahrscheinlich komme ich dann nicht
umhin, die Öffnungszeiten aller Getränkeläden zu studieren. Wie finde ich
heraus, wie viel Prozent der Stimmen der neue Bürgermeister bekommen hat?
Wahrscheinlich müsste ich mehrere Zeitungsartikel im Internet lesen, bis einer
von ihnen die Stimmverteilung erwähnt. Wie finde ich alle Nobelpreisträger, die
nach Einstein geboren sind? Wahrscheinlich müsste ich zuerst nachlesen, wann
Einstein geboren ist und dann eine Liste aller Nobelpreisträger mit ihren
Geburtsdaten durchgehen.
Der Computer ist also noch weit davon entfernt, die Daten die er bereithält,
tatsächlich zu "verstehen". Zwar verfügt er über eine gigantische
Menge an Information, aber er scheint nicht viel mehr damit zu tun, als sie
abzuspeichern. Es scheint, als würden die Server dieser Welt zwar Unmengen an
Nachrichtentexten, gelben Seiten und Lexikonartikeln abspeichern, aber nicht
auf die Idee gekommen sein, diese mal "durchzulesen". Sie können die
Texte auf Nachfrage zwar bereitstellen, aber nicht begreifen, worum es darin
geht. Dabei wäre das äußerst praktisch. Man könnte sie dann nach Dingen fragen,
ohne die jeweiligen Texte durchlesen zu müssen. Auch könnte der Computer dann
ganz andere Aufgaben mit dem angelesenen Wissen viel besser bearbeiten —
beispielsweise die automatische Übersetzung von Texten in mehrere Sprachen, das
Aussortieren von Spam in unseren Emails oder ein intelligenteres Suchen nach
Internetseiten. Ähnliches gilt für das so genannte
Web 2.0. Damit ist das Phänomen gemeint, dass immer mehr Menschen das Internet
nicht nur als Informationsquelle nutzen, sondern auch selbst Informationen
hinzufügen — in sozialen Netzwerken, Blogs, Homepages oder Online-Lexika. Wenn
der Computer sich diese stetig wachsenden Wissensquellen inhaltlich erschließen
könnte, so würde er selbst zum Nutznießer dieser Entwicklung. Wenn man die
Informationen dann noch systematisch weltweit miteinander verknüpfen würde, so
entstünde ein riesiger Wissensteppich: Das so genannte Semantic
Web. Dieser Wissensreichtum würde dem Computer dann erlauben, ein paar
Zusammenhänge in dieser Welt zu "verstehen", sodass eines Tages
vielleicht wirklich eine intelligente Unterhaltung möglich wird.
Momentan aber sind wir davon noch weit entfernt. Momentan speichert der
Computer die Texte einfach nur ab. Das Problem scheint zu sein, dass der
Computer einen Satz wie "Einstein wurde 1879 geboren" zwar
abspeichern kann, aber die Information in diesem Satz nicht begreift. Dies ist
auch nicht weiter verwunderlich: Für den Computer ist der Satz lediglich eine
Folge von Buchstaben. Für den Computer sieht der Satz also so aus, wie für uns
eine chinesische Zeichenfolge: 爱因斯坦出生於1879年. Wie soll der Computer sehen, dass mit den ersten vier Zeichen, 爱因斯坦, der berühmte Physiker gemeint ist? Wie soll er
erkennen, dass die anderen Zeichen sein Geburtsdatum nennen (und nicht etwa
sein Einschulungsdatum)? An dieser Stelle setzt meine Dissertation an. Das Ziel
meiner Arbeit ist es, das Wissen der Webseiten für den Computer begreifbar zu
machen.
Ontologien
Soll der Computer Texte verstehen, so muss er das Wissen auf eine strukturierte
Art abspeichern. 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 Getränkeladen um die Ecke, der Physiker Albert Einstein, das Jahr 1879
oder die Stadt Ulm. Es spielt dabei keine Rolle, ob die Entität real existiert
oder fiktiv ist. Deshalb sind auch Harry Potter und seine Kollegen vollwertige
Entitäten. 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 "liegtIn" mit dem Staat
Deutschland verbunden. Eine solche Verbindung heißt "Fakt". Die Verbindungen
sind gerichtet, d.h. wenn Ulm in Deutschland liegt, heißt das nicht dass
Deutschland in Ulm liegt. Auf diese Weise erhält man ein Netz aus Entitäten und
Fakten — die Ontologie.

Ein Fragment einer Ontologie
Ähnliche Entitäten fassen wir zu einer so
genannten Klasse zusammen. Einstein beispielsweise gehört zusammen mit seinen physik-begeisterten Kollegen der Klasse
"Physiker" an. Ulm fällt in die Klasse "Stadt". Technisch
gesehen ist eine Klasse auch nichts anderes als eine Entität. So gibt es
einfach zwischen der Entität "Albert Einstein" und der Entität
"Physiker" die Relation "istEin" —
Einstein ist ein Physiker. Nun wiederholt sich das Spiel: Ähnliche Klassen
fassen wir zu Oberklassen zusammen. So sind beispielsweise die Klassen
"Physiker" und "Biologe" beide Unterklassen der Klasse
"Wissenschaftler". Ontologisch gesehen haben wir also die Relation
"unterklasseVon" zwischen Physiker und
Wissenschaftler. Wissenschaftler wiederum ist eine Unterklasse von Mensch,
Mensch eine Unterklasse von Säugetier, und so fort. Die Klasse schließlich, der
alle Entitäten auf Umwegen angehören, ist die Klasse "Entität". Auf
diese Weise geben uns die "unterklasseVon"
Fakten eine Hierarchie an Klassen, in der jeweils die oberen (allgemeinen)
Klassen die unteren (speziellen) Klassen einschließen Diese Hierarchie von
Klassen heißt "Taxonomie". Sie formt das Rückgrat einer jeden
Ontologie.
Als nächsten Abstraktionsschritt führen wir eine Unterscheidung ein zwischen
Wörtern und ihren Bedeutungen. Wir unterscheiden also zwischen "Albert
Einstein" (dem Wort) und Albert Einstein (dem Physiker). Dies ist
sinnvoll, da verschiedene Wörter sich auf dasselbe Individuum beziehen können.
Beispielsweise beziehen sich die beiden unterschiedlichen Wortfolgen "Dr.
Einstein" und "A. Einstein" beide auf dieselbe Entität.
Umgekehrt kann dasselbe Wort sich auch auf unterschiedliche Individuen beziehen
(es gibt z.B. mehrere Personen mit dem Namen "Einstein"). Darüber
hinaus abstrahieren wir durch diese Unterscheidung über die Wahl der Sprache
hinweg. So können sich dann, vereinfacht, die Wörter "Physiker",
"physicist" und "physicien"
allesamt auf die Klasse "Physiker" beziehen. In der Ontologie sind
die Wörter nichts anderes als weitere Entitäten. Diese sind mit der Relation
"bedeutet" mit ihrer jeweiligen Bedeutung verbunden.
Oft ergänzt man eine solche Ontologie um Regeln zur logischen Schlussfolgerung
(Axiome). Eines der grundlegendsten Axiome besagt beispielsweise, dass eine
Entität allen Oberklassen ihrer Klasse angehört. Wenn also bekannt ist, dass
Einstein ein Physiker war, so folgt aus der Unterklassenbeziehung von Physiker
und Wissenschaftler, dass Einstein ein Wissenschaftler ist. Wenn jeder Physiker
ein Wissenschaftler ist und jeder Wissenschaftler ein Mensch, so ist jeder
Physiker ein Mensch (Transitivität der Unterklassenbeziehung). Ein
Axiomensystem kann auch komplexere Dinge ausdrücken, wie beispielsweise dass
eine Relation das Gegenstück einer anderen ist (ehemannVon/ehefrauVon), oder dass ein Zeitpunkt vor dem anderen liegen
muss (z.B. das Geburtsdatum vor dem Todesdatum). Wir haben mit einer Ontologie
also ein sehr mächtiges Instrument zur Modellierung von Wissen. Befände sich
das Wissen dieser Welt in einer Ontologie, so wäre es eine Kleinigkeit für den
Computer, das Geburtsdatum von Einstein auszulesen und alle Nobelpreisträger zu
sammeln, die nach ihm geboren wurden.
YAGO: Von Wikipedia zu einer
formalen Ontologie
Mit einer Ontologie verfügen wir nun also über eine
formale Methode, um Wissen computergerecht abzuspeichern. Die entscheidende
Frage ist nun, woher dieses Wissen kommen soll. Dafür gibt es mehrere
Ansätze. Eine Möglichkeit ist, die Entitäten und Fakten alle von Hand
einzufügen. In der Tat sind die am weitesten verbreiteten Ontologien heutzutage
in manueller Kleinarbeit erstellt worden: WordNet ist ein Lexikon der
englischen Sprache mit rund 200.000 Begriffen in einer ontologischen
Struktur. SUMO ist eine Ontologie mit Hunderttausenden von Entitäten und die
kommerzielle Ontologie Cyc enthält gar Millionen von Fakten und Axiomen. Trotz
dieser Wissensmengen wird eine von Hand erstellte Ontologie stets der aktuellen
Entwicklung hinterherhinken. Keine der genannten Ontologien kennt
beispielsweise das neueste Windows System oder die Fußballstars der letzten
Weltmeisterschaft. Ich habe deshalb 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, Begriffen und Organisationen. Jeder dieser Artikel
wird eine Entität in unserer Ontologie. Zum Beispiel gibt es einen
Artikel über Albert Einstein, sodass Albert Einstein eine Entität in der
Ontologie wird. Jeder Artikel in Wikipedia ist bestimmten Kategorien
zugeordnet. So befindet sich beispielsweise der Artikel über Einstein in den
Kategorien "Philosoph" und "Deutscher Physiker". Diese
Information machen wir uns zunutze, um die Klassenzugehörigkeit der Entität "Albert
Einstein" in der Ontologie zu vermerken. Dabei ist allerdings Vorsicht
geboten: Der Artikel über Einstein befindet sich ebenfalls in der Kategorie
"Physik". Allerdings ist Einstein ja keine Physik — er ist ein
Physiker. Um dieses Problem zu beheben habe ich einen Algorithmus entwickelt,
der diese "falschen" Klassen automatisch erkennt und ausschließt. Es
gibt noch weitere nützliche Kategorien in Wikipedia: Einstein ist
beispielsweise ebenfalls in der Kategorie "Geboren 1879". Dadurch
können wir die Relation "geboren" zwischen Einstein und dem Jahr 1879
herstellen. Gibt man dem Rechner manuell das Schema der Kategoriennamen für
Geburtsdaten ("Geboren ..."), so kann er die Geburtsdaten aller
Personen automatisch extrahieren. Mein Verfahren macht sich auch die so
genannten Infoboxen zunutze. Diese sind die tabellenartigen Informationen, die
viele Wikipedia-Artikel in einem Kasten rechts neben
dem Artikel anzeigen. In diesen Infoboxen befinden sich beispielsweise für
Personen der Geburtsort, der Beruf und manchmal sogar der Ehepartner. Mein
Verfahren extrahiert aus diesen Infoboxen folglich die Beziehungen "geborenIn", "hatBeruf"
und "verheiratetMit". Insgesamt lassen sich
so rund 100 verschiedene Relationstypen extrahieren.
Wikipedia kennt zwar eine große Anzahl von Individuen, stellt aber keine gut
strukturierte Hierarchie von Klassen zur Verfügung. Die Information, dass
"Physiker" "Wissenschaftler" sind und dass
"Wissenschaftler" "Menschen" sind, ist sehr schwer in
Wikipedia zu finden. Mein Verfahren kombiniert daher die Daten aus Wikipedia
mit den Daten aus der oben genannten WordNet-Ontologie.
Diese gibt unserer Ontologie das taxonomische Rückgrat. Dadurch erhalten wir
eine sehr große Wissensstruktur, in der alle in Wikipedia bekannten Entitäten
ihren Platz haben. Unsere Ontologie heißt YAGO (Yet Another Great Ontology). Momentan
(Februar 2009) enthält YAGO 2 Millionen Entitäten und rund 20 Millionen Fakten.
Das Verfahren zur Erstellung von YAGO ist sehr
effizient: Innerhalb von nur ein paar Stunden kann der Computer die Ontologie
vollautomatisch aus der jeweils aktuellen Wikipedia-Version
herauslesen. Nun besteht bei automatischen und heuristischen Algorithmen
aber prinzipiell immer die Gefahr, dass sich falsche Information einschleicht.
Wenn beispielsweise beim Geburtsort in der Infobox auch das Geburtsdatum
angegeben ist, so könnte es sein, dass der Computer fälschlicherweise annimmt,
das Geburtsdatum sei der Geburtsort. Diese Art von Fakten kann allerdings
mithilfe von Axiomen ausgeschlossen werden: Wenn eine Person an einem Ort
geboren ist, so muss dieser Ort eine Stadt oder ein Land sein. Da diese
Information bereits in der Taxonomie vorhanden ist, können durch diese einfache
Regel viele falsche Extraktionen ausgeschlossen werden. Es finden noch weitere
logikbasierte Qualitätskontrollen statt. Auf diese Weise enthält YAGO kaum
falsche Fakten. Um dies zu zeigen, haben wir eine Stichprobe aus YAGOs Fakten von Freiwilligen auf ihre Korrektheit hin überprüfen
lassen. Mithilfe von statistischen Methoden kann das Ergebnis auf der
Stichprobe dann auf die gesamte Ontologie verallgemeinert werden. Das Ergebnis:
95% der Fakten in YAGO sind korrekt. Zum Zeitpunkt von YAGOs
Entstehung gab es keine anderen automatischen Methoden zur Wissensextraktion,
die diese Genauigkeit erreicht hätten. YAGO wird
mittlerweile in vielen semantischen Projekten verwendet. Dazu gehören nicht nur
praktische Anwendungen, sondern auch andere Ontologien, die das Wissen aus YAGO
in sich aufgenommen haben (unter anderem DBpedia, SUMO und Freebase). Auch heute
noch ist YAGO weltweit die größte frei verfügbare Ontologie mit
Qualitätsgarantie.
SOFIE: Von Sätzen zu Fakten
YAGO enthält bereits eine große Menge an Entitäten
und Fakten. Wenn wir aber der Ontologie noch mehr Wissen hinzufügen
wollen, so kommen wir nicht umhin, auch andere Wissensquellen in Betracht zu
ziehen. Eine der wichtigsten Quellen im Internet sind natürlichsprachige Texte:
Biographien, Lexikoneinträge, Homepages und Nachrichtentexte. Wie eingangs
erwähnt, sind diese Quellen für den Computer zunächst nichts anderes als
Ansammlungen von Zeichen — in etwa wie für uns ein Stapel chinesischer
Zeitschriften. Die zweite Hälfte meiner Dissertation beschäftigt sich damit,
wie der Computer auch aus diesen Quellen Wissen schöpfen kann.
Das Ziel ist es, aus einem natürlichsprachigen Dokument Fakten zu extrahieren.
Diese sollen dann in die YAGO-Ontologie eingefügt
werden. Schauen wir uns dafür einen natürlichsprachigen Satz einmal genauer an.
Wir betrachten zum Beispiel den Satz "Einstein wurde 1848 geboren". Dieser Satz sieht sehr einfach aus. Für den Computer aber
liegt die erste Schwierigkeit schon darin, dass er nicht versteht, worum es in
dem Satz überhaupt geht. Für den Computer trägt die Zeichenfolge
"w-u-r-d-e ... g-e-b-o-r-e-n" ja keinerlei Bedeutung. Er weiß also
nicht, dass es in dem Satz um ein Geburtsdatum geht. Der Computer müsste also
zunächst die Satzstruktur verstehen. Die zweite Schwierigkeit ist, dass nicht
klar ist, wer mit "Einstein" gemeint ist. Schließlich gibt und gab es
mehrere Einsteins: Den Schriftsteller Siegfried Einstein beispielsweise, den
Physiker Albert Einstein, dessen Vater Hermann Einstein und noch viele andere.
Um den Satz zu verstehen, müsste der Computer also die Bedeutung des Namens
herausfinden. Die dritte Schwierigkeit ist, dass die Aussage logisch plausibel
sein muss. Albert Einstein zum Beispiel starb 1955. Also kann der Satz sich
nicht auf Albert Einstein beziehen, denn dann wäre Einstein ja 107 Jahre alt
geworden. Wenn der Computer den Satz verstanden hat, müsste er also zusätzlich
noch die logische Plausibilität der Aussage überprüfen. Dieses Beispiel zeigt,
dass selbst ein sehr einfacher Satz für den Computer erhebliche Schwierigkeiten
mit sich bringen kann. Diese Schwierigkeiten sind dreierlei: Das Verstehen der
Satzstruktur, das Verstehen der Bedeutung der Namen und das Prüfen auf logische
Plausibilität. Diese Probleme sind nicht
neu. Sehr viele Arbeiten haben sich bereits mit diesen Problemen beschäftigt.
Allerdings wurden die Probleme bislang immer separat betrachtet. Eine Arbeit,
die sich mit dem Problem der Satzstrukturen auseinandersetzt, hat sich nicht um
die logische Plausibilität von Fakten gekümmert. Ein Ansatz, der versucht, die
Bedeutung von Namen herauszufinden, beschäftigt sich nicht gleichzeitig auch
mit Satzstrukturen und Logik. Dabei sind diese Probleme eng miteinander
verwoben: Die Bedeutung eines Namens kann die Bedeutung des Satzes ändern, die
Bedeutung des Satzes wiederum die Plausibilität der Fakten. Es ist sogar möglich,
dass die Plausibilität der Fakten uns wiederum Rückschlüsse auf die Bedeutungen
der Satzstrukturen erlaubt. Wir müssen diese Probleme also nicht getrennt,
sondern zusammen betrachten. Genau dies habe ich in meiner Dissertation getan.
Schauen wir uns zunächst das erste Problem an: Wie kann der Computer verstehen,
dass unser Beispielsatz ein Geburtsdatum ausdrückt? Hier kommt nun das Wissen
aus YAGO zu Hilfe: Nehmen wir an, YAGO enthielte bereits das Geburtsdatum einer
anderen Person, z.B. 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. Wir halten diese Schlussfolgerung
in einer Regel fest: Tauchen zwei Entitäten in einer Satzstruktur auf und
wissen wir bereits, dass diese Entitäten in einer Relation stehen, so deutet
die Satzstruktur wahrscheinlich auf diese Relation hin. Nun geht es weiter: Per
Analogieschluss kann der Computer vermuten, dass der Satz "Einstein wurde
1847 geboren" wohl das Geburtsdatum von einer Person namens Einstein
angibt. Auch diese Schlussfolgerung halten wir in einer Regel fest: Wenn
bereits bekannt ist, dass eine Satzstruktur auf eine Relation hindeutet, und
taucht diese Satzstruktur mit zwei Entitäten auf, so stehen die genannten
Entitäten wohl in dieser Relation. Schauen wir uns nun das zweite Problem an:
Wer ist mit "Einstein" gemeint? Auch hier hilft uns YAGO weiter: YAGO
weiß bereits, auf welche Entitäten sich bestimmte Namen beziehen können. YAGO
weiß also, welche Personen wahrscheinlich für den Namen "Einstein" in
Frage kommen. YAGO weiß ebenfalls, mit welchen anderen Entitäten diese Personen
in der Ontologie über Relationen verbunden sind. Albert Einstein beispielsweise
und auch sein Vater Hermann Einstein sind in der Ontologie (auf Umwegen) mit
der Klasse "Physiker" verbunden, Siegfried aber nicht. Wenn nun in
dem Text sehr häufig das Wort "Physiker" erwähnt wird, so deutet dies
darauf hin, dass wohl Albert oder Hermann gemeint ist, nicht aber Siegfried.
Auch dieser Zusammenhang lässt sich als Regel formulieren: Wenn viele Begriffe
aus dem ontologischen Umfeld der Entität auch im Text auftauchen, so bezieht
sich das Wort wahrscheinlich tatsächlich auf diese Entität. Das dritte Problem,
das der logischen Schlussfolgerung, lässt sich ebenfalls als Regel formulieren:
Wenn eine Person im Jahr X geboren ist und im Jahr Y gestorben ist, so sollten
zwischen X und Y nicht mehr als 100 Jahre liegen. Diese Regel lässt uns dann
vermuten, dass in dem Satz nicht von Albert Einstein die Rede ist, sondern wohl
in der Tat von seinem Vater. Durch diese Betrachtungsweise haben wir die drei
Probleme alle auf einfache Regeln zurückgeführt.
Was nun bleibt, ist Hypothesen zu bilden: Wurde Albert Einstein 1848 geboren? Weist
ein Satz der Form "... wurde ... geboren" etwa auf das Geburtsdatum
hin? Ist mit "Einstein" in diesem Fall vielleicht Albert Einstein
gemeint? Das Ziel ist es, diejenigen Hypothesen zu identifizieren, die alle
Regeln gleichzeitig erfüllen. Beispielsweise verletzt es eine Regel, wenn der
Computer gleichzeitig die Hypothese annimmt, dass Albert Einstein 1848 geboren
wurde und die Hypothese, dass er 1955 gestorben ist. Also muss eine der beiden
falsch sein. Ebenso verletzt es eine Regel, wenn der Computer zwar weiß, was
ein Satz bedeutet, aber diese Bedeutung dann nicht als wahre Hypothese annehmen
will. Also ist der Computer gezwungen, die Aussage des Satzes in Betracht zu
ziehen. In diesem Prozess beschränken wir uns nicht auf einen einzelnen Satz.
Vielmehr lassen wir den Computer Tausende von Texten und Abertausende von
Sätzen gleichzeitig untersuchen. Dadurch kann ein Informationsschnipsel aus dem
einem Text die Informationssuche in einem anderen befruchten — und umgekehrt.
Dabei ist es recht wahrscheinlich, dass der Computer gar nicht alle Regeln
gleichzeitig erfüllen kann. Schließlich können die Texte ja auch fehlerhaft
sein. Auch müssen bestimmte Satzstrukturen nicht immer dieselbe Bedeutung
haben. Der Computer sucht daher diejenigen Hypothesen, die zumindest so viele
Regeln wie möglich erfüllen. Letztlich bildet der Computer sich dadurch also
dasjenige Weltverständnis aus den Texten, was ihm am plausibelsten erscheint.
Dieses neu gewonnene Weltverständnis fügt er dann zu seinem existierenden
Wissen (YAGO) hinzu.
Nun ist das Problem, dass es sehr viele Hypothesen gleichzeitig zu prüfen gilt.
Wenn wir eine als wahr annehmen, kann dies eine andere Hypothese falsch machen.
Dies kann dann wiederum Auswirkungen auf noch ganz andere Hypothesen haben. Im
schlimmsten Fall hat eine von ihnen gar wieder Auswirkungen auf die
ursprüngliche Hypothese. Es handelt sich also um ein riesiges Netz aus
Hypothesen, die alle auf höchst komplizierte Weise Einfluss aufeinander haben.
Dieses Problem ist nicht nur für einen Menschen unüberschaubar schwierig,
sondern auch für einen Computer. Es handelt sich um das so genannte gewichtete
Maximum Satisfiability Problem. Wollte man in dieser
Größenordung die optimale Lösung finden, so würde der schnellste Computer der
Welt mehrere Jahrtausende lang rechnen. Deshalb benutzt man in diesen Fällen
Näherungsverfahren. Das heißt, dass die Hypothesen die ein solches Verfahren
ausspuckt zwar nicht alle Regeln erfüllen, die man im Optimalfall erfüllen
könnte, aber doch zumindest die meisten. Für meine Dissertation habe ich ein
Näherungsverfahren entwickelt, welches für unsere Regeln besonders gut funktioniert.
In vielen Fällen kann das Verfahren sogar die optimale Lösung finden. Dafür
braucht es lediglich einige Stunden. Damit hat das unlösbar scheinende Problem
einen Lösungsansatz gefunden: Der Computer kann nun natürlichsprachige Texte
untersuchen, eine plausible Vermutung über ihrem Inhalt aufstellen und das neu
gewonnene Wissen dann zusammen mit dem vorher gelernten Wissen abspeichern. Es
ist also möglich geworden, dass der Computer die Texte in einem bestimmten
Sinne tatsächlich "liest" und "versteht".
Diese Technik habe ich SOFIE genannt (Self-Organizing
Framework for Information Extraction).
Mit SOFIE kann der Computer also das Wissen aus YAGO erweitern. Füttert man den
Computer beispielsweise mit Biographien, so findet er die Geburtsdaten und Berufe
der Leute. Experimente haben gezeigt, dass SOFIE auf Textdokumenten aus dem
Internet eine Genauigkeit von 90% erreichen kann. Das heißt, dass 90% Fakten,
die SOFIE extrahiert, richtig sind. Diese Genauigkeit schließt bereits die
richtige Einordnung der Fakten in die YAGO-Ontologie
ein. Kein anderes System kann allgemeine Fakten mit dieser Genauigkeit aus
Internetdokumenten extrahieren und in eine Ontologie einordnen
Nun löst SOFIE nicht generell alle Probleme beim Textverständnis. Zunächsteinmal versteht SOFIE nicht alle Sätze, sondern nur
diejenigen, deren Struktur bereits bekannt ist. Außerdem gibt es Typen von
Information, mit denen SOFIE bislang noch nicht umgehen kann (wie etwa das Kennenlernen neuer Entitäten). Auch kann SOFIE bislang nur
Fakten extrahieren. SOFIE kann keine Gesetzmäßigkeiten lernen oder allgemeine
Zusammenhänge in den Fakten erkennen. Dafür gibt es andere Verfahren, die in
SOFIE noch nicht eingebaut sind. Außerdem wurde SOFIE bislang nur auf ein paar
Tausend Dokumenten ausprobiert — und nicht auf den Milliarden Dokumenten des
gesamten Internets. Sehr viel Arbeit wird also noch nötig sein, um SOFIE zu
einem wirklich allumfassenden System auszubauen. Aber die ersten Schritte sind
gemacht, die Tür ist aufgestoßen. Von dem Wissen, das YAGO jetzt schon enthält,
kann sich der Leser gerne selbst auf der YAGO-Webseite
ein Bild machen: http://www.mpi-inf.mpg.de/yago
. In einer speziellen Abfragesprache kann man YAGO Fragen stellen. Auf unsere
eingangs gestellte Frage, wer jünger ist als Albert Einstein und den
Nobel-Preis gewonnen hat, antwortet YAGO prompt mit einer ganzen Reihe an
Laureaten — ein Szenario, welches momentan mit Google undenkbar ist. Mit YAGO
und SOFIE ist also ein Rahmenwerk geschaffen, welches dem
Computer Teile der riesigen Ressourcen des Internets erschließen kann. Erstmals
ist es möglich, dass der Computer natürlichsprachige Dokumente nicht als bloße
Wortfolgen abspeichert, sondern einiges von ihrem Inhalt systematisch in seinen
eigenen Wissensschatz aufnehmen kann — und dazu auch Fragen beantworten kann.
Wie geht es weiter: Vom Wissen zur Weisheit?
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 und SOFIE nun ein weiterer
Schritt gemacht.