Engineering

Analyse der Panama Papers mit Elastic Graph und Kibana

Mit den neuen Funktionen von Elastic Graph kann man Verbindungen in Daten analysieren. Egal ob du gerade das Netz der Offshore-Finanzen in den Panama Papers entwirrst oder eine einfache Übersicht des Klickverhaltens auf einer beliebten E-Commerce-Website brauchst: Die Graph-Technologie rückt diese Verknüpfungen in den Mittelpunkt.

Die Graph-Funktion ist Teil der kommerziellen X-Pack-Plugins für den Elastic Stack und umfasst die Kibana-App und eine neue Elasticsearch API. In diesem ersten Graph-Blog sehen wir uns kurz an, was die Kombination aus der Kibana-App und der API zu bieten hat.

Forensische Analyse: Panama Papers

Die Veröffentlichung von Finanz- und Vertragsunterlagen von der Offshore-Kanzlei Mossack Fonseca ist eine der explosivsten Stories in 2016. Die Unterlagen zeigen, dass sich viele Politiker, Adlige, die Reichen und ihre Familien an Netzwerken von Strohfirmen bedienen, die in geheimnisvollen Steueroasen gegründet wurden. Journalisten und Finanzinstitute haben sich bereits auf diese Daten gestürzt, aber das Aufdecken der Verbindungen kann sowohl schwierig als auch zeitraubend sein. Mit der Kibana Graph-App wird das für alle zum Kinderspiel:

panama-papers-graph-dashboard-relationships.jpg

Oben sehen wir die Firmen und Personen, die mit Wladimir Putins engem Freund, Sergei Roldugin, in Verbindung stehen. Dieses Bild wurde in wenigen simplen Schritten erzeugt.

Die Datenquelle auswählen

Initially we select “panama” from our list of indices and then select one or more fields whose values we want to show in the diagram. Each field can be given an icon and colour for the “vertices” that will appear in the diagram.

panama-papers-selecting-datasource.jpg

Eine Suche durchführen

Jetzt können wir eine reguläre Freitextsuche durchführen, um Dokumente zu finden, die den Namen von Putins Freund „Roldugin“ enthalten.

panama-papers-running-a-search.jpg

Die in den passenden Dokumenten gefundenen Begriffe werden als Netzwerk angezeigt – jede Zeile stellt ein oder mehrere Dokumente dar, die ein Begriffspaar verbinden.

Die Journalisten vom ICIJ, die sich mit den Daten befassen, haben versucht, jeder realen Entität (Person/Firma/Adresse) eine eindeutige ID zuzuweisen, die mit jedem Dokument verknüpft wird, auf das ein Verweis besteht.

Leider kann sich der Abgleich von Personen, Namen und Adressen ziemlich knifflig gestalten – die Journalisten haben drei Dokumente korrekt gekennzeichnet, die mit der Personen-Entität 12180773 verbunden sind. Wir sehen aber, dass es zwei weitere Personen mit ähnlichen Namen gibt, denen andere Identitätscodes zugewiesen wurden. Außerdem gibt es zwei Adressen, die ähnlich aussehen. Dennoch wurden ihnen unterschiedliche Identitätscodes zugewiesen. In weiteren Blog-Posts werden wir über die Nutzung der Graph-API zur automatisierten Entitätsauflösung sprechen. Noch können wir die Sache auch manuell mit dem Gruppierungswerkzeug regeln.

Knoten gruppieren

Mit den Werkzeugen im erweiterten Modus können wir die Gruppenschaltfläche auswählen und anklicken, um Knoten zusammenzuführen. So erhalten wir ein klareres Bild.

panama-papers-grouping-vertices.jpg

Wir könnten bei Bedarf auch bereits gruppierte Elemente zusammenführen, z. B. mehrere Personen mit mehreren Identitäten zu einzelnen Knoten vereinen und diese dann in Firmen-Knoten umwandeln.

„Das Netz spinnen“

Und was, wenn wir jetzt sehen wollten, was noch mit diesen Entitäten in Verbindung steht? Wir können die Verbindungen in den Daten weiter erforschen, indem wir in der Symbolleiste auf die Schaltfläche „+“ klicken, um weitere zugehörige Entitäten einzubinden.

panama-papers-spidering-out.jpg

Wir können das Bild erweitern, indem wir wiederholt auf „+“ klicken und uns mit Auswahlwerkzeugen darauf konzentrieren, nur bestimmte Bereiche des Graphen zu erweitern. Die Schaltflächen Rückgängig und Wiederholen sind wichtig, wenn du dich in uninteressanten Ergebnissen verheddert hast. Außerdem kannst du mit den Schaltflächen Löschen und Blacklist kontrollieren, welche Knoten aktuell sichtbar sind bzw. erneut aufgerufen werden können. Es können auch Ausschnitte von Beispieldokumenten hinter ausgewählten Knoten angezeigt werden.

Wenn du die Panama Papers selbst erkunden möchtest, installiere Elasticsearch, Kibana und das Graph-Plugin; dann folge dem Index-Setup unter bit.ly/espanama

Das Wissen der Menge

Die Panama Papers sind ein Beispiel für eine detaillierte „forensische“ Untersuchung, bei der jedes einzelne Dokument eine wichtige Verbindung sein könnte.

Besonders glänzen kann die Elastic Graph-Technologie aber mit ihrer Fähigkeit, das Verhalten von Massen an Benutzern zusammenzufassen, zum Beispiel die Daten in Klick-Logs. Häufig wird diese Form der Analyse mit den Begriffen „Mining“, „kollektive Intelligenz“ oder „Wissen der Menge“ umschrieben. In diesen Szenarien ist ein Dokument allein nicht besonders interessant, die entstehenden Muster durch das Verhalten vieler Nutzer jedoch schon – und sie können genutzt werden, um beispielsweise Empfehlungen abzugeben. „Personen, die Produkt X gekauft haben, kauften auch Produkt Y“. In diesen Szenarien müssen wir die einmaligen Dokumente meiden, die falsche Rückschlüsse entstehen lassen, und auch zu offensichtliche Verknüpfungen verhindern (z. B. Personen, die Produkt X gekauft haben, kauften auch Milch – die meisten Menschen kaufen Milch). Unter Berücksichtigung dieser Dinge werden die Standardeinstellungen zur Kontrolle der Graphen-Exploration so festgelegt, dass nur die wesentlichen Verknüpfungen gezeigt werden.

Sehen wir uns doch einmal einen Anwendungsfall für Empfehlungen mit dem Datensatz von LastFM an. Wenn wir einen benutzerfokussierten Index aufbauen, haben wir ein Dokument pro Hörer, das einen Array der Künstler enthält, die dem jeweiligen Hörer gefallen. Fragen wir diesen Index zum Beispiel nach Personen ab, denen „Chopin“ gefällt, um zu sehen, was sie sonst noch mögen.

lastFM-wisdom-of-crowds.jpg

Die ausgegebenen Klassik-Künstler stehen natürlich in engem Zusammenhang – wenn wir auf ein Kante zwischen zwei Knoten klicken, sehen wir, wie viele Hörer sich diese Interessen teilen. Fast die Hälfte aller Mendelssohn-Hörer mag auch Chopin.

Die Graph-API hat nur die signifikanten Verknüpfungen ermittelt. Das ist ein wichtiger Unterschied zu anderen Graphen-Explorationsverfahren.

Beliebt != signifikant

Was wohl passiert, wenn wir den Einstellungen-Tab öffnen und die Funktion zur Suche nach signifikanten Verbindungen deaktivieren?

graph-popular-equals-significant.jpg

Wenn das Kontrollkästchen „Significant links“ deaktiviert ist, können wir die Abfrage für Chopin-Hörer erneut durchführen – mit ganz anderen Ergebnissen.

lastFM-wisdom-of-crowds-new.jpg

Jetzt haben sich die (global) beliebten Künster wie Radiohead und Coldplay in die Ergebnisse geschlichen. Unter den 5.721 Chopin-Fans mögen 1.843 die Beatles. Das ist mit Sicherheit ein beliebtes Element, aber eines, das wir „gewöhnlich häufig“ nennen – wie Menschen, die Milch kaufen. Wenn der Schalter bei den „Significant links“ aktiviert ist, filtern wir das Rauschen heraus und finden das, was wir „ungewöhnlich häufig“ nennen. Für diejenigen mit Fachkenntnissen in der Informationstheorie: Der TF-IDF-Algorithmus, auf dem Suchmaschinen seit Jahren basieren, folgt denselben Prinzipien.

Durch die Wiederverwendung dieser Relevanz-Ranking-Verfahren bleiben wir beim Thema, wenn wir Verbindungen in Daten erforschen. Das ist ein wichtiger Unterschied zu Graphen-Datenbanken, die kein Relevanz-Ranking-Konzept haben und üblicherweise gezwungen sind, einfach beliebte Elemente zu löschen (siehe dazu das Problem der „Supernodes“).

Hinweis: Bei detaillierten forensischen Untersuchungen wie den Panama Papers kann es hilfreich sein, „Significant links“ aktiviert zu lassen, um die äußert beliebten Firmen zu vermeiden. Jedoch sollte die Einstellung „Certainty“ vom Standardwert drei auf eins herabgesetzt werden. Für Szenarien der Art Wissen der Menge brauchen wir mindestens drei Dokumente zur Bestätigung einer Verbindung, bevor wir dieser vertrauen, während wir in der Forensik jedes potenziell interessante Dokument brauchen.

Zusammenfassung

Hoffentlich hast du in diesem Blog-Post einen kleinen Vorgeschmack auf die beiden wichtigsten Anwendungsmodi für Graph bekommen:

  1. Forensik: Jedes Dokument ist gleichemaßen interessant. Die Suche ist „fokussiert“ auf einzelne Unterlagen und Akteure, kein Stein bleibt auf dem anderen.
  2. Wissen der Menge: einfache Übersichten von Massenverhalten. Es gibt zu viele Verbindungen mit störendem Rauschen, deshalb konzentriert man sich auf die Zusammenfassung der signifikantesten Verbindungen in den Daten.

In weiteren Blog-Posts werden wir uns tiefgreifender mit spezifischen Anwendungsfällen beschäftigen und uns mit der Elasticsearch-API vertraut machen, die hinter den Kulissen der Kibana-App arbeitet.

Also, liebe Graph-Fans: Dranbleiben!