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.