Zum Inhalt springen

Was ist ein Knowledge Graph?

Ein Knowledge Graph (deutsch: Wissensgraph, Abkürzung: KG) ist ein Modell in dem Netzwerke und Wissensstrukturen abgebildet werden können. Durch die Verknüpfung von Objekten, die miteinander in Verbindung stehen, werden die Daten einfach visualisiert und es können möglicherweise auch neue Erkenntnisse gebildet werden. Aktuell werden sie vor allem Bereich des Natural Language Processings genutzt, um sprachliche Zusammenhänge abbilden zu können.

Wie ist ein Knowledge Graph aufgebaut?

Ein Knowledge Graph versucht Objekte und deren Beziehungen optimal in einem Netzwerk darzustellen. Der Aufbau besteht aus diesen drei Komponenten:

  • Knoten (engl.: Nodes): Diese repräsentieren Objekte, wie Personen, Unternehmen oder Orte, und werden im Graphen als Kreise oder Punkte dargestellt.
  • Kanten (engl.: Edges): Die Kanten verbinden Knoten miteinander und bauen dadurch die Netzwerkstruktur auf.
  • Labels: Diese Beschriftungen kategorisieren die Kanten und geben den Typen der Beziehung an. Klassische Labels sind beispielsweise “ist Lieferant von”, “ist befreundet mit”, “ist ein Teil von”.

In vielen Fällen handelt es sich um einen sogenannten gerichteten Graph (englisch: Directed Graph). Das heißt die Kanten haben eine eindeutige Richtung und starten bei einem Knoten und enden bei einem anderen.

In dieser Richtung sind nämlich auch indirekte Informationen hinterlegt. Angenommen wir wollen ein Netzwerk von Kunden und Lieferanten im Automobilsektor erstellen. Die Kante “liefert an” startet dann immer beim Lieferanten und endet beim Kunden. Wenn diese Kante nicht gerichtet wäre, würde sich nicht erschließen, welches Unternehmen der Lieferant und welches der Kunde ist.

Wie werden Knowledge Graphs gebaut?

Es gibt verschiedene Wege, wie man einen solchen Graphen aufbauen kann. In manchen Fällen können bereits strukturierte Daten genutzt werden, um das Netzwerk aufzubauen. Zum Beispiel kann man die verschiedenen Unterseiten einer Nachrichtenwebsite in einem Graph darstellen mit Verbindungen zu den unterschiedlichen Themenbereichen. Dabei ist für jeden Artikel bereits abgespeichert, ob er zum Bereich “Sport”, “Finanzen” oder “Politik” gehört. Somit sind die Werte für Knoten und Kanten bereits hinterlegt. Schwieriger wird es jedoch wenn die Informationen noch nicht sauber und strukturiert vorliegen.

Im Bereich des Natural Language Processings wird versucht die Graphenstruktur aus der natürlichen Sprache zu extrahieren und beispielsweise das Wissen in einem Wikipedia Artikel in einem Graphen übersichtlich und einfach darzustellen. Dann kann mithilfe von verschiedenen Machine Learning Modellen versucht werden, die Objekte für Knoten und Kanten aus dem Text zu extrahieren. Es gibt beispielsweise verschiedene Algorithmen zur Named Entity Recognition, welche automatisiert Entitäten in Texten erkennt, die potenziell als Knoten genutzt werden können.

Welche Anwendungen nutzen diese Graphen?

Trotz der mitunter komplizierten Erstellung von Knowledge Graphen, werden sie bereits in verschiedenen Anwendungsfeldern genutzt:

  • E-Commerce: Viele Shops versuchen ihren Kunden die passenden Produkte vorzuschlagen, um den Umsatz zu steigern. Diese sogenannten Recommendations können aus Knowledge Graphen gewonnen werden, indem dort ein Netzwerk aus Produkten aufgebaut wird, das als Kanten die Käufe aus einem Warenkorb hat.
  • Finanzwesen: Im Bankenbereich werden Knowledge Graphen angelegt, um betrügerische Überweisungen zu erkennen und zu melden. Dazu lässt sich Wissen aus bisherigen Transaktionen generieren, um herauszufinden in welchen Bereichen Überweisungen normal sind und in welchen nicht.
  • Suchalgorithmen: In einem allgemeinen, sprachlichen Graphen lassen sich verschiedene Schreibweisen oder umgangssprachliche Phrasen sammeln und in einen Zusammenhang stellen. Dadurch kann die Suche beispielsweise verstehen, dass Handy und Smartphone oftmals als Synonym genutzt werden.
  • Chatbot: Ein Chatbot greift auf Knowledge Graphen zurück, um ein besseres Verständnis für die Kommunikation zu bekommen und gezieltere Antworten liefern zu können. Darüber hinaus bezieht ein Chatbot auch meist sein Wissen, um Antworten geben zu können aus graphenähnlichen Strukturen.

Welche öffentlichen Knowledge Graphs gibt es?

Es gibt bereits einige große Graphen, die teilweise auch öffentlich zugänglich sind. Sie stammen aus unterschiedlichen Bereichen, wie beispielsweise Sprache, Geographie oder Zusammenhänge im Bereich Suchalgorithmen. Zu den bekanntesten Wissensgraphen zählen:

  • Google Knowledge Graph: Der wohl bekannteste Knowledge Graph stammt von Google und wird vor allem zur Verbesserung des Suchalgorithmus genutzt. Google startete im Jahr 2012 mit der Sammlung von Daten und hat bisher nur wenige Informationen zum Aufbau und Struktur des Graphen preisgegeben.
  • DBPedia: Dieser Graph wird aus den kurzen Infoboxen von Wikipedia gebaut und soll das Wissen in verschiedensten Bereichen bündeln. Darin sind verschiedenste Entitäten, wie Personen, Orte, Filme oder Unternehmen enthalten.
  • Geonames: Diese Wissensbasis bietet Zugriff zu vielen geographischen Entitäten, wie Länder, Städten oder Orte, sowie die dazugehörigen Informationen.
  • Wordnet: Dieser Graph ist die wohl bekannteste Wissensstruktur für die englische Sprache und enthält Wortdefinitionen oder passende Synonyme.

Wie verwendet man Knowledge Graphs in Python?

Knowledge Graphs sind leistungsfähige Werkzeuge zur Darstellung und Organisation strukturierter Informationen. In Python gibt es mehrere Bibliotheken und Frameworks, die die Arbeit mit ihnen erleichtern. Hier ist ein Abschnitt darüber, wie man sie in Python verwendet:

  • Wähle eine Bibliothek: Python bietet mehrere Bibliotheken für die Arbeit mit Wissensgraphen, z. B. RDFLib, PyKEEN und NetworkX. Wähle eine Bibliothek, die Deinen spezifischen Anforderungen entspricht.
  • Definiere das Schema: Bevor Du einen Knowledge Graph erstellst, definiere das Schema, das die Entitäten, Beziehungen und Attribute beschreibt, die Du darstellen möchtest. Dieser Schritt hilft dabei, die Informationen effektiv zu organisieren und zu strukturieren.
  • Importieren und Erstellen des Graphen: Importiere die ausgewählte Bibliothek und erstelle ein leeres Diagrammobjekt. Mit der RDFLib kannst Du zum Beispiel einen RDF-Graphen erstellen, indem Du die Graph-Klasse instanziierst:
Knowledge Graph Code
  • Befülle den Graphen: Füge dem Graphen Knoten (Entitäten) und Kanten (Beziehungen) hinzu. Verwende die bibliotheksspezifischen Methoden, um Knoten, Beziehungen und deren Eigenschaften zu definieren. In der RDFLib kannst Du beispielsweise Triples mit der Methode add() hinzufügen:
Knowledge Graph Code
  • Abfrage und Manipulation des Graphen: Sobald der Knowledge Graph gefüllt ist, kannst Du die Daten mit den Abfragesprachen oder APIs der Bibliothek abfragen und manipulieren. Die RDFLib unterstützt zum Beispiel SPARQL zur Abfrage von RDF-Graphen.
  • Visualisiere den Graphen: Verwende Visualisierungsbibliotheken wie NetworkX oder Graph-tool, um den Wissensgraphen zu visualisieren. Diese Bibliotheken bieten Funktionen zur Erzeugung visueller Darstellungen des Graphen, die das Verständnis seiner Struktur und Beziehungen erleichtern.
  • Integration mit anderen Tools und Anwendungen: Die Graphen können mit anderen Python-Bibliotheken und -Frameworks integriert werden, um Aufgaben wie maschinelles Lernen, Verarbeitung natürlicher Sprache oder semantische Schlussfolgerungen durchzuführen.

Wenn Du diese Schritte befolgen, kannst Du Wissensgraphen in Python effektiv nutzen, um strukturierte Informationen darzustellen, zu organisieren und abzufragen und so leistungsstarke datengesteuerte Anwendungen und Erkenntnisse zu ermöglichen.

Wie werden Knowledge Graphs mit maschinellem Lernen und KI integriert?

Wissensgraphen und maschinelles Lernen (ML) sind zwei leistungsstarke Technologien, die sich gegenseitig ergänzen können und zu einem besseren Verständnis, einer besseren Argumentation und einer besseren Entscheidungsfindung führen. Die Integration von Wissensgraphen mit ML- und KI-Techniken ermöglicht es uns, strukturiertes Wissen zu nutzen, um die Leistung und die Fähigkeiten verschiedener Anwendungen zu verbessern. Im Folgenden werden einige Möglichkeiten aufgezeigt, wie die beiden Konzepte effektiv kombiniert werden können:

  • Wissenserweitertes Lernen: Durch die Einbeziehung von Wissensgraphen als zusätzliche Informationsquelle können ML-Modelle während des Lernprozesses von strukturiertem Wissen profitieren. Dies kann beim Feature-Engineering, der Auflösung von Entitäten oder der Bereitstellung von zusätzlichem Kontext für den Lernalgorithmus hilfreich sein.
  • Knowledge Graph Embedding: Diese Einbettungen zielen darauf ab, Entitäten und Beziehungen in einem kontinuierlichen Vektorraum darzustellen. Sie können als Eingabemerkmale für ML-Modelle verwendet werden und ermöglichen es ihnen, die im Wissensgraphen kodierten umfangreichen semantischen Informationen zu nutzen.
  • Semantische Ähnlichkeit und Empfehlung: Die Graphen können semantische Beziehungen zwischen Entitäten erfassen. ML-Techniken, wie die Verarbeitung natürlicher Sprache und Deep Learning, können diese Beziehungen nutzen, um semantische Ähnlichkeitsmaße zu berechnen, die bessere Empfehlungen und ein besseres Verständnis von Inhalten ermöglichen.
  • Erklärbare KI: Wissensgraphen bieten eine transparente und interpretierbare Darstellung von Wissen. ML-Modelle können die explizite Semantik eines Graphen nutzen, um Erklärungen für ihre Vorhersagen zu generieren und so die Interpretierbarkeit und Vertrauenswürdigkeit von KI-Systemen zu verbessern.
  • Ontology-Aware ML: Ontologien können als Knowledge Graphs dargestellt werden und bieten ein strukturiertes Schema für domänenspezifisches Wissen. ML-Modelle können die Ontologie nutzen, um den Lernprozess zu steuern, Einschränkungen durchzusetzen oder domänenspezifische Regeln einzubauen.
  • Fragenbeantwortung und Information Retrieval: Die Graphen können als wertvolle Quelle für strukturierte Informationen für die Beantwortung von Fragen und die Informationsbeschaffung dienen. ML-Modelle können so trainiert werden, dass sie natürlichsprachliche Abfragen verstehen und diese nutzen, um relevante Informationen abzurufen und genaue Antworten zu geben.
  • Wissensgestützte Entscheidungsfindung: ML-Modelle können die Erkenntnisse und Schlussfolgerungsfähigkeiten von Wissensgraphen nutzen, um fundierte Entscheidungen zu treffen. Durch die Kombination von statistischem Lernen mit logischen Schlussfolgerungen über den Graphen können KI-Systeme intelligentere und kontextbezogene Empfehlungen oder Entscheidungshilfen liefern.
  • Vervollständigung von Wissensgraphen: Die Graphen leiden oft unter Unvollständigkeit, da bestimmte Beziehungen oder Fakten fehlen. Mithilfe von ML-Techniken wie Link-Vorhersage oder Algorithmen zur Vervollständigung können fehlende Beziehungen auf der Grundlage des vorhandenen Wissens abgeleitet werden.

Die Integration von Wissensgraphen mit ML und KI ist ein sich schnell entwickelnder Bereich mit laufenden Forschungsarbeiten und praktischen Anwendungen in verschiedenen Bereichen. Sie ermöglicht die Entwicklung intelligenter Systeme, die strukturiertes Wissen nutzen, um die Genauigkeit, die Erklärbarkeit und das Verständnis des Bereichs zu verbessern. Durch die Kombination der Stärken von Wissensgraphen und ML/AI können wir neue Möglichkeiten für die Lösung komplexer Probleme und die Weiterentwicklung von KI-Technologien erschließen.

Das solltest Du mitnehmen

  • Ein Knowledge Graph (deutsch: Wissensgraph) ist ein Modell in dem Netzwerke und Wissensstrukturen abgebildet werden können.
  • Er besteht aus Knoten, Kanten und Labels.
  • Knowledge Graphs werden besonders im Bereich der Sprachverarbeitung genutzt, um beispielsweise Synonyme zu erkennen und dadurch natürliche Sprache besser zu verstehen.
Monte Carlo Methods / Monte Carlo Simulation

Was sind Monte Carlo Simulationen?

Entdecken Sie die Leistungsfähigkeit und Vorteile von Monte Carlo Simulationen bei der Problemlösung.

Verlustfunktion / Loss Function

Was ist eine Verlustfunktion?

Erforschung von Verlustfunktionen beim maschinellen Lernen: Ihre Rolle bei der Modelloptimierung und Auswirkungen auf die Robustheit.

Binary Cross-Entropy

Was ist der Binary Cross-Entropy Loss?

Eintauchen in die Binary Cross-Entropy: Eine Verlustfunktion beim maschinellen Lernen. Entdecken Sie Anwendungen und Nutzen.

Correlation Matrix / Korrelationsmatrix

Korrelationsmatrix – einfach erklärt!

Korrelationsmatrix erforschen: Korrelationen verstehen, Konstruktion, Interpretation und Visualisierung.

Decentralised AI / Decentralized AI

Was ist Decentralised AI?

Das Potenzial von decentralised AI freisetzen: Transformation der Technologie durch verteilte Intelligenz und kollaborative Netzwerke.

Ridge Regression

Was ist die Ridge Regression?

Erforschung der Ridge Regression: Vorteile, Implementierung in Python und die Unterschiede zu Ordinary Least Squares (OLS).

Andere Beiträge zum Thema Knowledge Graph

Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Niklas Lang

Seit 2020 bin ich als Machine Learning Engineer und Softwareentwickler tätig und beschäftige mich leidenschaftlich mit der Welt der Daten, Algorithmen und Softwareentwicklung. Neben meiner Arbeit in der Praxis unterrichte ich an mehreren deutschen Hochschulen, darunter die IU International University of Applied Sciences und die Duale Hochschule Baden-Württemberg, in den Bereichen Data Science, Mathematik und Business Analytics.

Mein Ziel ist es, komplexe Themen wie Statistik und maschinelles Lernen so aufzubereiten, dass sie nicht nur verständlich, sondern auch spannend und greifbar werden. Dabei kombiniere ich praktische Erfahrungen aus der Industrie mit fundierten theoretischen Grundlagen, um meine Studierenden bestmöglich auf die Herausforderungen der Datenwelt vorzubereiten.

Cookie Consent mit Real Cookie Banner